Skip to content

elitostajunior/labenu-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Documentação do Projeto: Labenu System

Projeto feito para o curso Web Full Stack da Labenu, onde teve como proposta fazer um sistema de gerenciamento de dados para a escola Labenu, que inclui informações sobre turmas, estudantes, docentes e especialidades. Ele é construído usando TypeScript, Express.js e MySQL.

Estrutura do Diretório

- src
  - controllers
  - models
  - routes
  - database
  - index.ts

Configuração

  1. Clone este repositório em sua máquina local.
  2. Instale as dependências usando o comando npm install.
  3. Configure o arquivo .env com as variáveis de ambiente necessárias para a conexão com o banco de dados.

Modelos

Os modelos definem as estruturas de dados usadas no sistema:

  • criaTurmaInput.ts: Define a estrutura para criar uma nova turma.
  • criaEstudanteInput.ts: Define a estrutura para criar um novo estudante.
  • criaDocenteInput.ts: Define a estrutura para criar um novo docente.

Controllers

Os controladores são responsáveis por tratar as requisições HTTP:

  • turmaController.ts: Controlador para lidar com operações relacionadas a turmas.
  • estudanteController.ts: Controlador para lidar com operações relacionadas a estudantes.
  • docenteController.ts: Controlador para lidar com operações relacionadas a docentes.

Rotas

As rotas definem os endpoints da API:

  • turmaRoutes.ts: Define as rotas para operações de turmas.
  • estudanteRoutes.ts: Define as rotas para operações de estudantes.
  • docenteRoutes.ts: Define as rotas para operações de docentes.

Conexão com Banco de Dados

  • connection.ts: Define a configuração e a criação da conexão com o banco de dados MySQL usando a biblioteca Knex.

Como Iniciar o Servidor

  • Execute o comando npm start para iniciar o servidor. O servidor estará disponível em http://localhost:3003.

Rotas Principais

  • POST /turma: Cria uma nova turma.
  • POST /estudante: Cria um novo estudante e associa passatempos.
  • PUT /estudante: Atualiza a turma de um estudante.
  • GET /estudante/:id: Retorna informações sobre um estudante.
  • POST /docente: Cria um novo docente e associa especialidades.
  • PUT /docente: Atualiza a turma de um docente.

Exemplos de Uso

Criar uma Nova Turma

POST http://localhost:3003/turma
Content-Type: application/json

{
    "id": 5,
    "nome": "tang",
    "data_inicio": "2020-02-10",
    "data_fim": "2020-08-10",
    "tipo": "noturno"
}

Criar um Novo Estudante

POST http://localhost:3003/estudante
Content-Type: application/json

{
    "id": 1,
    "nome": "Caio Fernandes",
    "email": "caiofernandes@email.com",
    "data_nasc": "1997-07-10",
    "hobbies": ["Ver filme", "Cuidar do Lupin", "Aprontar"],
    "turma_id": 5
}

Criar um Novo Docente

POST http://localhost:3003/docente
Content-Type: application/json

{
    "id": 1,
    "nome": "José da Silva",
    "email": "josedasilva@email.com",
    "data_nasc": "1994-02-24",
    "especialidades": ["CSS", "REACT", "REDUX"],
    "turma_id": 5
}

Colocar/Alterar Aluno em Determinada Turma

PUT http://localhost:3003/estudante
Content-Type: application/json

{
    "estudante_id": 1,
    "turma_id": 4
}

Colocar/Alterar Docente em Determinada Turma

PUT http://localhost:3003/docente
Content-Type: application/json

{
    "docente_id": 1,
    "turma_id": 4
}

Buscar Aluno com Base no ID

GET http://localhost:3003/estudante/1

Considerações Finais

Esta documentação oferece uma visão geral do projeto e de suas principais funcionalidades. Certifique-se de explorar os arquivos individuais e as rotas definidas nos controladores para obter detalhes mais específicos sobre as operações disponíveis.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published