Este é um projeto de gerenciamento de tarefas (TodoList) desenvolvido para aplicar conceitos avançados do ecossistema Java e arquiteturas modernas de sistemas. O projeto foca em Clean Code, escalabilidade e integração de serviços externos, como notificações por e-mail.
Status do Projeto: 🛠️ Em Desenvolvimento (Active Development)
- Linguagem: Java (versão 21+).
- Framework: Spring Boot (Spring MVC, Spring Data JPA).
- Notificações: Spring Boot Starter Mail (Integração com serviços de SMTP para alertas).
- Banco de Dados: PostgreSQL para persistência de dados.
- ORM: Hibernate (JPA).
- Documentação: Swagger/OpenAPI.
- Framework: Angular.
- Estilização: CSS/SASS.
O projeto segue o padrão MVC (Model-View-Controller) para garantir a separação de responsabilidades:
- Model: Entidades de negócio mapeadas via JPA.
- Repository: Interface de comunicação com o banco de dados via Spring Data JPA.
- Service: Camada de regras de negócio e lógica de envio de e-mails.
- Controller: Exposição dos endpoints da API RESTful.
- Criação e gerenciamento de tarefas (CRUD completo).
- Persistência em banco de dados relacional (PostgreSQL).
- Sistema de Alerta por E-mail: Notificações automáticas ao usuário sobre prazos de tarefas e atualizações de status.
- Autenticação e Autorização (Spring Security + JWT).
- Testes Unitários e de Integração (JUnit/Mockito).
Para habilitar os alertas, configure as propriedades no arquivo application.properties:
spring.mail.host=smtp.exemplo.com
spring.mail.port=587
spring.mail.username=seu-email@exemplo.com
spring.mail.password=sua-senha
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true