Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Tracker App

A RESTful backend service for managing tasks and task lists, built with Spring Boot, Java 21, and PostgreSQL.
It follows clean architecture principles and is designed to be easily connected to a frontend.


Overview

This app supports:

  • Creating, updating, and deleting Task Lists
  • Adding tasks to lists, setting status and priority
  • Viewing and managing all tasks under a list
  • Clean separation of layers (controller → service → persistence)
  • UUIDs used for all IDs
  • Lightweight DTO mapping

Architecture

  • Spring Boot handles the domain logic, persistence, and validation.
  • PostgreSQL stores task lists and tasks.

Domain Model

Domain Mode

  • TaskList contains multiple Task objects.
  • Each Task has:
    • A title, description, and dueDate
    • A TaskStatus (OPEN, CLOSED)
    • A TaskPriority (HIGH, MEDIUM, LOW)

Entity Relationship Diagram (ERD)

ERD

  • TASK_LISTS: stores task list metadata with UUID id, title, description, timestamps.
  • TASKS: stores tasks, each linked to a task list via task_list_id, with its own status, priority, and timestamps.

Class Diagram

Class Diagram

  • All fields reflect clean separation between domain and persistence layers.
  • TaskListTask is a one-to-many bidirectional relationship.
  • Timestamps (created, updated) are auto-managed.
  • Enums are embedded and mapped to readable strings in DB.

Tech Stack

Layer Technology
Language Java 21
Framework Spring Boot 3
Persistence Spring Data JPA (Hibernate)
Database PostgreSQL
Build Tool Maven
ID Strategy UUID
API Type RESTful (JSON)

Sample Endpoints

Method Endpoint Description
GET /api/task-lists List all task lists
POST /api/task-lists Create new task list
PUT /api/task-lists/{id} Update task list
DELETE /api/task-lists/{id} Delete task list
GET /api/task-lists/{id}/tasks Get tasks for list
POST /api/task-lists/{id}/tasks Add task to list
PUT /api/task-lists/{id}/tasks/{id} Update specific task

About

Task Tracker App is a RESTful backend built with Spring Boot, Java 21, and PostgreSQL. It manages task lists and tasks with support for priority, status, and due dates.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages