Это оценочный проект, разработанный в модуле BackEnd курса веб-разработки Trybe. Проект включает использование Typescript, Sequelize и JWT. В ходе разработки были улучшены различные навыки:
- Работа с тестами
- Использование архитектуры MSC (Модель-Сервис-Контроллер)
- Создание маршрутов для создания, чтения и обновления информации
- Аутентификация маршрутов
Этот проект заключался в создании магазина средневековых предметов с использованием Typescript и Sequelize. Основное внимание было уделено разработке слоев Service и Controllers.
- Node.js
- Express
- Typescript
- Sequelize
- MySQL
- JWT (JSON Web Token)
- Docker и Docker Compose
Проект структурирован в соответствии с архитектурой MSC, где ответственность разделена между Моделью, Сервисом и Контроллером. Ниже представлены некоторые из основных реализованных маршрутов:
- POST /login: Выполняет вход пользователя.
- POST /products: Добавляет новый продукт (валидирует имя и цену).
- GET /products: Возвращает все зарегистрированные продукты.
- GET /orders: Возвращает все зарегистрированные заказы.
- POST /orders: Создает новый заказ (валидирует JWT, ID пользователя и ID продукта).
Проект использует несколько middleware для валидации, включая:
validateProducts
: Валидация данных продукта (имя и цена).validateUser
: Валидация данных пользователя.validateProductById
: Валидация существования продукта по ID.validateJWT
: Валидация JWT-токена для аутентификации.
Чтобы запустить проект, выполните следующие шаги:
- Установите Docker и Docker Compose.
- Установите Node.js (необязательно, если вы хотите запускать локально без Docker).
-
Клонируйте репозиторий:
git clone https://github.com/seu_usuario/trybe-smith.git cd trybe-smith
-
Создайте файл
.env
в корне проекта с следующими переменными окружения:DB_USER=root DB_PASSWORD=password DB_HOST=db DB_PORT=3306 DB_NAME=Trybesmith JWT_SECRET=secret
-
Запустите Docker Compose для сборки и запуска контейнеров:
docker-compose up --build
-
Доступ к API через браузер или инструмент API (например, Postman) по адресу
http://localhost:3001
.