An open API service indexing awesome lists of open source software.

https://github.com/devphde/schoolmanager-api

API de gerenciamento de alunos, professores e turmas.
https://github.com/devphde/schoolmanager-api

background-jobs ddd-architecture docker nodejs postgresql redis solid-principles sql typescript

Last synced: 3 months ago
JSON representation

API de gerenciamento de alunos, professores e turmas.

Awesome Lists containing this project

README

          

# School Manager-API

## :memo: Descrição do projeto
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.

## :wrench: Tecnologias Utilizadas

Express.js, TypeScript, PostgreSQL, Redis, Bull(Queue Lib) e Docker.










## :rocket: Implementação futura
* Sem planos futuros para o mesmo.

## Como Rodar o Projeto
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:

1. Abra o terminal e navegue até a pasta raiz do projeto.

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

3. Acesse o servidor através do endereço `http://localhost:3000`.

Com esses passos, o projeto deverá estar rodando corretamente na sua máquina.

## :books: Documentação da API
Documentação criada utilizando Swagger e está disponível em ```localhost:3000/doc-api```.
## :dart: Status do projeto
Concluído.