- Создать файл
.env
и заполнить его переменными окружения. Имена переменных есть в файле.env.example
- Запустить проект:
sudo docker-compose up
В этом репозитории реализовано API приложения для планирования пикников, состоящие из сущностей:
- Город
- Пикник
- Пользователь
- Регистрация пользователя на пикник
Тестовое задание подразумевает изменение представленного здесь кода для достижения следующих задач:
- Запустить проект и ознакомиться с его документацией на странице
http://127.0.0.1:8000/redoc/
илиhttp://127.0.0.1:8000/docs/
и выполнить каждый из запросов - Изменить код проекта для получения дополнительных возможностей:
- Добавить поиск городов аргументом
q
в запросе/get-cities/
- Добавить возможность фильтрации пользователей по возрасту(минимальный/максимальный) в запросе
users-list
- Поправить ошибку в запросе
picnic-add
- Добавить метод регистрации на пикник
picnic-register
- Добавить поиск городов аргументом
- Высказать идеи рефакторинга файла
external_requests.py
- Описать возможные проблемы при масштабировании проекта
- Привести к нормальному виду:
- Методы обращения к эндпойнтам
- Названия эндпойнтов
- Архитектуру и пути обращения к эндпойнтам
- Расписать все входные/выходные поля в документации (
/redoc/
или/docs/
), описав их классами - Оптимизировать работу с базой данных в запросе
/all-picnics/
- Сменить базу данных с SQLite на PostgreSQL
- Отрефакторить файл
external_requests.py
- Написать тесты
- Сделать логирование в файл, который не будет очищаться после перезапуска в докере
- Описать правильную архитектуру для проекта
Результат выполнения должен быть выложен в общедоступном репозитории, история коммитов должна показывать выполненную работу Комментарии в коде тоже приветствуются