- linux(Ubuntu)
- docker compose
- python3.11
- git clone {repositories} / колонируем репозиторий
- pip install --upgrade pip / для отладки
- pip install pip install -r requirements.txt / для отладки
- .env.dist -> .env / правим переменные окружения
- sudo ./start_test.sh / запуск
Реализовать backend для сервиса аренды велосипедов, который предоставляет RESTful API для выполнения основных операций. Используйте Django и Django Rest Framework. Реализуйте асинхронные задачи с помощью Celery. Для работы с базой данных используйте Django ORM. Развертывание системы должно осуществляться с использованием Docker и CI/CD (например, GitLab CI). Для работы с облачными технологиями выберите одного из популярных провайдеров (AWS, Google Cloud, Яндекс.Облако) и реализуйте интеграцию с ним.
Регистрация нового пользователя:
- Реализовать API для регистрации нового пользователя.
- Пользователь должен предоставить информацию: имя, электронную почту и пароль.
- Пароль должен храниться в зашифрованном виде. Авторизация пользователя:
- Реализовать API для авторизации пользователя.
- Использовать JWT (JSON Web Token) для управления сеансами. Получение списка доступных велосипедов:
- Реализовать API для получения списка всех доступных велосипедов.
- Учитывать текущий статус велосипеда (доступен или арендован). Аренда велосипеда:
- Реализовать API для аренды велосипеда.
- Пользователь может арендовать только один велосипед одновременно.
- Учитывать время начала аренды. Возврат велосипеда:
- Реализовать API для возврата велосипеда.
- Учитывать время окончания аренды и расчет стоимости аренды. Получение истории аренды пользователя:
- Реализовать API для получения истории аренды велосипедов текущего пользователя. Дополнительные требования Асинхронные задачи:
- Используйте Celery для обработки асинхронных задач (например, расчет стоимости аренды). Тестирование:
- Реализовать модульные тесты с использованием PyTest.
- Реализовать интеграционные тесты для проверки работы API. Развертывание:
- Используйте Docker для контейнеризации приложения.
- Настройте CI/CD систему (например, GitLab CI) для автоматического тестирования и развертывания. Интеграция с облачными технологиями:
- Выберите одного из популярных облачных провайдеров (AWS, Google Cloud, Яндекс.Облако).
- Реализуйте интеграцию с облаком для хранения данных или других сервисов (например, отправка уведомлений).
- Backend: Django, Django Rest Framework
- Асинхронность: Celery
- База данных: PostgreSQL
- Тестирование: PyTest
- Контейнеризация: Docker
- CI/CD: GitLab CI
- Облачные технологии: AWS, Google Cloud или Яндекс.Облако
- http://0.0.0.0:8000/api/users/register - регистрация нового пользователя
- http://0.0.0.0:8000/api/users/login - вход в систему пользователем
- http://0.0.0.0:8000/api/users/logout - вход в систему пользователем
- http://0.0.0.0:8000/api/users/profile - профиль юзера показывает историю и статус аренды
- http://0.0.0.0:8000/api/bikes/list - все велосипеды доступные для аренды
- http://0.0.0.0:8000/api/bikes/rent_start - начало аренды велосипеда
- http://0.0.0.0:8000/api/bikes/rent_end - конец аренды велосипеда
- http://0.0.0.0:8000/api/token/ - получение JWT токена
- http://0.0.0.0:8000/swagger/ - документация по OpenAPI
для регистрации .../users/register отправить { "username": "ivan", "password": "qwerty", "email": "[email protected]" }
- для авторизации ...users/login { "username": "ivan", "password": "qwerty" }
- выход .../users/logout
- запрос .../bikes/list
- запрос .../bikes/rent_start
- запрос.../bikes/rent_end
- запрос.../users/profile
- запрос.../bikes/rent_end запускает задачу подсчёта стоимости
- PyTest интеграционные тесты проверки работы API.
- с помощью скрипта запускается тестовая сборка
- Возможно выбрать вместо контейнера с базой данных интеграцию с облачным сервисом
- Колекция для тестирования postman django picasso.postman_collection.json
- PyTest автоматически запускается контейнер с тестоми эндпоинтов