-
Notifications
You must be signed in to change notification settings - Fork 0
ILugaro/TypeScript-Node-TypeORM-JWT-docker
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
# TypeScript-Node-TypeORM-JWT-docker
Тестовое задание REST API сервиса автомоек.
Фреймворк Express, авторизация посредством JWT.
БД PostgreSQL (TypeORM)
Краткое описание функционала сервиса
Сервис автомоек, где должны быть следующие возможности:
Пользователь может зарегистрироваться, затем авторизоваться по номеру телефона(или логину) и паролю. Необходимо реализовать JWT аутентификацию.
Пользователь может добавить свой автомобиль в систему (марка, название, гос.номер, фотография). У пользователя может быть несколько автомобилей.
Затем, пользователь приезжает на мойку и может выбрать место для мойки (бокс). У бокса есть только номер (A1, A2, B1…)
После выбора бокса создается “Посещение”, в котором указаны пользователь, машина и бокс. Через 1 час бокс должен освобождаться автоматически, либо раньше, по запросу пользователя.
Реализованы роли клиента и администратора. Администратор способен действовать от имени любого пользователя, а также просматривать скрытую от клиентов информацию.
Сущности:
Пользователь
Машина
Бокс
Посещение
Описание REST запросов:
(Файл postman в соответствующей папке)
URL: /api/user
POST(/) - добавление нового пользователя
Параметры:
password
phone
login
role - c (client, по умолчанию), a (admin)
POST(/login) - Basic авторизация для получения JWT токена.
Параметры:
method - может быть "login"(по умолчанию) или "phone", определяет что используется в качестве логина
GET(/) - просмотр всех пользователей (только для администратора)
POST(/createFirstAdmin) - создание администратора. Не требует авторизации. Работает пока не существует не одного администратора.
Параметры:
login
password
phone
URL: /api/car
POST(/) - создание нового автомобиля
number
brand
name
owner_id - id владельца (для администратора)
GET(/id пользователя) - просмотр автомобилей пользователя
DELETE(/номер автомобиля) - удаление автомобиля по номерному знаку
URL: /api/visit
POST(/) - создание нового посещения
Параметры:
box
carId
owner_id - id владельца автомобиля (для администратора)
DELETE(/имя бокса) - досрочное прекращение посещения
URL: /api/box
GET(/) - просмотр боксов. В поле "visit" буде null в случае если бокс свободен. Если бокс занят "visit" содержит информацию о времени старта посещения данного бокса.
Параметры:
info - только для администратора, при значении "full" "visit" будет содержать полную информацию о посещении.
POST(/) - создание нового бокса (только для администратора).
Параметры:
name
При первом запуске требуется создать пустую БД с именем wash_db. Для создания первого администратора предназначен POST(/createFirstAdmin).
pgAdmin доступен на порту 5050.
About
Тестовое задание, REST API сервиса автомоек
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published