/VolgaIT-Simbir-GO

Cервиса по аренде автомобилей под названием “Simbir.GO

Primary LanguagePython

Описание проекта

Волга IT - Задание полуфинального этапа

В данном задании необходимо разработать сервис по аренде автомобилей под названием “Simbir.GO”. Сервис предлагает аренду не только автомобилей, но и мотоциклов, а также самокатов. Можно выбрать срок аренды транспортного средства, например 1 минуту или 1 день.

В решении должна использована база данных Postgres. Авторизация пользователя осуществляется с помощью JWT (Json Web Token). Для проверки приложения сконфигурирован Swagger и с возможностью авторизации по JWT.

Swagger (http://127.0.0.1:5000/)

Документация swagger

Account Controller API

Документация Account Controller API

Admin Account Controller API

Документация Admin Account Controller API

Payment Controller API

Документация Payment Controller API

Transport Controller API

Документация Transport Controller API

Admin Transport Controller API

Документация Admin Transport Controller API

Rent Controller API

Документация Rent Controller API

Admin Rent Controller API

Документация Admin Rent Controller API

Структура проекта

├───app
│   ├───apis
│   │   ├───accounts
│   │   ├───payments
│   │   ├───rents
│   │   └───transports
│   ├───configs
│   ├───core
│   │   ├───accounts
│   │   │   └───utils
│   │   ├───payments
│   │   ├───rents
│   │   └───transports
│   └───extensions
│       ├───database
│       │   ├───models
│       │   └───schemas
│       └───jwt
├───description 
└───tests  

Описание:

  • В apis находится описание API в Swagger;
  • В configs находятся конфиги для тестирования / отладки;
  • В core находится бизнес-логика приложения;
  • В extensions находятся сторонние библиотеки для Flask (ORM, JWT, ... );
  • В test находятся unit-тесты для проверки корректной работы контроллеров.

Запуск проекта

chmod +x entrypoint.sh
docker compose up --build -d

Документация Swagger: http://127.0.0.1:5000

Подключение к Postgres через pgAdmin4

pgAdmin4: http://127.0.0.1:5050

Добавьте сервер с базой данных:

  1. Выберите Add New Server и укажите:
    • General:
      • Name: db
    • Connection
      • Host name/address: db
      • Port: 5432
      • Maintenance database: simbir_go
      • Username: user
      • Password: password
  2. Нажмите Save Подключенный сервер с базой данных находится: Servers -> Databases(2) -> simbir_go

Тестирование

Были протестированы следующие контроллеры:

  • Account Controller
  • Admin Account Controller
  • Payment Controller