Descrição O projeto SuperFit é um servidor de API para gerenciamento de uma academia. Ele fornece endpoints para realizar operações CRUD (Create, Read, Update, Delete) em diferentes entidades, como pessoas, modalidades, planos, matrículas e horários de aulas.
E também gera um relatório que apresente o total de alunos por plano, o valor total recebido o total de alunos inadimplente e adimplentes. As rotas exigem um token de login, adquirido ao fazer login com email e cgc de um instrutor.
- JSON Web Tokens (JWT)
- TypeScript
- Node.js
- Express.js
- PostgreSQL
- dotenv
O servidor oferece as seguintes funcionalidades:
- Autenticação de usuários através do endpoint /login.
- Geração de relatorio através do endpoint /relatorio
- Operações CRUD para a entidade "Pessoas" nos endpoints /pessoas.
- Operações CRUD para a entidade "Modalidades" nos endpoints /modalidades.
- Operações CRUD para a entidade "Planos" nos endpoints /planos.
- Operações CRUD para a entidade "Matrículas" nos endpoints /matriculas.
- Operações CRUD para a entidade "Horários de Aulas" nos endpoints /horarioaulas.
- Operações CRUD para a entidade "Modalidades Planos" nos endpoints /modalidadesplanos.
-
Clone o repositório do projeto:
git clone https://github.com/jorgehenrrique/api-CRUD-DB-SuperFit
-
Instale as dependências do projeto:
cd api-CRUD-DB-SuperFit npm install
-
Crie um arquivo .env na raiz do projeto e defina as seguintes variáveis de ambiente:
TOKEN_SECRET=secretToken HOST_PORT=3000 DB_USER=postgres DB_HOST=localhost DB_NAME=DBName DB_PASS=yourPass DB_PORT=5432
-
Inicie o servidor:
npm run dev
-
O servidor estará disponível em http://localhost:3000.
Caso uma requisição seja feita para um endpoint inexistente, o servidor retornará uma resposta com status 404 e uma mensagem informando que o link é inexistente.
O projeto SuperFit é uma API completa para gerenciamento de diferentes entidades. Utilize os endpoints disponíveis para realizar operações CRUD nas respectivas entidades.
A seguir estão listados os endpoints disponíveis no servidor e como utilizar:
- /login: Endpoint para autenticação de usuários.
- /relatorio: Endpoint para geração de relatórios.
- /pessoas: Endpoint para operações CRUD na entidade "Pessoas".
- /modalidades: Endpoint para operações CRUD na entidade "Modalidades".
- /planos: Endpoint para operações CRUD na entidade "Planos".
- /matriculas: Endpoint para operações CRUD na entidade "Matrículas".
- /horarioaulas: Endpoint para operações CRUD na entidade "Horários de Aulas".
- /modalidadesplanos: Endpoint para operações CRUD na entidade "Modalidades Planos".
URL: /login
Método: POST
Corpo da requisição:
{
"cgc": "65748907123",
"email": "carla@email"
}
Resposta:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoiNiIsIm5hbWUiOiJKb2FvIn0sImlhdCI6MTY0ODgzNjkzM30.FwioGSfHby1QII5zZ-Hxf-DUpCtT2I7DWchNiA9PFOs"
}
Salvar o token recebido para incluir nos headers das demais requisições.
URL: /relatorio
Método: GET
Headers:
Authorization API Key
Resposta:
[
{
"plano": "Fit Dance",
"total_alunos": "3",
"valor_total_recebido": "209.70",
"total_inadimplente": "1",
"total_adimplente": "2"
},
{
"plano": "Jiu-Jitsu",
"total_alunos": "5",
"valor_total_recebido": "654.80",
"total_inadimplente": "1",
"total_adimplente": "4"
}
]
URL: /pessoas
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /pessoas/:id
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /pessoas
Método: POST
Headers:
Authorization API Key
Corpo da requisição:
{
"nome": "Henrique II",
"cgc": "000009000999",
"tipo_pessoa": "F",
"email": "novoE@email.com",
"tipo_cadastro": "A",
"ativo": "S"
}
Resposta:
json
URL: /pessoas/:id
Método: PUT
Headers:
Authorization API Key
Corpo da requisição:
{
"nome": "",
"cgc": "",
"tipo_pessoa": "",
"email": "",
"tipo_cadastro": "",
"ativo": ""
}
Resposta:
json
URL: /pessoas/:id
Método: DELETE
Headers:
Authorization API Key
Resposta:
json
URL: /modalidades
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /modalidades/:id
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /modalidades
Método: POST
Headers:
Authorization API Key
Corpo da requisição:
{
"nome": "NOME"
}
Resposta:
json
URL: /modalidades/:id
Método: PUT
Headers:
Authorization API Key
Corpo da requisição:
{
"nome": "NOME"
}
Resposta:
json
URL: /modalidades/:id
Método: DELETE
Headers:
Authorization API Key
Resposta:
json
URL: /planos
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /planos/:id
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /planos
Método: POST
Headers:
Authorization API Key
Corpo da requisição:
{
"nome": "PLANO",
"descricao": "Desc",
"preco": "000.00"
}
Resposta:
json
URL: /planos/:id
Método: PUT
Headers:
Authorization API Key
Corpo da requisição:
{
"nome": "PLANO",
"descricao": "Desc",
"preco": "000.00"
}
Resposta:
json
URL: /planos/:id
Método: DELETE
Headers:
Authorization API Key
Resposta:
json
URL: /modalidadesplanos
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /modalidadesplanos/:id/:id2
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /modalidadesplanos
Método: POST
Headers:
Authorization API Key
Corpo da requisição:
{
"plano_id": 00,
"modalidade_id": 00
}
Resposta:
json
URL: /modalidadesplanos/:id/:id2
Método: PUT
Headers:
Authorization API Key
Corpo da requisição:
{
"plano_id": 00,
"modalidade_id": 00
}
Resposta:
json
URL: /modalidadesplanos/:id/:id2
Método: DELETE
Headers:
Authorization API Key
Resposta:
json
URL: /horarioaulas
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /horarioaulas/:id
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /horarioaulas
Método: POST
Headers:
Authorization API Key
Corpo da requisição:
{
"dia_semana": 0,
"hora_inicio": "05:00:00",
"hora_fim": "22:00:00",
"modalidade_id": 2,
"instrutor_id": 7
}
Resposta:
json
URL: /horarioaulas/:id
Método: PUT
Headers:
Authorization API Key
Corpo da requisição:
{
"dia_semana": 0,
"hora_inicio": "05:00:00",
"hora_fim": "22:00:00",
"modalidade_id": 2,
"instrutor_id": 7
}
Resposta:
json
URL: /horarioaulas/:id
Método: DELETE
Headers:
Authorization API Key
Resposta:
json
URL: /matriculas
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /matriculas/:id
Método: GET
Headers:
Authorization API Key
Resposta:
json
URL: /matriculas
Método: POST
Headers:
Authorization API Key
Corpo da requisição:
{
"aluno_id": 4,
"plano_id": 2,
"dia_vencimento": 0,
"valor_mensalidade": "100.10",
"data_inicio": "2023-07-06T03:00:00.000Z",
"data_fim": "2024-06-06T03:00:00.000Z"
}
Resposta:
json
URL: /matriculas/:id
Método: PUT
Headers:
Authorization API Key
Corpo da requisição:
{
"aluno_id": 4,
"plano_id": 2,
"dia_vencimento": 0,
"valor_mensalidade": "100.10",
"data_inicio": "2023-07-06T03:00:00.000Z",
"data_fim": "2024-06-06T03:00:00.000Z"
}
Resposta:
json
URL: /matriculas/:id
Método: DELETE
Headers:
Authorization API Key
Resposta:
json