Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TASK FLOW

Enterprise Task Management Platform

Java 17 Console + Interactive GitHub Pages Dashboard with Two-Way Sync

License: MIT Version Java Maven JUnit HTML5 CSS3 JavaScript GitHub Pages


Task Flow is a production-quality enterprise task management system built with Java 17 and a static web dashboard deployable on GitHub Pages. It features a 31-option console application with resilient CSV persistence, two-way JSON synchronization, and a feature-rich interactive dashboard with Kanban boards, SVG charts, activity feeds, task dependencies, recurrence rules, templates, bulk operations, and zero-duplicate guarantees — all without external frameworks, databases, or cloud services.

Live Dashboard | Project Report | Executive Summary


Live Demo

Task Flow Dashboard

Executive Dashboard — Real-time KPIs, SVG charts, and interactive task management


Project Statistics

Metric Value
Console Menu Options 31
JUnit 5 Tests 187
Test Classes 13
Enterprise Features 12
Web Dashboard Views 4
Task Fields 13
Data Formats CSV + JSON
Lines of Java 2,500+
Lines of JavaScript 740+
Deployment GitHub Pages

Executive Overview

Task Flow is a complete enterprise-grade task management platform that combines a robust Java console backend with an interactive web dashboard. The system demonstrates layered software architecture, comprehensive testing, and seamless two-way data synchronization — all built with plain Java and vanilla JavaScript.

What It Solves

Challenge Industry Impact Task Flow Solution
Tool Fragmentation Teams juggle multiple disconnected apps Unified console + web with shared data schema
Data Lock-in Cloud tools require subscriptions $0/month — 100% local, offline-first
No Audit Trail Changes are invisible Append-only activity log with timestamps
Dependency Blindness Blocked tasks go unnoticed Dependency tracking with circular detection
Manual Repetition Recreating similar tasks constantly Templates and recurrence rules

Target Users

User Role Use Case
Developers Sprint planning, bug tracking, task management
Students Assignment tracking, study scheduling
Project Managers Team task oversight, dependency management
Freelancers Client work, invoicing tasks, deadlines
Small Teams Shared task boards without cloud dependency

Project Highlights

31-Option Console Interactive Web Dashboard Two-Way JSON Sync
Zero Duplicates Enterprise Patterns GitHub Pages Ready
187 JUnit 5 Tests Dependency Tracking Audit Logging

Problem Statement

Many lightweight to-do tools depend on cloud accounts, heavy databases, or expensive subscriptions. Users lose control of their data, face vendor lock-in, and lack visibility into task history. Enterprise solutions are overkill for individuals and small teams.

Task Flow addresses these challenges with a zero-cost, offline-first approach that delivers enterprise features — audit logging, dependency management, templates, recurrence — through a clean console interface and a polished web dashboard.


Key Features

Console Application (31 Menu Options)

Category Options Description
Task Management 1–5 Add, view all, view details, update, delete
Status Control 6–8 Mark completed, pending, in progress
Search & Filter 9–15 Title search, filter by status/priority/category/tag, advanced multi-criteria, sort
Calendar 16–18 Today's tasks, upcoming (7 days), overdue + summary
Archiving 19–21 Archive, restore, view archived
Dependencies 22–24 Add/remove dependency, view blocked/ready tasks
Comments 25–26 Add comment, view comments per task
Templates 27–29 Save template, create from template, view templates
Bulk Operations 30 Complete/delete/archive/set priority/set category/add tag to multiple tasks
Exit 31 Safe exit with confirmation

Interactive Web Dashboard

Feature Description
Table View Full task table with search, filter, sort, tags, bulk selection
Kanban Board Three-column board: Pending / In Progress / Completed
Activity Feed Timestamped audit trail of all mutations
Templates Panel Save, use, and delete reusable task blueprints
SVG Charts Status distribution, priority breakdown, category overview
Add/Edit Modal Task form with tags, recurrence, dependencies fields
Task Detail Modal Full task view with comments section
Bulk Mode Select multiple tasks for batch operations
Auto-Sync Toggle Enable/disable automatic JSON download on changes
CSV Export Export all tasks to CSV format

Enterprise Features

Feature Description
Tags Comma-separated labels per task with add/remove/filter
Dependencies Prerequisite task IDs with circular-dependency detection
Recurrence DAILY, WEEKLY, BIWEEKLY, MONTHLY, YEARLY auto-generation
Archiving Soft-delete without removing data; restore from archive
Activity/Audit Log Append-only record of every mutation with timestamps
Task Comments Immutable comment threads per task
Templates Save reusable task blueprints with pre-filled fields
Bulk Operations Complete, delete, archive, set priority/category, add tag
Advanced Search Multi-criteria filter (title, status, priority, category, tag, date range)
CSV Export Export all tasks to CSV including enterprise fields
Dashboard Charts SVG bar charts for status, priority, and category
Kanban Board Three-column board view with task cards

