Este repositório contém o backend do Projeto PCP, desenvolvido como parte do módulo final do curso Fullstack, turma Education, do programa Floripa Mais Tec.
O sistema fornece uma API robusta e segura para gerenciar dados relacionados a docentes, alunos, cursos, matérias, turmas e notas. Utilizando tecnologias como Spring Boot, JWT para autenticação e JPA para persistência, a API está integrada ao frontend desenvolvido para o projeto.
A arquitetura foi desenhada para ser modular e escalável, garantindo facilidade na manutenção e expansão do sistema.
O GitHub foi utilizado como versionador de código no modelo Git Flow. O Trello foi utilizado para organização e gerenciamento das tarefas do projeto. O Discord foi utilizado como canal de comunicação.
- Java 17
- Spring Boot
- Spring Security
- JWT (JSON Web Tokens)
- PostgreSQL
- Docker
- Postman para testes de API
- PgAdmin para gerenciar o banco de dados
- Trello
- GitHub
- JDK 17 ou superior
- IntelliJ IDEA
- Git
- Docker
- Docker Compose
- Spring Boot Starter for Spring Data JPA
- Spring Boot Starter for Spring Web
- Spring Boot DevTools
- PostgreSQL Driver
- Spring Boot Configuration Processor
- Project Lombok
- MapStruct
- MapStruct Processor
- Spring Boot Starter for Testing
- Hibernate Validator
- Spring Boot Starter for Security
- Java JWT API
- Java JWT Implementation
- Java JWT with Jackson
- Jackson Databind
- SpringDoc OpenAPI Starter for WebMVC and UI
O projeto segue a arquitetura Controller-Service-Repository, promovendo a separação de responsabilidades:
- Controller: Gerencia as requisições HTTP.
- Service: Contém a lógica de negócios.
- Repository: Interage com o banco de dados via JPA.
- Spring Security: Configurado para autenticação e autorização.
- JWT: Utilizado para proteger as rotas e garantir acesso seguro.
- Utiliza PostgreSQL para armazenamento de dados.
- Configuração rápida com Docker. Veja os passos em Configuração do Banco de Dados.
git clone https://github.com/FullStack-Education/M3P-BackEnd-Squad4.git && cd M3P-BackEnd-Squad4
Garanta que o serviço do docker esteja sendo executado em sua máquina, e que as portas 8080, 8000 e 5432 estejam disponíveis.
Digite o comando:
docker-compose up --build --force-recreate -d
A aplicação estará disponível em http://localhost:8080
.
A documentação da API está disponível pelo swagger que pode ser acessado em: Swagger
Todos os endpoints, com exceção do endpoint de Login, recebem um Token JWT que controla o acesso aos dados do mesmo. Mais detalhes também podem ser encontrados no arquivo do Postman em anexo ou no diretório doc.
A senha padrão do usuário admin do sistema é: senhaSegura123
.