Bem-vindo ao GymCheck API! Uma plataforma inspirada no modelo Gympass, criada para facilitar a gestão de academias e check-ins de usuários. Com esta API, você pode:
- Cadastrar usuários e academias.
- Realizar check-ins em academias próximas (até 100 metros).
- Validar check-ins e manter um histórico detalhado.
- Pesquisar academias pelo nome.
- Atribuir permissões administrativas para controle total 💪🏋️♂️
- Repository
- Factory
Antes de começar, certifique-se de ter o Docker Compose instalado.
-
Clone este repositório:
git clone [email protected]:KaueASB/api-solid-node-prisma.git cd api-solid
-
Instale as dependências:
npm install
-
Inicie os contêineres Docker (certifique-se de que o Docker esteja em execução):
docker-compose up -d
-
Execute as migrações do banco de dados com o Prisma:
npx prisma migrate dev
-
Inicie o servidor de desenvolvimento:
npm run dev
A aplicação estará disponível em http://localhost:3333.
Certifique-se de configurar as variáveis de ambiente necessárias em um arquivo .env
na raiz do projeto.
PORT
: Porta em que o servidor será executado.DATABASE_URL
: URL de conexão com o banco de dados PostgreSQL.
Agora você está pronto para explorar o projeto localmente. 😊
- 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 realizados pelo usuário logado
- Deve ser possível o usuário obter o 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 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 pode se cadastrar com um e-mail duplicado
- O usuário não pode fazer 2 check-ins no mesmo dia
- O usuário não pode validar o mesmo check-in duas vezes
- O usuário não pode fazer check-in se não estiver há 100 mts 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
- A senha do usuário precisa estar criptografada
- Os dados da aplicação precisam estar persistidos em um banco 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)