Task Manager is a RESTful Java Spring Boot application that allows users to manage tasks efficiently. It supports features like creating, updating, filtering, and retrieving tasks with support for pagination, due dates, and tags. It also provides endpoints to fetch expired or completed tasks.
- Java 17
- Spring Boot 3.x
- Maven
- Hibernate + JPA
- H2 / MySQL (or any RDBMS)
com.project.taskmanager
│
├── controller # REST Controllers
├── dto # Data Transfer Objects
├── exception # Custom exceptions
├── model # Entity classes
├── repository # Spring Data JPA Repositories
├── service # Business Logic Layer
├── constant # Application-wide constants & enums
└── TaskManagerApplication.java
POST /tasks
Body: TaskRequest
PUT /tasks?id={id}
Body: TaskRequest
GET /tasks?page=0&size=5
GET /tasks/{id}
GET /tasks/upcoming?days=3
GET /tasks/dueToday
DELETE /tasks/{id}
GET /category
GET /tasks/tags?tags=tag1,tag2
POST /tasks/filtering
Body: Partial TaskRequest
GET /expiredTasks
GET /completedTasks
Each task supports the following priorities and statuses:
Priority | Description |
---|---|
URGENT | Needs immediate action |
HIGH | Important but not critical |
MEDIUM | Moderate importance |
LOW | Can be done later |
Status | Description |
---|---|
TODO | Task planned, not started |
IN_PROGRESS | Currently being worked on |
INCOMPLETE | Work started but not finished |
DONE | Task completed |
- Uses
jakarta.validation
annotations to validate input. - Throws
ResourceNotFoundException
with custom messages.
git clone https://github.com/SoumyaShinde/taskManager.git
cd taskManager
./mvnw spring-boot:run
Build Docker image
docker build -t taskmanager:latest .
Run Docker container
docker run -p 8080:8080 taskmanager:latest
Access the app at: http://localhost:8080
- Can switch between H2 and other RDBMS by updating
application.properties
.
- Soumya Shinde
Feel free to contribute or raise issues! 🚀