Skip to content

GymPass Style App desenvolvido no módulo sobre API REST da formação de Node.js da Rocketseat.

License

Notifications You must be signed in to change notification settings

carlos-hfc/api-solid

Repository files navigation


💡 Sobre

GymPass Style App desenvolvido no módulo sobre API REST da formação de Node.js da Rocketseat.

📃 Pré-requisitos

  1. Antes de começar, certifique-se de ter o Node.js instalado em sua máquina. Node.js

⚙️ Configuração

  1. Clone o repositório para sua máquina local:
git clone https://github.com/carlos-hfc/api-rest-nodejs
  1. Acesse o diretório do projeto:
cd api-rest-nodejs
  1. Instale as dependências:
npm install
  1. Crie um arquivo .env.local na raiz do projeto e adicione as seguinte chaves:
NODE_ENV=""
DATABASE_URL=""
JWT_SECRET=""
  1. Rode a aplicação
npm run dev

🖱️ Features

Requisitos funcionais

  • ☑️ Deve ser possível se cadastrar
  • ☑️ Deve ser possível se autenticar
  • ☑️ Deve ser possível obter o perfil de um usuário logado
  • ☑️ Deve ser possível obter o número de check-ins realizados pelo usuário logado
  • ☑️ Deve ser possível o usúario obter o seu histórico de check-ins
  • ☑️ Deve ser possível o usuário buscar academias próximas (até 10km)
  • ☑️ Deve ser possível o usuário buscar academias pelo nome
  • ☑️ Deve ser possível o usuário realizar o check-in em uma academia
  • ☑️ Deve ser possível validar o check-in de um usuário
  • ☑️ Deve ser possível cadastrar uma academia

Regras de negócio

  • ☑️ O usuário não deve se cadastar com um e-mail duplicado
  • ☑️ O usuário não pode fazer 2 check-ins no mesmo dia
  • ☑️ O usuário não pode fazer check-in se não estiver perto (100m) da academia
  • ☑️ O check-in só pode ser validado até 20 minutos após ser criado
  • ☑️ O check-in só pode ser validado por administradores
  • ☑️ A academia só pode ser cadastrada por administradores

Requisitos não funcionais

  • ☑️ A senha do usuário precisa estar criptografada
  • ☑️ Os dados da aplicação precisam estar persistidos em um branco PostgreSQL
  • ☑️ Todas as listas de dadaos precisam estar paginadas com 20 itens por página
  • ☑️ O usuário deve ser identificado por um JWT (JSON Web Token)

💻 Tecnologias utilizadas

Node.js TypeScript

📄 Licença

Este projeto está licenciado sob a Licença MIT.

About

GymPass Style App desenvolvido no módulo sobre API REST da formação de Node.js da Rocketseat.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published