Este projeto foi desenvolvido como parte de um estudo de caso para um sistema completo que gerencia usuários, cursos e inscrições. Ele envolve três componentes principais:
- Frontend: Interface desenvolvida em React (em andamento).
- Backend: API RESTful construída com Java 21 e Spring Boot.
- Mensageria: Integração assíncrona utilizando RabbitMQ (em desenvolvimento).
- Autenticação:
- Implementada com JWT (JSON Web Token) para segurança e controle de acesso.
- Cadastro e Gerenciamento:
- CRUD completo para usuários, cursos e inscrições.
- Mensageria:
- Utilização de RabbitMQ para comunicação assíncrona (em andamento).
- Atualização em Tempo Real:
- Atualizações ao vivo usando WebSocket ou Server-Sent Events (SSE).
- Documentação:
- A API está documentada com Swagger, acessível em
/swagger-ui
.
- A API está documentada com Swagger, acessível em
- Java 21
- Node.js
- Docker e Docker Compose
- PostgreSQL
- Clone o repositório:
git clone <https://github.com/anthonyMeds/fullStackProject-v1.git>
- Suba os serviços:
docker-compose up
- Acesse a Documentação da API : http://localhost:8080/swagger-ui
/projeto
├── frontend/ # Código do frontend em React
├── backend/ # Código do backend em Java
├── api/ # Serviços REST da API
├── docker-compose.yml # Configuração do ambiente Docker
└── README.md # Documentação do projeto
Método HTTP | Descrição | Request | Response |
---|---|---|---|
POST /pessoa | Cadastra a pessoa na API | { "nome": "String", "nascimento": "Date", "cpf": "String", "email": "String" } |
{ "idPessoa": "Integer", "mensagem": "String" } |
GET /curso | Retorna todos os cursos da API | Sem parâmetros | { "idCurso": "Integer", "nomeCurso": "String", "numeroVagas": "Integer", "numeroInscricoes": "Integer" } |
POST /curso | Insere o curso na base de dados da API (via Postman) | { "nome": "String", "numeroVagas": "Integer" } |
{ "idCurso": "Integer", "mensagem": "String" } |
POST /inscricao | Inscreve um candidato no curso | { "idCurso": "Integer", "cpf": "Integer" } |
{ "mensagem": "String" } |
GET /inscritos/{idCurso} | Retorna os candidatos inscritos no curso | idCurso (URL Parameter) |
{ inscritos: [ { "cpf": "String" } ] } |