https://github.com/carlos-hfc/api-solid
GymPass Style App desenvolvido no módulo sobre API REST da formação de Node.js da Rocketseat.
https://github.com/carlos-hfc/api-solid
fastify mysql nodejs prisma-orm rocketseat rocketseat-ignite typescript vitest zod
Last synced: 3 months ago
JSON representation
GymPass Style App desenvolvido no módulo sobre API REST da formação de Node.js da Rocketseat.
- Host: GitHub
- URL: https://github.com/carlos-hfc/api-solid
- Owner: carlos-hfc
- License: mit
- Created: 2024-05-09T19:27:04.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-13T20:14:06.000Z (about 2 years ago)
- Last Synced: 2026-04-04T00:46:53.362Z (3 months ago)
- Topics: fastify, mysql, nodejs, prisma-orm, rocketseat, rocketseat-ignite, typescript, vitest, zod
- Language: TypeScript
- Homepage:
- Size: 256 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# :bulb: Sobre
GymPass Style App desenvolvido no módulo sobre API REST da formação de Node.js da Rocketseat.
## :page_with_curl: Pré-requisitos
1. Antes de começar, certifique-se de ter o Node.js instalado em sua máquina.
## :gear: Configuração
1. Clone o repositório para sua máquina local:
```bash
git clone https://github.com/carlos-hfc/api-rest-nodejs
```
2. Acesse o diretório do projeto:
```bash
cd api-rest-nodejs
```
3. Instale as dependências:
```bash
npm install
```
4. Crie um arquivo `.env.local` na raiz do projeto e adicione as seguinte chaves:
```env
NODE_ENV=""
DATABASE_URL=""
JWT_SECRET=""
```
5. Rode a aplicação
```bash
npm run dev
```
## :computer_mouse: Features
### Requisitos funcionais
- :ballot_box_with_check: Deve ser possível se cadastrar
- :ballot_box_with_check: Deve ser possível se autenticar
- :ballot_box_with_check: Deve ser possível obter o perfil de um usuário logado
- :ballot_box_with_check: Deve ser possível obter o número de check-ins realizados pelo usuário logado
- :ballot_box_with_check: Deve ser possível o usúario obter o seu histórico de check-ins
- :ballot_box_with_check: Deve ser possível o usuário buscar academias próximas (até 10km)
- :ballot_box_with_check: Deve ser possível o usuário buscar academias pelo nome
- :ballot_box_with_check: Deve ser possível o usuário realizar o check-in em uma academia
- :ballot_box_with_check: Deve ser possível validar o check-in de um usuário
- :ballot_box_with_check: Deve ser possível cadastrar uma academia
### Regras de negócio
- :ballot_box_with_check: O usuário não deve se cadastar com um e-mail duplicado
- :ballot_box_with_check: O usuário não pode fazer 2 check-ins no mesmo dia
- :ballot_box_with_check: O usuário não pode fazer check-in se não estiver perto (100m) da academia
- :ballot_box_with_check: O check-in só pode ser validado até 20 minutos após ser criado
- :ballot_box_with_check: O check-in só pode ser validado por administradores
- :ballot_box_with_check: A academia só pode ser cadastrada por administradores
### Requisitos não funcionais
- :ballot_box_with_check: A senha do usuário precisa estar criptografada
- :ballot_box_with_check: Os dados da aplicação precisam estar persistidos em um branco PostgreSQL
- :ballot_box_with_check: Todas as listas de dadaos precisam estar paginadas com 20 itens por página
- :ballot_box_with_check: O usuário deve ser identificado por um JWT (JSON Web Token)
## :computer: Tecnologias utilizadas
## :page_facing_up: Licença
Este projeto está licenciado sob a [Licença MIT](LICENSE).