Este repositório contém o código-fonte do Backend do sistema EvComp, construído em Java (Spring Boot). O sistema é responsável por toda a regra de negócio, gestão de usuários, eventos, emissão de certificados, controle de presenças e relatórios, além de prover o banco de dados via MySQL.
Para rodar o projeto localmente da forma mais fácil e limpa possível, você só precisa ter instalado na sua máquina:
Este projeto utiliza containers Docker para garantir que o ambiente seja idêntico em qualquer máquina.
Para ligar a API e o Banco de Dados, siga os seguintes passos:
-
Abra o terminal e navegue até a pasta raiz deste repositório (
EvComp). -
Execute o comando de inicialização do Docker Compose:
docker compose up -d --build
-
O Docker fará o download das imagens, criará o banco de dados MySQL na porta
3307e iniciará a API Spring Boot na porta8080. -
Os dados iniciais de teste (usuários, eventos mockados) serão criados automaticamente graças ao script
init.sqlembutido.
Atenção sobre a Ordem de Execução: O Backend DEVE estar rodando antes que você inicie o Frontend (
EvComp-Front). O Frontend depende da rede interna deste repositório (evcomp_default) para se conectar à API de forma correta!
O módulo de pagamento guarda o comprovante enviado pelo participante através de uma estratégia
configurável, definida por pagamento.armazenamento:
| Valor | Onde grava | Observação |
|---|---|---|
BANCO (padrão) |
BLOB na tabela comprovante_blob |
Persiste no volume evcomp_db_data e sai junto no dump do banco. Não exige nenhuma configuração extra. |
DISCO |
uploads/comprovantes/ |
Exige mapear um volume (veja abaixo), senão os arquivos somem a cada rebuild. |
S3 |
— | Ainda não implementado; falha na inicialização do upload. |
Para usar DISCO, defina PAGAMENTO_ARMAZENAMENTO=DISCO e acrescente o volume ao serviço api
no docker-compose.yml — o contêiner da API não tem volume por padrão e seu sistema de arquivos
é descartado a cada docker compose up --build:
api:
volumes:
- ./uploads:/app/uploadsComprovantes já enviados continuam legíveis mesmo depois de trocar a estratégia: cada pagamento registra em qual armazenamento seu arquivo foi gravado. O limite é de 1 MB por comprovante (WebP, JPEG, PNG ou PDF).
- src/: Código-fonte da aplicação Java (Controllers, Services, Repositories e Domains).
- init.sql: Script com os dados falsos e estrutura inicial do banco de dados (SEED) usado para testes.
- docker-compose.yml: Orquestração dos containers da API e do MySQL.
- Dockerfile: Instruções de montagem da imagem do Backend.
- build.gradle: Gerenciador de pacotes e dependências do projeto.
|
Gabriel C. de Carvalho |
Caroline N. Araujo |
Se você quiser contribuir para este projeto, sinta-se à vontade para fazer um fork, enviar um pull request com suas melhorias ou abrir uma issue, caso tenha alguma dúvida ou sugestão!
Este projeto está licenciado sob a Licença GNU General Public License v3.0 - veja o arquivo LICENSE para mais detalhes.