Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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 для веб-сервиса групповых денежных сборов.

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.




Стек