API GymPass style app.
A API permite que os usuários realizem ações como:
- Cadastro e autenticação de novos usuários.
- Obtenção de perfil e histórico de check-ins do usuário logado.
- Cadastro de novas academias.
- Busca de academias próximas (até 10 km) ou por nome.
- Realização de check-in em academias.
- Validação de check-ins.
Clone o repositório:
git clone <URL_DO_REPOSITÓRIO>
cd <NOME_DO_PROJETO>
Instalando as dependências do projeto:
npm install
Suba os serviços necessários com Docker:
docker-compose up -d
Após baixar o repositório, abra o terminal na pasta onde foi baixado e execute os seguintes comandos:
Compilar o código TypeScript:
npm run build
Executar a aplicação:
npm run start
Para desenvolvimento, utilize o modo de observação:
npm run start:dev
- Deve ser possível se cadastrar;
- Deve ser possível se autenticar;
- Deve ser possível obter o perfil do usuário logado;
- Deve ser possível obter o número de check-ins realizadas pelo usuário logado;
- Deve ser possível o usuário obter seu histórico de check-in;
- 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 check-in em uma academia;
- Deve ser possível validar o check-in de um usuário;
- Deve ser possível cadastrar uma academia;
- O usuário não deve poder se cadastrar com um e-mail duplicado;
- O usuário não pode fazer 2 check-in 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 criado;
- O check-in só pode ser validado por administradores;
- A academia só pode ser cadastrada por administradores;
- A senha do usuário precisa estar criptografada;
- Os dados da aplicação precisam estar persistidos em um bando PostgreSQL;
- Todas as listas de dados precisam estar paginadas com 20 itens por página;
- O usuário deve ser identificado por um JWT (JSON Web Token);