Aplicação em rails de gerenciamento de uma rede de academias. Feita em grupo para o curso Treinadev da Campus Code
- Ruby version 2.6.4
- Mostrar todas as academias
- Cadastrar novos clientes
- Mostrar detalhes de uma unidade
- Mostrar preços de planos
- Mostrar aulas avulsas
- Consulta de CPF
- Mostrar todos os planos
- Mostrar detalhes de um plano
- Mostrar dados de matricula
- Desmatricular clientes
> GET "/api/v1/gyms"
# Exemplo de resposta
{
"gym":{
"id":1,
"created_at":"2019-09-12T17:13:13.272Z",
"updated_at":"2019-09-12T17:13:13.275Z",
"name":"Academia 01",
"cod":1,
"open_hour":"09:00",
"close_hour":"22:00",
"working_days":"segunda à sexta",
"address":"Av Paulista 111",
}
}
#Exemplo de resposta para falha
{"messages": "Nenhuma unidade cadastrada"}
> POST "/api/v1/clients"
# Exemplo de entrada
{
"id":1,
"name":"Mario",
"email":"teste@espertofit.com.br",
"status":"active",
"gym_id":"gym.id",
"plan_id":"plan.id",
"cpf":"123"
}
#Exemplo de resposta para falha
{"messages": "Não foi possivel cadastrar esse aluno"}
> GET "/api/v1/gyms/#{gym.id}" (Foram criadas 3 academias no banco de dados)
# Exemplo de resposta
{
"gym":{
"id":1,
"created_at":"2019-09-12T17:13:13.272Z",
"updated_at":"2019-09-12T17:13:13.275Z",
"name":"Academia 01",
"cod":1,
"open_hour":"09:00",
"close_hour":"22:00",
"working_days":"segunda à sexta",
"address":"Av Paulista 111",
"images":["http://www.example.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f38dc1ef0ace3dbcd4f962ceffdf6ffa578a23f1/academia_01.jpeg"]
}
}
#Exemplo de resposta para falha
{"messages": "Academia não encontrada"}
> GET "/api/v1/gyms/#{gym.id}/plans"
# Exemplo de resposta
{
"plans":[{
"id":1,
"name":"Premium",
"minimum_permanence":3,
"created_at":"2019-09-17T18:28:35.445Z",
"updated_at":"2019-09-17T18:28:35.445Z",
"price":100000
},
{
"id":2,
"name":"Basic",
"minimum_permanence":3,
"created_at":"2019-09-17T18:28:35.447Z",
"updated_at":"2019-09-17T18:28:35.447Z",
"price":500000
}]
}
#Exemplo de resposta para falha
{"messages": "Nenhum plano cadastrado"}
> GET "/api/v1/gyms/#{gym.id}/activities"
# Exemplo de resposta
[{
"id":1,
"name":"Zumba",
"status": "active",
"price": 45.35,
"duration": 40,
"capacity": 45,
"difficulty": "fácil",
"equipaments": "Nenhum",
"rules": "Respeitar todos os membros",
"gym_id": 1,
"trainer_id": 1,
"created_at":"2019-09-17T18:28:35.445Z",
"updated_at":"2019-09-17T18:28:35.445Z",
},
{
"id":1,
"name":"Yoga",
"status": "active",
"price": 45.35,
"duration": 40,
"capacity": 45,
"difficulty": "fácil",
"equipaments": "Nenhum",
"rules": "Respeitar todos os membros",
"gym_id": 1,
"trainer_id": 1,
"created_at":"2019-09-17T18:28:35.445Z",
"updated_at":"2019-09-17T18:28:35.445Z",
}]
#Exemplo de resposta para falha
{"messages": "Nenhuma classe cadastrada"}
> GET "/api/v1/clients/consult_cpf/#{client.cpf}"
# Exemplo de resposta
{
"status":"banished",
"cpf":"12312312300",
}
#Exemplo de resposta para falha
{"messages": "CPF não encontrado"}
> GET "/api/v1/show_all_plans"
# Exemplo de resposta
[ {"id":1,
"name":"Premium",
"minimum_permanence":60,
"created_at":"2019-09-17T12:48:51.882Z",
"updated_at":"2019-09-17T12:48:51.882Z"},
{ "id":2,
"name":"Básico",
"minimum_permanence":3,
"created_at":"2019-09-17T12:55:00.722Z",
"updated_at":"2019-09-17T14:33:24.232Z"}
]
# Exemplo de resposta para falha
{"menssages":"Nenhum plano encontrado"}
> GET "/api/v1/plans/#{plan.id}"
# Exemplo de resposta
[ {"id":1,
"name":"Premium",
"minimum_permanence":60,
"created_at":"2019-09-17T12:48:51.882Z",
"updated_at":"2019-09-17T12:48:51.882Z"}
]
# Exemplo de resposta para falha
{"menssages":"Nenhum plano encontrado"}
##API_send_registration_data
> GET "/api/v1/clients/#{client.cpf}"
# Exemplo de resposta
{
"id":1,
"name":"Mario",
"email":"teste@espertofit.com.br",
"status":"active",
"gym_id":"gym.id",
"plan_id":"plan.id",
"cpf":"123"
}
# Exemplo de resposta para falha
"Cliente não encontrado"
##API_recive_unregistration_from_client_site
>POST "/api/v1/inactivate_client/#{client.cpf}"
``json
# Exemplo de resposta
{
"Cliente desmatriculado com sucesso"
}
# Exemplo de resposta para falha
"CPF não encontrado"
## Equipe
A equipe foi composta por @kendyhiga @adubas @CiroDVolpe @kaformentini @trgarcia @Vinicius-CP
## Considerações