Projeto desenvolvido durante o módulo de back-end do curso de desenvolvimento web da Trybe.
Neste projeto foi desenvolvida uma API RESTful de gerenciamento de items e vendas em uma loja medieval de um jogo. O desenvolvimento foi feito utilizando TypeScript e arquitetura MSC (model-service-controller).
Para a aplicação foi utilizado um banco de dados MySQL.
Para as funções de autenticação foi utilizado a ferramenta JSON Web Token.
Requisitos
Requisitos obrigatórios:
1. Crie um endpoint para o cadastro de produtos
2. Crie um endpoint para a listagem de produtos
3. Crie um endpoint para o cadastro de pessoas usuárias
4. Crie um endpoint para listar todos os pedidos
5. Crie um endpoint para o login de pessoas usuárias
Requisitos bônus:
6. Crie as validações dos produtos
7. Crie as validações para as pessoas usuárias
8. Crie um endpoint para o cadastro de um pedido
Para executar a aplicação inicie realizando o clone deste repositório com o comando abaixo.
git clone [email protected]:joaoespacheco/Trybe-Project-27-trybesmith.git
Navegue até a raíz do projeto.
cd Trybe-Project-27-trybesmith/
Uma vez na raiz do projeto, execute o comando abaixo para instalar as dependências do projeto.
npm install
Rodando a aplicação com o Docker
Na pasta app do projeto, suba o container talker_manager utilizando o docker-compose.yml. Utilize o comando abaixo.
docker-compose up -d
Entre no terminal do container
docker exec -it trybesmith bash
Caso não tenha instalado anteriormente, uma vez no terminal do container, execute o comando abaixo para instalar as dependências do projeto.
npm install
Para iniciar o servidor utilize o seguinte comando no terminal do container
npm run start
Para iniciar o servidor no modo de desenvolvimento utilize o seguinte comando no terminal do container
npm run dev
A documentação referente as rotas foi confeccionada utilizando a ferramenta Swagger/OpenAPI e pode ser visualizada de duas maneiras:
A documentação das rotas pode ser acessada após iniciar a aplicação localmente de acordo com as instruções da seção anterior chamada "Execução".
Para visualizar as rotas e testar as requisições você pode utilizar a rota http://localhost:3000/api-docs. Caso preferir, você também pode utilizar um cliente de requisições HTTP de sua preferência (Insomnia, Thunder Client, etc) para realizar os testes.
Para visualizar as rotas você pode utilizar a plataforma Swagger Viewer clicando aqui.
- Criar uma aplicação utilizando Express.js e TypeScript
- Utilizar recursos como classes, interfaces, types entre outros
- Criar uma API RESTful utilizando arquitetura MSC (Model-Service-Controller)
- Validar os dados das requisições utilizando a biblioteca Joi
- Implementar autenticação via token utilizando JSON Web Token
- TypeScript
- Node.js
- Express.js
- Express Async Errors
- DotEnv
- Joi
- MySQL
- JSON Web Token
- Docker