https://github.com/meteopavel/crowdfunding_api
🎉🔧 RESTful API для групповых денежных сборов. Позволяет создавать, управлять и отслеживать сборы, а также делать пожертвования.
https://github.com/meteopavel/crowdfunding_api
celery django django-rest-framework docker nginx pillow postgresql python3 redis uvicorn
Last synced: 5 months ago
JSON representation
🎉🔧 RESTful API для групповых денежных сборов. Позволяет создавать, управлять и отслеживать сборы, а также делать пожертвования.
- Host: GitHub
- URL: https://github.com/meteopavel/crowdfunding_api
- Owner: meteopavel
- Created: 2025-04-19T07:54:16.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-21T12:18:38.000Z (about 1 year ago)
- Last Synced: 2025-05-16T03:11:54.763Z (about 1 year ago)
- Topics: celery, django, django-rest-framework, docker, nginx, pillow, postgresql, python3, redis, uvicorn
- Language: Python
- Homepage:
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Crowdfunding API 🎉
🔧 RESTful API для групповых денежных сборов. Позволяет создавать, управлять и отслеживать сборы, а также делать пожертвования.
Демо версия
·
Сообщить об ошибке
·
Предложить улучшение
## Особенности ✨
- Полноценный CRUD для управления сборами 🛠️
- Асинхронная отправка email-уведомлений 📧
- Поддержка загрузки изображений для обложек сборов 🖼️
- Документация API через Swagger 📚
- Кэширование данных с использованием Redis ⚡
- Менеджмент-команда для загрузки моковых данных 🛠️
- Запуск проекта в Docker 🐳
- Расширяемая архитектура для добавления новых функций 🔧
## Технологический стек 💻
- Backend : Django 5.2, Django REST Framework
- База данных : PostgreSQL
- Кэширование : Redis
- Асинхронные задачи : Celery
- Обработка изображений : Pillow
- Контейнеризация : Docker
- Веб-сервер : Nginx
- Документация : Swagger (drf-yasg)
## Установка и запуск 🚀
1. Клонируйте репозиторий:
```bash
git clone https://github.com/meteopavel/Crowdfunding_API.git
cd Crowdfunding_API
```
2. Создайте .env файл:
- Скопируйте .env.example в .env:
```bash
cp .env.example .env
```
- Заполните .env файл согласно вашим настройкам (например, данные для подключения к базе данных, Redis и SMTP).
4. Запустите проект с помощью Docker:
```bash
docker-compose up --build
```
4. API будет доступно по адресу:
http://localhost:8000
## Документация API 📚
Для просмотра документации API перейдите по адресу:
http://localhost:8000/swagger/
## Регистрация и использование JWT-токенов в API
### Регистрация пользователя
1. Откройте Swagger UI
2. Найдите эндпоинт /register/
3. Введите данные для регистрации (например, username, email, password)
4. Нажмите "Execute"
После успешной регистрации пользователь получит письмо на указанный email с двумя токенами:
- Access Token : Используется для авторизации в API.
- Refresh Token : Используется для обновления Access Token.
### Авторизация через Swagger
Для выполнения запросов к защищенным эндпоинтам (например, /api/collects/ или /api/payments/) необходимо использовать Access Token.
Как авторизоваться в Swagger:
1. Откройте Swagger UI
2. В правом верхнем углу нажмите кнопку Authorize
3. В открывшемся окне в поле "Value" введите ваш Access Token в формате:
```
Bearer <ваш_access_token>
```
Например:
```
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
```
4. Нажмите "Authorize", затем "Close"
Теперь вы можете выполнять запросы к защищенным эндпоинтам от имени авторизованного пользователя.
## Менеджмент-команда для загрузки моковых данных 🛠️
Добавлена команда load_mock_data, которая генерирует тестовые данные для сборов и платежей. Это удобно для тестирования API или демонстрации функционала.
```bash
python manage.py load_mock_data
```
## Автор
[Павел Найденов](https://github.com/meteopavel)