Skip to content

A API Alocação de professores tem como objetivo otimizar o processo de alocação, permitindo a gestão de docentes de um departamento para lecionar em diferentes dias e horários para um curso específico. Desenvolvimento em Typescript para Node.js(Express), integração ao MySQL com o ORM Prisma, uso da arquitetura em camadas e injeção de dependências.

Notifications You must be signed in to change notification settings

amavlopes/professor-allocation-api

Repository files navigation

🎓 API REST Alocação de Professores

Projeto para validar conceitos referente ao desenvolvimento back-end, proposto pelo professor Tiago Santos da disciplina de Arquitetura de Software Back-End da Pós-Graduação de Engenharia de Software 2024.1 do Centro Universitário Frassinetti do Recife (UniFAFIRE).

A API Alocação de professores tem como objetivo otimizar o processo de alocação, permitindo a gestão de docentes de um departamento para lecionar em diferentes dias e horários para um curso específico. Desenvolvimento em Typescript para Node.js(Express.js), integração ao MySQL com o ORM Prisma, uso da arquitetura em camadas e injeção de dependências.


📌 Funcionalidades

  • ✅ Gestão de Cursos
  • ✅ Gestão de Departamentos
  • ✅ Gestão de Professores
  • ✅ Gestão de Alocações

🧱 Tecnologias Utilizadas

  • Node.js
  • Express.js
  • Typescript
  • ORM Prisma
  • Swagger / OpenAPI 3 (swagger-autogen)

🏃 Como executar o projeto

1. Clone o projeto:

  git clone https://github.com/amavlopes/professor-allocation-api.git

2. Entre no diretório do projeto:

  cd professor-allocation-api

3. Instale todas as dependências:

  npm install

4. Configure as variáveis de ambiente

Crie um arquivo .env com base no .env-example:
APP_PORT = 7000

ENABLED_CORS = http://localhost:7000,http://localhost:4200

DATABASE_URL = mysql://usuario:senha@localhost:3306/nome_do_banco

5. Crie o banco de dados executando o comando:

  npm run prisma-create-db

6. (Opcional) Para popular o banco de dados execute o comando:

  npm run prisma-seed

7. Execute a aplicação:

  npm run start

🔍 Documentação do Swagger

Após executar a API, acesse a documentação interativa:

  http://localhost:7000/docs

🧪 Executando testes com Cypress

1. Com interface

Após executar a API, execute o comando:
  npm run cy:open
Escolha o browser, depois "Start E2E Testing...' e escolha o spec da lista. (exemplo: post-course.cy.ts)

2. Em modo headless

Execute o comado abaixo, com um dos arquivos em 'cypress/e2e':
  # Exemplo: npm run cy:run -- cypress/e2e/post-course.cy.ts
  npm run cy:spec -- <CAMINHO_ARQUIVO_CYPRESS>

🔄 Mantendo o banco atualizado

Sempre que fizer alterações no arquivo prisma/schema.prisma:

Crie e execute uma migration:
  npm run prisma-migrate -- [nome_da_migration]

⌨️ com ❤️ por Amanda Avelino 😊

About

A API Alocação de professores tem como objetivo otimizar o processo de alocação, permitindo a gestão de docentes de um departamento para lecionar em diferentes dias e horários para um curso específico. Desenvolvimento em Typescript para Node.js(Express), integração ao MySQL com o ORM Prisma, uso da arquitetura em camadas e injeção de dependências.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published