Skip to content

makswilder/task-tracker-app

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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages