A Spring Boot REST API for managing tasks and task lists.
- Create, read, update, and delete task lists
- Create, read, update, and delete tasks within lists
- Task priorities (HIGH, MEDIUM, LOW)
- Task status tracking (OPEN, CLOSED)
- Progress calculation for task lists
- PostgreSQL database integration
- RESTful API design
- OpenAPI/Swagger documentation
- Java 24
- Spring Boot 4.0.2
- Spring Data JPA
- PostgreSQL
- Maven
- Lombok
- Java 17 or higher
- Maven 3.6+
- PostgreSQL database (or Supabase account)
git clone https://github.com/YOUR-USERNAME/Achievo.git
cd AchievoCreate a .env file in the project root:
DB_URL=jdbc:postgresql://your-host:5432/your-database
DB_USERNAME=your-username
DB_PASSWORD=your-passwordOr set environment variables in your IDE/terminal.
mvn spring-boot:runThe API will be available at http://localhost:8080
GET /api/task-lists- Get all task listsPOST /api/task-lists- Create a new task listGET /api/task-lists/{id}- Get a specific task listPUT /api/task-lists/{id}- Update a task listDELETE /api/task-lists/{id}- Delete a task list
GET /api/task-lists/{listId}/tasks- Get all tasks in a listPOST /api/task-lists/{listId}/tasks- Create a new taskGET /api/task-lists/{listId}/tasks/{taskId}- Get a specific taskPUT /api/task-lists/{listId}/tasks/{taskId}- Update a taskDELETE /api/task-lists/{listId}/tasks/{taskId}- Delete a task
Once the application is running, visit:
- Swagger UI:
http://localhost:8080/swagger-ui.html - OpenAPI JSON:
http://localhost:8080/v3/api-docs
| Variable | Description | Example |
|---|---|---|
DB_URL |
Database connection URL | jdbc:postgresql://localhost:5432/achievo |
DB_USERNAME |
Database username | postgres |
DB_PASSWORD |
Database password | your-password |
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request