Платежи интегрированы через сервис Ю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
.