Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 6 days 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 (7 months ago)
- Default Branch: main
- Last Pushed: 2024-05-18T02:44:22.000Z (6 months ago)
- Last Synced: 2024-05-19T02:29:03.439Z (6 months ago)
- Topics: celery, django, django-rest-framework, djoser, poetry, postgresql, python, redis, yookassa
- Language: Python
- Homepage:
- Size: 650 KB
- Stars: 0
- 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
.
Стек