← All Projects
02 · Project

Task Master

Full-stack task management system built with JWT-secured endpoints, role-based access control, and real-time admin analytics - built to handle structured workflows and admin-level insights

Spring BootPostgreSQLSpring SecurityBootstrapDocker
↗ GitHub▶ Live Demo
Overview

Task Master is a full-stack task management system designed to bring structure, visibility, and access control to team workflows. Users can manage tasks efficiently while admins gain insights through a dedicated analytics dashboard.

The backend is built using Spring Boot with a layered architecture (Controller → Service → Repository). Security is handled via stateless JWT authentication with role-based access enforced at both the filter and method level.

Analytics endpoints were optimized by shifting from in-memory filtering to database-level aggregation using JPQL GROUP BY queries, significantly reducing response times and improving scalability.

The application is deployed with a split architecture — backend on Render (Dockerized) and frontend on Netlify — highlighting real-world challenges like CORS handling and environment configuration.

JWTstateless auth strategy
RBACRole-based access control
95msAnalytics response time
4Analytics endpoints
Tech Stack

TOOLS &
TECHNOLOGIES.

TECH.01
Spring Boot
TECH.02
PostgreSQL
TECH.03
Spring Security
TECH.04
Bootstrap 5
TECH.05
Docker
Key Highlights

WHAT MAKES IT
STAND OUT.

4Layered architecture (Controller–Service–Repo)
3Role tiers: Admin, Manager, Employee
95msOptimized analytics response time
4Dedicated analytics endpoints
1Single-query analytics (no N+1 issue)
2Production deployments (Render + Netlify)
Challenges & Solutions

WHAT WAS HARD.
HOW I SOLVED IT.

Critical Challenge

Analytics queries were initially computed in-memory, causing high latency and inefficient resource usage.

Engineered Solution

Replaced with JPQL aggregate queries using GROUP BY, pushing computation to PostgreSQL and reducing response time to ~95ms.

Critical Challenge

Spring Security defaulted to session-based auth, conflicting with stateless JWT design.

Engineered Solution

Configured stateless sessions and integrated a custom JWT filter in the security chain, with method-level guards for enforcement.

Critical Challenge

Frontend-backend communication failed due to CORS restrictions and hardcoded API URLs.

Engineered Solution

Configured CORS policies and implemented Netlify proxy routing to eliminate hardcoded endpoints and simplify environment handling.

Core Architecture

HOW IT'S
ALL WIRED UP.