An open API service indexing awesome lists of open source software.

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.

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.

Node.js

## :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


Node.js
TypeScript

## :page_facing_up: Licença

Este projeto está licenciado sob a [Licença MIT](LICENSE).