Skip to content

shhrohan/tasks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

249 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TaskBoard 3D Logo

TaskBoard 3D

A stunning, modern Kanban board with glassmorphism design and smooth drag-and-drop

Features β€’ Tech Stack β€’ Quick Start β€’ API β€’ Contributing

Java 21 Spring Boot PostgreSQL Alpine.js

Tests Coverage License


✨ Features

🎯 Core Functionality

  • Kanban Board β€” Organize tasks across 5 status columns: Todo, In Progress, Done, Blocked, Deferred
  • Swimlanes β€” Group tasks by project, sprint, or any category
  • Drag-and-Drop β€” Intuitive task management powered by Sortable.js
  • Real-Time Sync β€” Server-Sent Events (SSE) for live updates across tabs/devices

🎨 Premium UI/UX

  • Glassmorphism Design β€” Modern frosted-glass aesthetic with depth effects
  • Dark Theme β€” Easy on the eyes with carefully crafted color palette
  • Smooth Animations β€” GSAP-powered transitions and micro-interactions
  • Mobile Responsive β€” Touch-optimized layout with vertical stacking

πŸš€ Productivity Features

  • Task Filters β€” Hide Done tasks or show only Blocked items with one click
  • Progress Pills β€” Visual status distribution in swimlane headers
  • Collapse/Expand β€” Focus on what matters with lane toggling
  • Tags β€” Categorize tasks with color-coded labels

⚑ Performance

  • Async Write-Behind β€” Optimistic UI updates with background persistence
  • Incremental Loading β€” Lanes load first, then tasks stream in per-lane
  • Parallel Tests β€” 103 tests run with unlimited thread parallelism

πŸ›  Tech Stack

Backend

Technology Version Purpose
Java 21 Language
Spring Boot 3.3.0 Framework
Spring Data JPA - ORM
PostgreSQL 15+ Database
Log4j2 - Logging
Maven - Build tool

Frontend

Technology Version Purpose
Alpine.js 3.x Reactivity
Bootstrap 5.3 Layout & components
Sortable.js 1.15 Drag-and-drop
Axios - HTTP client
Font Awesome 6.4 Icons

πŸš€ Quick Start

Prerequisites

  • Java 21 or higher
  • Maven 3.8+
  • PostgreSQL 15+ (or Docker)

1️⃣ Clone the Repository

git clone https://github.com/shhrohan/tasks.git
cd tasks/todo-app

2️⃣ Configure Database

Create a PostgreSQL database:

CREATE DATABASE todo_db;

Update src/main/resources/application.properties:

spring.datasource.url=jdbc:postgresql://localhost:5432/todo_db
spring.datasource.username=your_username
spring.datasource.password=your_password

3️⃣ Run the Application

mvn spring-boot:run

4️⃣ Open in Browser

Navigate to http://localhost:8080 πŸŽ‰


πŸ“¦ Docker Quick Start

# Start PostgreSQL
docker run -d --name todo-db \
  -e POSTGRES_DB=todo_db \
  -e POSTGRES_PASSWORD=postgres \
  -p 5432:5432 \
  postgres:15

# Run the app
mvn spring-boot:run

πŸ“š API Reference

Swimlanes

Method Endpoint Description
GET /api/swimlanes Get all swimlanes
GET /api/swimlanes/active Get active swimlanes
GET /api/swimlanes/completed Get completed swimlanes
POST /api/swimlanes Create swimlane
PATCH /api/swimlanes/{id}/complete Mark as complete
PATCH /api/swimlanes/{id}/uncomplete Reactivate
PATCH /api/swimlanes/reorder Reorder swimlanes
DELETE /api/swimlanes/{id} Delete (soft)

Tasks

Method Endpoint Description
GET /api/tasks Get all tasks
GET /api/tasks/swimlane/{id} Get tasks by lane
GET /api/tasks/{id} Get specific task
POST /api/tasks Create task
PUT /api/tasks/{id} Update task
DELETE /api/tasks/{id} Delete task
PATCH /api/tasks/{id}/move Move task

Real-Time Updates

Endpoint Description
GET /api/sse/stream SSE subscription

Event Types:

  • init β€” Connection established
  • task-updated β€” Task created/modified
  • task-deleted β€” Task removed
  • lane-updated β€” Lane modified
  • heartbeat β€” Keep-alive ping

πŸ§ͺ Testing

# Run all tests
mvn test

# Run with coverage report
mvn test jacoco:report
# Report: target/site/jacoco/index.html

Test Summary:

  • βœ… 103 tests passing
  • πŸ“Š 93% instruction coverage
  • ⚑ Parallel execution enabled

πŸ“ Project Structure

todo-app/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/com/example/todo/
β”‚   β”‚   β”‚   β”œβ”€β”€ controller/     # REST endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ service/        # Business logic
β”‚   β”‚   β”‚   β”œβ”€β”€ dao/            # Data access layer
β”‚   β”‚   β”‚   β”œβ”€β”€ repository/     # JPA repositories
β”‚   β”‚   β”‚   └── model/          # Entities
β”‚   β”‚   └── resources/
β”‚   β”‚       β”œβ”€β”€ static/
β”‚   β”‚       β”‚   β”œβ”€β”€ css/        # Glassmorphism styles
β”‚   β”‚       β”‚   └── js/         # Alpine.js modules
β”‚   β”‚       └── templates/      # Thymeleaf templates
β”‚   └── test/                   # Unit & integration tests
β”œβ”€β”€ CHANGELOG.md                # Version history
β”œβ”€β”€ GEMINI.md                   # AI assistant rules
└── pom.xml                     # Maven config

πŸ”§ Configuration

Environment Variables

Variable Default Description
SERVER_PORT 8080 Application port
SPRING_PROFILES_ACTIVE default Profile (dev/prod)
SPRING_DATASOURCE_URL - Database URL
SPRING_DATASOURCE_USERNAME - DB username
SPRING_DATASOURCE_PASSWORD - DB password

Profiles

Profile Description
default Local development with PostgreSQL
prod Production with Azure PostgreSQL
test H2 in-memory for tests

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feat/amazing-feature
  3. Commit your changes: git commit -m 'feat: Add amazing feature'
  4. Push to the branch: git push origin feat/amazing-feature
  5. Open a Pull Request

Commit Convention

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation
  • refactor: Code refactoring
  • test: Adding tests
  • chore: Maintenance

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ™ Acknowledgments




Made in India

Made with ❀️ by @shhrohan

LinkedIn Β  GitHub

⬆ Back to Top

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published