Two-Way Data Sync

Direction How When
Console → Website Console rewrites docs/data/tasks.json on every change Automatic
Website → Console Auto-Sync auto-downloads tasks.json; place as docs/data/tasks.json Automatic (toggleable)
Manual Export JSON / Import JSON buttons in the dashboard On demand

No duplicates — both sides guarantee exactly one task per ID via dedupeById() and mergeById().


Results

Achievement Result
JUnit 5 Tests 187 passing
Test Failure Rate 0%
Console Menu Options 31
Enterprise Features 12
Task Fields 13
Hosting Cost $0/month
Duplicate Rate 0% (guaranteed)
Data Formats CSV + JSON
Server Dependency Zero

Screenshots

Dashboard Overview

Dashboard Executive dashboard with KPIs, SVG charts, task table, and toolbar


Kanban Board

Kanban Three-column Kanban board with task cards and status columns


Activity Feed

Activity Timestamped audit trail of all mutations with action icons


Templates Panel

Templates Reusable task templates with use and delete actions


Tech Stack

Category Technologies
Language Java 17
Build Tool Apache Maven 3.9+
Test Framework JUnit 5 + Maven Surefire
Persistence CSV (system of record) + JSON (shared store)
Frontend HTML5, CSS3, JavaScript ES6+
Charts SVG bar charts (vanilla JS)
Deployment GitHub Pages (from /docs folder)
Architecture Layered (Model → Service → Repository → Main)

System Architecture

graph TB
    subgraph "Console Application (Java 17)"
        A[Main.java<br/>31 Menu Options] --> B[TaskService<br/>Business Rules]
        A --> C[ActivityService<br/>Audit Log]
        A --> D[CommentService<br/>Task Comments]
        A --> E[DependencyService<br/>Circular Detection]
        B --> F[FileTaskRepository<br/>CSV + JSON Export]
        C --> G[data/activities.json]
        D --> H[data/comments.json]
        E --> B
        F --> I[data/tasks.csv<br/>System of Record]
        F --> J[docs/data/tasks.json<br/>Shared Store]
    end

    subgraph "Web Dashboard (HTML5/CSS3/JS)"
        K[index.html] --> L[app.js<br/>Client-Side Logic]
        L --> M[localStorage<br/>Working Store]
        J -->|fetch on load| K
        L -->|auto-download| J
    end

    subgraph "Data Models"
        B --> N[Task<br/>13 Fields]
        B --> O[TaskTemplate<br/>Reusable Blueprint]
        C --> P[TaskActivity<br/>Append-Only Log]
        D --> Q[TaskComment<br/>Immutable Threads]
        E --> R[Dependencies<br/>Prerequisite Graph]
    end
Loading

Installation

Quick Start (Dashboard Only)

# Clone the repository
git clone https://github.com/girishshenoy16/task-flow.git
cd task-flow

# Open the dashboard in your browser
start docs/index.html

Full Stack (Console + Dashboard)

# Clone the repository
git clone https://github.com/girishshenoy16/task-flow.git
cd task-flow

# Build and test
mvn clean package

# Run console application
java -jar target/todo-list-manager.jar

# Open the dashboard in your browser
start docs/index.html

Prerequisites

  • Java 17+ (for console application)
  • Apache Maven 3.8+ (for building)
  • Web browser (for dashboard)

Folder Structure

task-flow/
├── src/main/java/com/diploma/todolist/
│   ├── model/           Task, TaskPriority, TaskStatus, TaskCategory,
│   │                    Recurrence, TaskComment, TaskActivity, TaskTemplate
│   ├── service/         TaskService, ActivityService, CommentService,
│   │                    DependencyService
│   ├── repository/      TaskRepository (interface), FileTaskRepository
│   ├── utility/         ValidationUtil, CsvUtil, JsonTaskParser
│   ├── exception/       TaskNotFoundException, InvalidInputException
│   └── main/            Main (31-option console UI)
│
├── src/test/java/com/diploma/todolist/   187 JUnit 5 tests
│
├── docs/                ← GitHub Pages deployment root
│   ├── index.html       Interactive enterprise dashboard
│   ├── css/styles.css   White theme, responsive layout
│   ├── js/app.js        Client-side logic, charts, Kanban, sync
│   └── data/tasks.json  Shared store (committed for GitHub Pages)
│
├── data/                Runtime files (git-ignored)
│   ├── tasks.csv        System of record
│   ├── activities.json  Audit log
│   ├── comments.json    Task comments
│   └── templates.json   Saved templates
│
├── screenshots/         Screenshot images for README
├── reports/             Project documentation
│   ├── PROJECT_REPORT.md
│   └── EXECUTIVE_SUMMARY.md
│
├── outputs/
│   └── sample-simulation.txt
│
├── pom.xml              Maven config (Java 17, JUnit 5, surefire, jar)
├── .gitignore
└── README.md

