Сервис аренды велосипедов (тестовое задание). Реализованы эндпоинты для регистрации и аутентификации пользователей, получение списка доступных велосипедов, аренды и возврата велосипедов. Авторизованный пользователь может получить историю своих аренд. Подключен эмулятор почтового сервера. Расчёт стоимости аренды и отправка сообщения пользователю реализованы с использованием брокера Celery. Также формируется отчёт в google-таблицах:
Алексей Наумов ( algena75@yandex.ru )
- Django
- PostgreSQL
- Docker
- Celery
- Redis
- Nginx
- Swagger
- MinIO
- Google Sheets
Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:Algena75/picasso_II.git
cd picasso_II
Создание виртуального окружения:
poetry env use python3.10Установка зависимостей:
poetry install --with testЗапуск оболочки и активация виртуального окружения (из папки проекта):
poetry shellПроверка активации виртуального окружения:
poetry env listСоздать в корне проекта файл .env (см .env.example) для подключения БД, хранилища S3,
и интеграции с Google Sheet. Если не указать в файле .env ID таблицы, то таблица будет создана.
ID таблицы можно посмотреть в логах docker container logs picasso_ii-worker-1. Таблица доступна
по адресу https://docs.google.com/spreadsheets/d/{ID таблицы}.
-
docker compose -f docker-compose.yml up -d
открыть в браузере
http://127.0.0.1/api/docs. Суперпользователь для доступа в админку (http://127.0.0.1/admin) уже создан. Для доступа используйте email=admin@admin.ru и пароль qwerty. Для тестирования в БД созданы 4 велосипеда. Добавить можно через админку. -
- в одном терминале:
выполнить миграции и заполнить базу данных
python3 manage.py migrate python3 manage.py loaddata dump.json
запустить сервер
python3 manage.py runserver
- во втором терминале
celery -A backend worker --loglevel=info --concurrency 1 -E
открыть в браузере http://127.0.0.1:8000/api/docs
Написаны тесты для тестирования основной функциональности сервиса.
Для запуска тестов выполнить в терминале pytest.
