Trata-se de um projeto avaliativo desenvolvido no módulo de BackEnd do curso de Desenvolvimento Web da Trybe. O projeto envolveu o uso de Typescript, Sequelize e JWT. Durante o desenvolvimento, diversas competências foram aprimoradas:
- Manipulação de testes
- Uso da arquitetura MSC (Model-Service-Controller)
- Criação de rotas para criação, leitura e atualização de informações
- Autenticação de rotas
Este projeto consistiu na criação de uma loja de itens medievais utilizando Typescript e Sequelize. O foco principal foi no desenvolvimento das camadas de Service e Controllers.
- Node.js
- Express
- Typescript
- Sequelize
- MySQL
- JWT (JSON Web Token)
- Docker e Docker Compose
O projeto está estruturado de acordo com a arquitetura MSC, onde as responsabilidades são separadas entre Model, Service e Controller. A seguir, estão algumas das principais rotas implementadas:
- POST /login: Realiza o login do usuário.
- POST /products: Adiciona um novo produto (valida nome e preço).
- GET /products: Retorna todos os produtos cadastrados.
- GET /orders: Retorna todos os pedidos cadastrados.
- POST /orders: Cria um novo pedido (valida JWT, ID do usuário e ID do produto).
O projeto utiliza diversos middlewares para validação, incluindo:
validateProducts
: Valida os dados do produto (nome e preço).validateUser
: Valida os dados do usuário.validateProductById
: Valida a existência do produto pelo ID.validateJWT
: Valida o token JWT para autenticação.
Para executar o projeto, siga os passos abaixo:
- Ter o Docker e Docker Compose instalados.
- Ter o Node.js instalado (opcional, se você deseja executar localmente sem Docker).
-
Clone o repositório:
git clone https://github.com/seu_usuario/trybe-smith.git cd trybe-smith
-
Crie um arquivo
.env
na raiz do projeto com as seguintes variáveis de ambiente:DB_USER=root DB_PASSWORD=password DB_HOST=db DB_PORT=3306 DB_NAME=Trybesmith JWT_SECRET=secret
-
Execute o Docker Compose para construir e iniciar os containers:
docker-compose up --build
-
Acesse a API no seu navegador ou ferramenta de API (como Postman) em
http://localhost:3001
.