A Urna Eletrônica Digital é uma aplicação construída usando Java e Spring Boot, que permite gerenciar candidatos e registrar votos. Este projeto demonstra a criação de endpoints RESTful e a documentação da API com Swagger.
- Listar Candidatos: Recupera uma lista de todos os candidatos.
- Adicionar Candidato: Adiciona um novo candidato.
- Atualizar Candidato: Atualiza as informações de um candidato existente.
- Deletar Candidato: Remove um candidato pelo ID.
- Registrar Voto: Registra um voto para um candidato específico.
- Java 17
- Spring Boot 3.3
- Spring Data JPA
- PostgreSQL
- Swagger
- Insônia
- URL:
/candidatos - Método HTTP:
GET - Descrição: Retorna uma lista de todos os candidatos.
- Resposta:
[ { "id": 1, "nome": "Candidato A", "votos": 10 } ]
- URL:
/candidatos - Método HTTP:
POST - Descrição: Adiciona um novo candidato.
- Requisição:
{ "id": 2, "nome": "Candidato C", "votos": 10 } - Resposta:
{ "id": 2, "nome": "Candidato C", "votos": 10 }
- URL:
/candidatos/{id} - Método HTTP:
PUT - Descrição: Atualiza as informações de um candidato existente.
- Requisição:
{ "id": 3, "nome": "Candidato B", "votos": 10 } - Resposta:
{ "id": 3, "nome": "Candidato B" , "votos": 5 }
- URL:
/candidatos/{id} - Método HTTP:
DELETE - Descrição: Remove um candidato pelo ID.
- URL:
/candidatos/{id}/votar - Método HTTP:
POST - Descrição: Registra um voto para o candidato especificado.
A documentação completa da API pode ser acessada via Swagger:
- Java 17
- Maven
- PostgreSQL
Configure o banco de dados PostgreSQL com as seguintes propriedades no application.properties:
spring.datasource.url=jdbc:postgresql://localhost:5432/urna
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha
spring.jpa.hibernate.ddl-auto=update-
Clone o repositório:
git clone https://github.com/NHO93/API-Urna.git
-
Navegue até o diretório do projeto:
cd API-Urna -
Compile e execute a aplicação:
mvn spring-boot:run
-
Acesse a aplicação em:
http://localhost:8080
Sinta-se à vontade para contribuir com este projeto! Para isso, siga os passos abaixo:
- Faça um fork do projeto.
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature). - Commit suas mudanças (
git commit -m 'Adiciona nova feature'). - Envie para a branch (
git push origin feature/nova-feature). - Abra um Pull Request.
Este projeto está licenciado sob a Licença Apache 2.0. Veja o arquivo LICENSE para mais detalhes.
Feito por Edenilson Fabiano.