O projeto School Manager é uma API para gerenciamento escolar. Possibilita o cadastro de alunos, professores e criação de turmas, utilizando um professor e até 20 alunos.
A aplicação utiliza a biblioteca Bull, responsável pelo gerenciamento de filas (queues) com suporte a prioridade e retry para determinados tipos de jobs. A persistência das filas é realizada através do Redis.
Foi desenvolvida em TypeScript, seguindo padrões de projeto como SOLID, DDD e Clean Architecture. Esses padrões têm como objetivo promover a separação de preocupações, modularidade, testabilidade e escalabilidade do código.
O framework Express.js foi utilizado para criação das APIs e queries SQL foram empregadas para acessar os dados no banco de dados PostgreSQL.
Express.js, TypeScript, PostgreSQL, Redis, Bull(Queue Lib) e Docker.
![](https://private-user-images.githubusercontent.com/113299561/241812398-375ca4a3-cfdf-4ef0-b4c4-499a7f2f3ccb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg3Nzk2NDAsIm5iZiI6MTcxODc3OTM0MCwicGF0aCI6Ii8xMTMyOTk1NjEvMjQxODEyMzk4LTM3NWNhNGEzLWNmZGYtNGVmMC1iNGM0LTQ5OWE3ZjJmM2NjYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjE5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYxOVQwNjQyMjBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kNzk1NmVhNDg5ZjcwYzUzMmE5MDVmMzQ4MzI1ZTI5OWFjOTQ1NzNjMDIxMDFjNTE5YTRkMTBiZjY5YjQ1NDJhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.sbhyCmSX7KLbthXr8hLN5R9zC96f6Jyd6m-55LJw3TQ)
- Sem planos futuros para o mesmo.
Observação: Para rodar o projeto é necessário ter o Docker instalado e configurado na máquina.
Para executar o projeto, siga os passos abaixo:
-
Abra o terminal e navegue até a pasta raiz do projeto.
-
Execute o seguinte comando:
docker-compose up
Esse comando irá gerar as imagens do Redis e do PostgreSQL e inicializará o servidor na porta 3000.
Observação: É importante lembrar que a primeira execução do comando pode levar alguns minutos, pois o Docker precisa baixar as imagens necessárias para o projeto.
- Acesse o servidor através do endereço
http://localhost:3000
.
Com esses passos, o projeto deverá estar rodando corretamente na sua máquina.
Documentação criada utilizando Swagger e está disponível em localhost:3000/doc-api
.
Concluído.