A simple RESTful API for managing tasks, built with Spring Boot, Java 17, and MySQL.
This project demonstrates clean architecture, proper layering (Controller → Service → Repository), validation, and exception handling.
It can be used as a base for larger applications or as part of a developer portfolio.
- Create, read, update, and delete tasks
- Status management (Pending, In Progress, Completed)
- Validation and error handling
- RESTful design following best practices
- Ready to deploy on Render or Railway
- Java 17
- Spring Boot 3.x
- Spring Web / Spring Data JPA
- MySQL 8
- Gradle or Maven
# Clone this repository
git clone https://github.com/jsantaflorez/task-manager-api.git
# Navigate to the project folder
cd task-manager-api
# Run the application
./gradlew bootRun
The application will start at:
http://localhost:8080
By default, the application expects a MySQL database running on:
spring.datasource.url=jdbc:mysql://localhost:3306/task_manager_db
spring.datasource.username=your-username
spring.datasource.password=your-password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mysql://localhost:3307/task_manager_db
spring.datasource.username=developer
spring.datasource.password=developer
Make sure to adjust these settings in your application.properties
file.
Method | Endpoint | Description |
---|---|---|
GET | /api/tasks |
Get all tasks |
GET | /api/tasks/{id} |
Get a task by ID |
POST | /api/tasks |
Create a new task |
PUT | /api/tasks/{id} |
Update a task |
DELETE | /api/tasks/{id} |
Delete a task |
Jaime Santa
Workana Profile • GitHub
This project is licensed under the MIT License.