RESTful API for donation management, built with Spring Boot, applying layered architecture, DTO pattern, validation, and database persistence.
- Create donation
- List donations
- Filter by type
- Update status
- Delete donation
- Java 21
- Spring Boot
- Spring Data JPA
- PostgreSQL
- Maven
The project follows a layered architecture:
- Controller
- Handles HTTP requests/responses
- Service
- Business rules and validations
- Repository
- Database access using Spring Data JPA
- DTO
- Controls data input/output
POST /api/doacoes
Body: { "donorName": "José", "type": "FOODS", "value": 100 }
GET /api/doacoes
GET /api/doacoes?type=FOODS
PUT /api/doacoes/{id}/status?status=RECEIVED
DELETE /api/doacoes/{id}
{ "id": "123", "donorName": "José", "value": 100, "type": "FOODS", "status": "PENDING", "date": "2026-04-29" }
git clone ...
cd donation-api
mvn spring-boot:runJosé Maria