Projeto - Instalação - Execução - Banco de Dados - Testes - Entidades - Desenvolvedores
A Startup Alcance é a proposta de um MVP que tem por objetivo oferecer cursos profissionalizantes para jovens de baixa renda dispostos a se qualificar para o mercado de trabalho. Para simular o gerenciamento dessa escola criamos uma aplicação no ambiente back-end utilizando Node.js com framework Express, banco de dados relacional SQLite, padrão do tipo REST, padrão MVC e o padrão DAO na construção do projeto.
Este projeto encontra-se hospedado no heroku: Alcance
- Abra o terminal em uma pasta de sua preferência e adicione os seguintes comandos:
git clone https://github.com/lipeqalves/ALCANCE-API-Rest.git
- Para entrar na pasta do projeto:
cd ALCANCE-API-Rest
- Instale as dependências necessárias com o seguinte comando:
npm i
- Para inicialização do projeto utilize o comando:
npm start
Foi desenvolvido uma tarefa para popular o banco de dados e auxiliar na validação. Utilize o seguinte comando para execução:
npm run infra
Para a execução de testes já definidos na aplicação utilize o seguinte comando no terminal:
npm test
Houve tentativas de testes de integração neste projeto e se encontram nas branchs: test-integracao-aluno e test-integracao
GET / alunos
Visualização de alunos no banco de dados:
http://localhost:3000/alunos
{
"id": 1,
"nome": "Filipe",
"email": "aluno@test.br",
"telefone": "8199999999",
"idade": "20",
"turma": "A",
"curso": "Informática Avançada"
}GET / alunos/id
Visualização de aluno por Id no banco de dados:
http://localhost:3000/alunos/2
{
"id": 2,
"nome": "Juliana",
"email": "aluno@test.br",
"telefone": "8199999999",
"idade": 16,
"turma": "B",
"curso": "Informática Básica"
}POST / alunos
http://localhost:3000/alunos
Modelo de requisição para inserir aluno no banco de dados:
{
"nome": "cecilia",
"email": "aluno@test.br",
"telefone": "12992033219",
"idade": "17",
"turma": "E",
"curso": "Informática Avançada"
} {
"error": false,
"message": "Cadastrado com sucesso!"
}PUT / alunos/id
http://localhost:3000/alunos/3
Modelo de requisição para atualizar dados do aluno por Id:
{
"nome": "Cecilia",
"email": "aluno@test.br",
"telefone": "12992033219",
"idade": "17",
"turma": "E",
"curso": "Informática Avançada"
} {
"error": false,
"message": "Registro com Id 3 atualizado com sucesso"
}DELETE / alunos/id
Deletar aluno do banco de dados por Id:
http://localhost:3000/alunos/3
{
"erro": false,
"message": "Registro com Id 3 deletado com sucesso"
}GET / cursos
Visualização de cursos no banco de dados:
http://localhost:3000/cursos
{
"id": 1,
"nome": "Informática Avançada",
"horas_duracao": "80"
}GET / cursos/id
Visualização de curso por Id no banco de dados:
http://localhost:3000/cursos/2
{
"id": 2,
"nome": "Gestão Financeira",
"horas_duracao": "20"
}POST / cursos
http://localhost:3000/cursos
Modelo de requisição para inserir curso no banco de dados:
{
"nome": "Programação Neurolinguistica",
"horas_duracao": "10"
} {
"error": false,
"message": "Cadastrado com sucesso!"
}PUT / cursos/id
http://localhost:3000/cursos/3
Modelo de requisição para atualizar dados do curso por Id:
{
"nome": "Programação Neurolinguistica",
"horas_duracao": "10"
} {
"error": false,
"message": "Registro com Id 3 atualizado com sucesso"
}DELETE / cursos/id
Deletar curso do banco de dados por Id:
http://localhost:3000/cursos/3
{
"erro": false,
"message": "Registro com Id 3 deletado com sucesso"
}GET / empresa
Visualização de empresas no banco de dados:
http://localhost:3000/empresa
{
"id": 1,
"empresa": "Roberta soluções informática S.A",
"cnpj": "12.652.984/0001-07",
"email": "robertainfo@hotmail.com",
"telefone": "5511988888888"
}GET / empresa/id
Visualização de empresa por Id no banco de dados:
http://localhost:3000/empresa/2
{
"id": 2,
"empresa": "Filipe LTDA",
"cnpj": "34.654.532/0001-08",
"email": "filipe10@hotmail.com",
"telefone": "5511988888888"
}POST / empresa
http://localhost:3000/empresa
Modelo de requisição para inserir empresa no banco de dados:
{
"empresa": "filipe LTDA",
"cnpj": "34.654.532/0001-08",
"email": "filipe10@hotmail.com",
"telefone": "5511988888888"
} {
"error": false,
"message": "Cadastrado com sucesso!"
}PUT / empresa/id
http://localhost:3000/empresa/3
Modelo de requisição para atualizar dados da empresa por Id:
{
"empresa": "Filipe LTDA",
"cnpj": "34.654.532/0001-08",
"email": "filipe10@hotmail.com",
"telefone": "5511988888888"
}{
"error": false,
"message": "Registro com Id 3 atualizado com sucesso"
}DELETE / empresa/id
Deletar empresa do banco de dados por Id:
http://localhost:3000/empresa/3
{
"erro": false,
"message": "Registro com Id 3 deletado com sucesso"
}GET / formacao
Visualização de formação no banco de dados:
http://localhost:3000/formacao
{
"id": 1,
"aluno": "Filipe",
"instituicao": "Conexão",
"cnpj": "12.652.984/0001-07",
"telefone": "9999-9999",
"email": "instituicao@conexao.com",
"cidade": "Recife",
"estado": "PE",
"curso": "Informática Básica"
}GET / formacao/id
Visualização de formação por Id no banco de dados:
http://localhost:3000/formacao/2
{
"id": 2,
"aluno": "Juliana",
"instituicao": "Geração Aprender",
"cnpj": "34.654.532/0001-08",
"telefone": "5511988888888",
"email": "instituicao@geracaoaprender.com",
"cidade": "Garopaba",
"estado": "SC",
"curso": "Programação Neurolinguistica"
}POST / formacao
http://localhost:3000/formacao
Modelo de requisição para inserir formacao no banco de dados:
{
"aluno": "roberta",
"instituicao": "Focus",
"cnpj": "56.655.489/0001-09",
"telefone": "21 98888-8888",
"email": "instituicao@focus.com",
"cidade": "Rio de Janeiro",
"estado": "RJ",
"curso": "Informática Avançada"
} {
"error": false,
"message": "Cadastrado com sucesso!"
}PUT / formacao/id
http://localhost:3000/formacao/3
Modelo de requisição para atualizar dados da empresa por Id:
{
"aluno": "Roberta",
"instituicao": "Focus",
"cnpj": "56.655.489/0001-09",
"telefone": "21 98888-8888",
"email": "instituicao@focus.com",
"cidade": "Rio de Janeiro",
"estado": "RJ",
"curso": "Informática Avançada"
}{
"error": false,
"message": "Registro com Id 3 atualizado com sucesso"
}DELETE / formacao/id
Deletar formação do banco de dados por Id:
http://localhost:3000/formacao/3
{
"erro": false,
"message": "Registro com Id 3 deletado com sucesso"
}GET / matriculas
Visualização de matriculas no banco de dados:
http://localhost:3000/matriculas
{
"id": 1,
"aluno": "Roberta",
"data_inicio": "29/23/2022",
"numero_matricula": "564321",
"turma": "C",
"curso": "Informática Avançada"
}GET / matriculas/id
Visualização de matricula por Id no banco de dados:
http://localhost:3000/matricula/2
{
"id": 2,
"aluno": "Filipe",
"data_inicio": "29/03/2022",
"numero_matricula": "123456",
"turma": "A",
"curso": "Informática Básica"
}POST / matriculas
http://localhost:3000/matriculas
Modelo de requisição para inserir matricula no banco de dados:
{
"aluno": "Juliana",
"data_inicio": "29/03/2022",
"numero_matricula": "654321",
"turma": "B",
"curso": "Informática Intermediária"
} {
"error": false,
"message": "Cadastrado com sucesso!"
}PUT / matriculas/id
http://localhost:3000/matriculas/3
Modelo de requisição para atualizar dados da matricula por Id:
{
"aluno": "Juliana",
"data_inicio": "29/03/2022",
"numero_matricula": "654321",
"turma": "B",
"curso": "Informática Intermediária"
}{
"error": false,
"message": "Registro com Id 3 atualizado com sucesso"
}DELETE / matriculas/id
Deletar matricula do banco de dados por Id:
http://localhost:3000/matricula/3
{
"erro": false,
"message": "Registro com Id 3 deletado com sucesso"
}GET / turmas
Visualização de turmas no banco de dados:
http://localhost:3000/turmas
{
"id": 1,
"classificacao": "A",
"data_inicio": "10/02/2022",
"data_formatura": "10/11/2024",
"professor": "Paulo Souza",
"curso": "Informatica Basica"
}GET / turmas/id
Visualização de turmas por Id no banco de dados:
http://localhost:3000/turmas/2
{
"id": 2,
"classificacao": "B",
"data_inicio": "10/03/2022",
"data_formatura": "10/12/2024",
"professor": "Sandra Castro",
"curso": "Informatica Intermediario"
}POST / turmas
http://localhost:3000/turmas
Modelo de requisição para inserir turmas no banco de dados:
{
"classificacao": "C",
"data_inicio": "10/04/2022",
"data_formatura": "10/01/2025",
"professor": "Monica Santoro",
"curso": "Informatica Avançado"
} {
"error": false,
"message": "Cadastrado com sucesso!"
}PUT / turmas/id
http://localhost:3000/turmas/3
Modelo de requisição para atualizar dados da turma por Id:
{
"classificacao": "C",
"data_inicio": "10/04/2022",
"data_formatura": "10/01/2025",
"professor": "Monica Santoro Silva",
"curso": "Informatica Avançado"
}{
"error": false,
"message": "Registro com Id 3 atualizado com sucesso"
}DELETE / turmas/id
Deletar turmas do banco de dados por Id:
http://localhost:3000/turmas/3
{
"erro": false,
"message": "Registro com Id 3 deletado com sucesso"
}