Test Suite

187 JUnit 5 tests across 13 test classes, zero failures.

mvn clean test
Test Class Tests Coverage
TaskServiceTest 31 Core CRUD, status, search, filter, sort, overdue, summary
TaskServiceEnterpriseTest 24 Archive, tags, advanced search, templates, bulk, recurrence, CSV export
ValidationUtilTest 27 Title, date, menu, index validation
TaskModelTest 17 ID generation, constructors, setters, toReadableString
TaskEnterpriseModelTest 16 Tags, dependencies, recurrence, archived
FileTaskRepositoryTest 16 Round-trip, missing/empty/malformed, JSON export, dedupe
CsvUtilTest 16 Parse, escape, round-trip
DependencyServiceTest 8 Add/remove deps, circular detection, blocked/ready
EnumFromStringTest 11 fromString for Priority/Status/Category
ActivityServiceTest 6 Record, getAll, getByTaskId, getRecent, getByAction
CommentServiceTest 5 Add, getByTaskId, delete, getRecent
JsonTaskParserTest 5 Parse, multi-task, special chars, null/empty
RecurrenceTest 5 fromString, null handling, values
Total 187 0 failures

All tests use isolated temporary directories so they never interfere with runtime data.


Reports

Report Description
Project Report Full technical report covering architecture, implementation, testing, and deployment
Executive Summary High-level summary of objectives, outcomes, and key metrics

Repository Features

MIT License GitHub Pages Two-Way Sync
187 JUnit 5 Tests Kanban Board Dependency Tracking
Audit Logging Task Templates Bulk Operations
CSV + JSON Storage SVG Charts Recurrence Rules
Responsive UI Activity Feed Zero Duplicates

Future Roadmap

Priority Item
High REST API for external integrations
High Drag-and-drop Kanban reordering
Medium Encrypted local storage
Medium Recurring task reminders via notifications
Medium Multi-user collaboration
Low SQLite backend option
Low Mobile app (React Native)

Limitations

Limitation Impact Mitigation
No backend server GitHub Pages cannot receive direct writes; browser edits live in localStorage only Auto-Sync downloads tasks.json for manual commit; Import/Export for manual sync
Single-user only No authentication or multi-user support; no role-based access control Out of scope; suitable for personal and demo use
No real-time sync Two devices cannot see each other's changes instantly JSON commit-and-push workflow; Auto-Sync toggle for semi-automatic updates
No push notifications No reminders for overdue or upcoming tasks Future roadmap item; console shows overdue warnings on startup
No drag-and-drop Kanban Kanban board is view-only; tasks cannot be dragged between columns Future enhancement; columns are clickable for status changes
No encryption Tasks stored in plaintext CSV and JSON files Acceptable for local-only use; future roadmap item for encrypted storage
GitHub Pages latency Deployed dashboard updates only after docs/data/tasks.json is committed and redeployed (1–2 min) Open docs/index.html directly for instant local updates
No SQLite option CSV has inherent size limits for very large task lists (10,000+ tasks) Acceptable for personal use; CSV remains human-readable and tool-friendly
localStorage limits Browser localStorage typically limited to 5–10 MB per origin Sufficient for thousands of tasks; older tasks may need export and archival
No mobile app Dashboard is responsive but not a native mobile experience PWA-style; works in mobile browsers with full functionality

Known Issues

  • The outputs/sample-simulation.txt file reflects the old 16-option menu and needs updating for the current 31-option menu.
  • Kanban board filters by status only; archived tasks are excluded from all views by design.
  • Auto-Sync downloads files to the browser's default Downloads folder; users must manually place the file back as docs/data/tasks.json.

Design Decisions (Not Limitations)

Decision Rationale
CSV as system of record Human-readable, tool-friendly, diff-able, no database dependency
JSON as shared store Easy for JavaScript fetch(); dependency-free Java parser available
localStorage for browser Zero server cost; works offline; instant reads/writes
No external JS libraries Portfolio demonstrates vanilla JS mastery; zero dependency risk
White theme only Clean, professional look; avoids dark/light toggle complexity
187 tests in isolated dirs Prevents test interference; ensures reproducibility

License

This project is licensed under the MIT License — see the LICENSE file for details.


Acknowledgements

Resource Description
Java 17 Modern LTS language with records, sealed classes, and pattern matching
JUnit 5 Unit testing framework for Java
Apache Maven Build automation and dependency management
GitHub Pages Static site hosting for the web dashboard
MDN Web Docs HTML5, CSS3, and JavaScript references

Built with precision. Engineered for production. Designed for developers.

Task Flow v1.0 — Enterprise Task Management Platform

Releases

Packages

Contributors

Languages