https://github.com/vladislavyar/cash_fees
Rest API для веб-сервиса групповых денежных сборов.
https://github.com/vladislavyar/cash_fees
celery django django-rest-framework djoser poetry postgresql python redis yookassa
Last synced: 3 months ago
JSON representation
Rest API для веб-сервиса групповых денежных сборов.
- Host: GitHub
- URL: https://github.com/vladislavyar/cash_fees
- Owner: VladislavYar
- License: mit
- Created: 2024-04-26T10:58:15.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-18T02:44:22.000Z (about 2 years ago)
- Last Synced: 2025-01-12T08:21:52.555Z (over 1 year ago)
- Topics: celery, django, django-rest-framework, djoser, poetry, postgresql, python, redis, yookassa
- Language: Python
- Homepage:
- Size: 650 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
cash_fees
Описание
Rest API для веб-сервиса групповых денежных сборов.
Примечания
Платежи интегрированы через сервис ЮKassa, ссылка на SDK.
В проекте доступна swagger-документация по адресу /api/v1/docs/.
Эндпоинты пользователя ограничены для простоты восприятия.
Поле cover может принимать как base64-строку, так и slug дефолтной обложки.
Эндпоинт DELETE: /api/v1/collectings/{slug}/ не удаляет объект, а делает его неактивным.
Как запустить
Через Docker
- 1. Создать и заполнить файл
.envв папке
infraпо шаблону
.env.example.
-
2. Если имеется утилита
Make, в корне проекта выполнить командуmake project-init,
иначе
выполнить команду
docker compose -f ./infra/docker-compose.yml --env-file ./infra/.env up -d.
Dockerсоберёт контейнеры сpostgreSQL,Сelery, приложением, выполнит миграцию,
заполнит БД тестовыми платежами, групповыми сборами, дефолтными обложками, поводами для сбора, некоммерческими организациями, регионами, решаемыми проблемами и пользователями, создаст superuser-a.
После сервер будет доступен по адрессу:
http://127.0.0.1:8000/.
-
Примечание
3. В контейнер с приложением проброшен
volumeс кодом, изменение кода в проекте обновляет его в контейнере и перезапускает сервер.
В mock-данныx генерируются изображения, на слабой вычислительной машине это может затянуть сбор контейнера.
Для корректировки данной ситуации уменьшите количество/размер изображений в
management command.
-
4. Последующие запуски проекта осуществляются через команду
make project-start
или
docker compose -f ./infra/docker-compose-start.yml --env-file ./infra/.env up -d
Через консоль
- 1. Создать и заполнить файл
.envв папке
infraпо шаблону
.env.example.
-
2. Создать БД в
postgreSQL.
-
3. Установить poetry
pip install poetry.
-
4. Создать и активировать виртуальную оболочку
poetry shell.
-
5. Установить зависимости
poetry install.
-
6. Выполнить миграцию БД
python src/manage.py migrate.
-
7. Создать superuser-a
python src/manage.py createsuperuser --noinput.
-
8. Заполнить БД тестовыми данными(платежи, групповые сборы, дефолтные обложки, поводы для сбора, некоммерческие организации, регионы, решаемые проблемы и пользователи)
python src/manage.py test_data.
-
Примечание
В mock-данныx генерируются изображения, на слабой вычислительной машине это может быть продолжительно.
Для корректировки данной ситуации уменьшите количество/размер изображений в
management command.
В проекте брокером сообщений и хранилищем для кэша используется
Redis.
-
9. Запустить сервер
python src/manage.py runserver.
-
10. Сервер будет доступен по адрессу:
http://127.0.0.1:8000/.
-
11. В новой консоле запустить worker
cd src/ && celery -A config worker -l debug --without-gossip --without-mingle --without-heartbeat -Ofair --pool=solo.
-
12. В новой консоле запустить beat
cd src/ && celery -A config beat --loglevel=DEBUG.
Стек