Платежи интегрированы через сервис ЮKassa, ссылка на SDK.
В проекте доступна swagger-документация по адресу /api/v1/docs/.
Эндпоинты пользователя ограничены для простоты восприятия.
Поле cover может принимать как base64-строку, так и slug дефолтной обложки.
Эндпоинт DELETE: /api/v1/collectings/{slug}/ не удаляет объект, а делает его неактивным.
Details
Через 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
Details
Через консоль
- 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.