Este projeto tem como objetivo simular uma API de gerenciamento das mensalidades pagas pelos alunos à instituição de ensino que ele estuda.
- Listagem e criação de Instituição de Ensino;
- Listagem e criação de Alunos;
- Listagem e criação de Matrículas;
- Listagem de Faturas
- Ruby (>= 2.7.0)
- Rails
- PostgreSQL
- Clone o repositório.
- Execute os seguintes comandos:
- Instalação de dependências:
bundle install - Criação e migração do banco:
rails db:create db:setupNeste passo já serão carregado alguns registros para teste no banco local.
- Para subir a API localmente rode o comando:
rails s
PS: Se estiver rodando em uma máquina Linux, rode os comandos acima com Sudo.
Pronto! A API estará rodando em: http://localhost:3000
Todos os endpoints estão sob o domínio /api/v1/. Segue abaixo a lista e descrição das rotas.
Exemplo: http://localhost:3000/api/v1/institutions
- Instituições
-
Listar todas as instituições
GET institutions -
Listar por ID da instituição
GET institutions\id -
Criar uma nova instituição
POST institutionsObjeto JSON esperado:
{
"name": "UNIFESP",
"document": "87107579000174",
"institution_type": "Universidade"
}
- Alunos
-
Listar todos alunos
GET students -
Listar por ID do aluno
GET students\id -
Criar um novo aluno
POST studentsObjeto JSON esperado:
{
"name": "Milena",
"document": "54636199057",
"gender": "F",
"payment": "Boleto",
"birth_date": "26/08/1999"
}
- Matrículas
-
Listar todas as matrículas
GET registrations -
Listar por ID da matrícula
GET registrations\id -
Criar uma nova matrícula e suas respectivas faturas
POST registrationsObjeto JSON esperado (a instituição e aluno devem ser previamente cadastrados):
{
"total_price": 100.00,
"bill_quantity": 2,
"due_date": 10,
"course_name": "Computação",
"student_id": 1,
"institution_id": 1
}
- Faturas
-
Listar todas as faturas
GET bills -
Listar por ID da matrícula
GET bills\id
-
Para executar todos os testes:
rails test -
Para escolher o diretório a ser testado:
rails test test/modelsourails test test/controllers -
Para testar apenas um arquivo basta especificar no comando, exemplo:
rails test test/models/institution_test.rb