+
Skip to content

Nicolas-Asafe/SystemSchool

Repository files navigation

SystemSchool

Esse sistema simula a gestão de alunos e provas de uma escola. Ele usa o padrão Arquitetura Hexagonal, com separação de entidades, serviços e repositórios.

🧠 Conceito Principal

  • 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).

🛠️ Como Usar

  1. Crie um repositório de alunos em memória com:
    const repo = new MemoryRepository()
  2. Crie o serviço que controla os alunos:
    const serv = new StudentsService(repo)
  3. Crie um aluno:
    
    serv.NewStudent({
      Age: 12,
      Class: 7,
      Name: "Nicolas",
      Notes: ["Aluno conversou na hora da explicação"],
      Exams: [],
      Shift: "Morning",
    })
          
  4. Crie uma prova para esse aluno:
    
    const exam = new Exam({
      NoteValue: 10,
      Subject: "Math",
    })
    exam.CreateDateForTheExam(10, 2, 20)
    serv.AddExamForStudent(exam.data, 0)
          
  5. Busque o aluno e veja seus dados:
    console.log(serv.FindStudent(0))

📦 Estrutura do Projeto

  • 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().

🧪 Resultado Esperado

Depois de rodar o Main(), o console vai mostrar os dados do aluno criado com a prova adicionada.

🚀 Execução

  1. Instale as dependências (se houver): npm install
  2. Execute: npm run dev-tsc ou compile com npm run build e rode com npm run dev

💬 Observações

  • 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.

About

Um sitema de uma escola com uma arquitetura q estou estudando

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载