Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/renanfachin/pucrs_api_hotwheels
Aplicação desenvolvida com a finalidade de estudo em nodeJS, docker e princípios do SOLID. O projeto é uma API REST para que usuários possam fazer registros de carros específicos.
https://github.com/renanfachin/pucrs_api_hotwheels
api-rest docker fastify jwt-authentication mvc-architecture nodejs postgresql solid
Last synced: 8 days ago
JSON representation
Aplicação desenvolvida com a finalidade de estudo em nodeJS, docker e princípios do SOLID. O projeto é uma API REST para que usuários possam fazer registros de carros específicos.
- Host: GitHub
- URL: https://github.com/renanfachin/pucrs_api_hotwheels
- Owner: RenanFachin
- Created: 2024-03-04T20:04:51.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-03-14T03:51:48.000Z (11 months ago)
- Last Synced: 2024-12-03T07:20:16.872Z (2 months ago)
- Topics: api-rest, docker, fastify, jwt-authentication, mvc-architecture, nodejs, postgresql, solid
- Language: TypeScript
- Homepage:
- Size: 234 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# API Hotwheels
Aplicação desenvolvida com a finalidade de estudo em nodeJS, docker e princípios do SOLID.
O projeto é uma API REST para que usuários possam fazer registros de carros específicos.O deploy da aplicação se encontra no endereço: [API-URL](https://api-hotwheels.onrender.com)
## Requisitos funcionais
O que é possível que o usuário faça na aplicação.- [x] Deve ser possível se cadastrar;
- [x] Deve ser possível se autenticar;
- [x] Deve ser possível cadastrar um carro
- [x] Deve ser possível listar todos os carros
- [x] Deve ser possível listar os detalhes de um carro específico
- [x] Deve ser possível deletar um carro cadastrado
- [x] Deve ser possível fazer a atualização dos dados de um carro## Regras de negócio
Determina condições que serão aplicadas para cada requisito funcional.SEMPRE é associada à um requisito funcional- [x] O usuário não deve poder se cadastrar com um e-mail duplicado;
## Requisitos não funcionais
Requisitos que não partem do cliente, são requisitos mais técnicos. ex: Qual banco de dados será utilizado.- [x] A senha do usuário precisa estar criptografada;
- [x] Os dados da aplicação precisam estar persistido em um banco PostgreSQL;
- [x] O usuário deve ser identificado por um JWT (JSON Web Token);## Executando o projeto
```js// Instalar dependências
npm i// Copiar o arquivo com os dados de conexão e demais variáveis ambiente
cp .env.example .env// Subir o serviço do PostgreSQL via docker
docker compose up -d// Criar as tabelas do banco de dados (em desenvolvimento)
npx prisma migrate dev// Criar as tabelas do banco de dados (em produção)
npx prisma migrate deploy// Execute o projeto
npm run dev// Visualizando o banco de dados
npx prisma studio
```## Insomnia test
[![Run in Insomnia}](https://insomnia.rest/images/run.svg)](https://insomnia.rest/run/?label=API-hotwheels&uri=https%3A%2F%2Fraw.githubusercontent.com%2FRenanFachin%2FAPI_HotWheels%2Fmain%2Fapi-hotwheels-insomnia-export.json%3Ftoken%3DGHSAT0AAAAAABV4J7KLL3HN4TCH52ATHE6KZPPHHDQ)## Tech
- NodeJS
- Fastify
- Prisma
- PostgreSQL
- Typescript