Gerenciamento de Professores e Sobrecarga de Horário.
Nome do Projeto: backend-ger-professores
Descrição: Um projeto voltado para a parte da lógica e do tratamento das regras de negócios. O principal objetivo é a construção de um sistema único de controle de professores em suas grades horárias de suas escolas/faculdades/universidades, onde, o coordenador do curso poderá validar a carga horário do docente de acordo com as regras passadas pela instituição de ensino.
Tecnologias Usadas
- Linguagem: Java.
- IDE: Visual Studio Code.
- Ferramentas: Spring Web, Spring Data JPA, Spring MariaDB, Spring Security, Spring Validation, Lombok, Devtools, ModelMapper, JJWT-api e Vaadin.
Detalhamento do Projeto
Este projeto em Java foi desenvolvido seguindo as melhores práticas de programação e arquitetura, com ênfase na modularidade e reutilização de código. Abaixo, estão destacados os principais tópicos abordados durante a produção do sistema:
1. Arquitetura no Padrão de Boas Práticas:
- Separação de responsabilidades entre camadas, como controle, serviço e acesso a dados.
2. Sistema de Login e Senha:
- Implementação de um sistema robusto de autenticação de usuários.
3. Autenticação JWT:
- Utilização de JSON Web Tokens (JWT) para autenticação de usuários.
- Geração, validação e renovação de tokens para garantir a segurança do sistema.
4. Roles de Permissão de Usuário:
- Definição de diferentes papéis (roles) para usuários, como professor, gestor e coordenador.
- Controle de acesso baseado nas permissões atribuídas a cada papel.
5. Paginação, Filtros, Responses e Requests:
- Implementação de mecanismos de paginação para facilitar a navegação pelos dados.
- Adoção de filtros para personalizar consultas e melhorar a eficiência.
- Estruturação de responses e requests padronizados para facilitar a integração com clientes.
6. Validação de Dados:
- Validação rigorosa de dados de entrada para prevenir erros e garantir a integridade do sistema.
- Utilização de anotações de validação e customizações para garantir a consistência dos dados.
7. Exceptions Personalizadas:
- Implementação de exceções personalizadas para lidar com situações específicas do domínio.
- Tratamento adequado de erros, proporcionando mensagens claras e informativas.
8. Swagger Implementado:
- Integração do Swagger para documentação automática da API.
- Facilitação da compreensão e teste da API por desenvolvedores e usuários.
9. Lógicas para CRUD e Tratamento dos Dados:
- Desenvolvimento de lógicas robustas para as operações CRUD (Create, Read, Update, Delete).
- Implementação de estratégias eficientes para lidar com sobreposição de horários na grade curricular.
Extras
Link de acesso ao Swagger do projeto:
http://localhost:8080/swagger-ui/index.html#/
Autores