Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

ย 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ Task Manager

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.


๐Ÿš€ Tech Stack

  • Java 17
  • Spring Boot 3.x
  • Maven
  • Hibernate + JPA
  • H2 / MySQL (or any RDBMS)

๐Ÿ“‚ Project Structure

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

๐Ÿ”ง Endpoints

โž• Create Task

POST /tasks

Body: TaskRequest

๐Ÿ” Update Task

PUT /tasks?id={id}

Body: TaskRequest

๐Ÿ“„ Get All Tasks (Paginated)

GET /tasks?page=0&size=5

๐Ÿ” Get Task By ID

GET /tasks/{id}

๐Ÿ“… Upcoming Tasks

GET /tasks/upcoming?days=3

โฐ Due Today Tasks

GET /tasks/dueToday

โŒ Delete Task

DELETE /tasks/{id}

๐Ÿงฎ Get Tasks By Category

GET /category

๐Ÿท๏ธ Filter By Tags

GET /tasks/tags?tags=tag1,tag2

๐Ÿงช Filter By Fields

POST /tasks/filtering

Body: Partial TaskRequest

โ— Expired Tasks

GET /expiredTasks

โœ… Completed Tasks

GET /completedTasks

๐ŸŽฏ Task Metadata

Each task supports the following priorities and statuses:

Priority

Priority Description
URGENT Needs immediate action
HIGH Important but not critical
MEDIUM Moderate importance
LOW Can be done later

Status

Status Description
TODO Task planned, not started
IN_PROGRESS Currently being worked on
INCOMPLETE Work started but not finished
DONE Task completed

โœ… Validation & Error Handling

  • Uses jakarta.validation annotations to validate input.
  • Throws ResourceNotFoundException with custom messages.

๐Ÿ› ๏ธ Setup & Run

1๏ธโƒฃ Clone the repository

git clone https://github.com/SoumyaShinde/taskManager.git
cd taskManager

2๏ธโƒฃ Build & Run with Maven

./mvnw spring-boot:run

3๏ธโƒฃ Run with Docker

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


๐Ÿ“Œ Notes

  • Can switch between H2 and other RDBMS by updating application.properties.

๐Ÿ‘ค Author

  • Soumya Shinde

Feel free to contribute or raise issues! ๐Ÿš€

About

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

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages