- Os alunos são criados com dados como nome, idade, turma, etc.
- É possível adicionar provas a um aluno.
- O sistema usa um repositório na memória (simulado).
- Crie um repositório de alunos em memória com:
const repo = new MemoryRepository()
- Crie o serviço que controla os alunos:
const serv = new StudentsService(repo)
- Crie um aluno:
serv.NewStudent({ Age: 12, Class: 7, Name: "Nicolas", Notes: ["Aluno conversou na hora da explicação"], Exams: [], Shift: "Morning", })
- Crie uma prova para esse aluno:
const exam = new Exam({ NoteValue: 10, Subject: "Math", }) exam.CreateDateForTheExam(10, 2, 20) serv.AddExamForStudent(exam.data, 0)
- Busque o aluno e veja seus dados:
console.log(serv.FindStudent(0))
- core/entities/: Lógica dos objetos (Aluno e Prova).
- core/services/: Regras de negócio, como adicionar provas e criar alunos.
- ports/: Interface dos repositórios.
- adapters/repositorys/: Implementações reais do repositório (neste caso, em memória).
- app.ts: Ponto de entrada da aplicação com a função
Main()
.
Depois de rodar o Main()
, o console vai mostrar os dados do aluno criado com a prova adicionada.
- Instale as dependências (se houver):
npm install
- Execute:
npm run dev-tsc
ou compile comnpm run build
e rode comnpm run dev
- Esse sistema é apenas uma simulação, ideal para testes e aprendizado de arquitetura hexagonal.
- Você pode evoluir ele para usar banco de dados, API REST, e até frontend futuramente.