Skip to content

Desktop task manager with millisecond-accurate deadlines and real-time countdowns. Built with JavaFX for students who need precision, not just reminders.

License

Notifications You must be signed in to change notification settings

KSaifStack/DockTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DockTask

formerly PlanForge

Desktop task management with millisecond-accurate deadlines and intelligent notifications
Built for students and professionals who need precision, not just reminders

Java 23 JavaFX 21 Windows MIT License


Why DockTask?

I built DockTask to solve my own problem of managing multiple classwork deadlines while learning JavaFX development. What started as a simple to-do list evolved into a full-featured task management system as I explored UI/UX design, data persistence strategies, and memory optimization techniques.

The core challenge? Basic calendar apps treat "3 PM" and "3:00:47 PM" the same, but when you have multiple assignments due at midnight, lab reports due minutes apart, and group project submissions with precise timing requirements, seconds matter.

This project pushed me to think beyond basic functionality and focus on creating a polished, user-friendly experience. Now it's the tool I use daily to keep my academic life neat and organized.


Demo

Watch DockTask in action! See the demo video or download the installer below to try it yourself.

Untitled.design.3.mp4

Download

Platform Download Status
Windows DockTask-Setup-0.5.exe βœ… Available
MacOS Coming Soon 🚧 In Development
Linux Coming Soon 🚧 In Development

Self-contained installer β€” No JDK installation required. Everything is bundled.

NOTE! If you run the installer in administration mode, DockTask can only save data with administration!


Features

Task Management

  • Priority-based auto-sorting with color-coded groups for instant visual scanning
  • Real-time countdown timers tracking tasks down to the second
  • Multi-stage notifications at 24h, 5h, 1h, 30m, 10m, 1m, and overdue intervals
  • Integrated calendar view with automatic synchronization when tasks are created or modified
  • Precise task timing allows scheduling tasks within seconds of each other

User Experience

  • System tray integration β€” Minimize to tray and keep DockTask running in the background
  • Adaptive theming β€” Dark/light modes with persistent preferences across sessions
  • Native window controls β€” Platform-integrated UI using NFX library
  • Keyboard shortcuts β€” Power user features (Ctrl+Shift+C for instant task creation)
  • Seamless theme switching with theme-adaptive styling

Data Management

  • Auto-save functionality with unsaved changes detection
  • Export/Import capabilities for data portability and backup
  • Multi-user support with separate task databases and built-in authentication
  • Local-first storage β€” All data stays on your machine
  • Confirmation dialogs protecting against accidental data loss

Interface

Light Mode

LightTheme

Dark Mode

DarkTheme

Tech Stack

Component Technology Purpose
Language Java 23 Core application logic
UI Framework JavaFX 21 Cross-platform GUI rendering
Styling CSS3 Theme implementation and visual design
Native Integration NFX Library Platform-native window controls and title bar
Architecture MVC Pattern Separation of concerns for maintainability
Data Storage File-based serialization Local persistence with custom separator-based format
Concurrency JavaFX Timeline API Real-time UI updates without blocking
System Integration Java AWT TrayIcon OS-level notifications and system tray

Architecture

DockTask implements Model-View-Controller (MVC) architecture for maintainable, testable code:

Model Layer

  • UserData.java β€” Centralized data access handling all CRUD operations
  • Data/ directory β€” File-based storage for user databases and settings (Settings.txt)
  • Responsibilities: Data validation, serialization with <SEP> separators, persistence operations

View Layer

  • TaskUi.java β€” Main dashboard with task list and real-time countdown timers
  • CalendarUi.java β€” Monthly calendar with task indicators and synchronization
  • CreateTaskUi / UpdateTaskUi β€” Task creation and editing interfaces with auto-save
  • Settings.java β€” Application configuration panel with export/import, data management
  • Responsibilities: UI rendering, user input collection, visual feedback, theme adaptation

Controller Layer

  • Event handlers connecting user actions to data operations
  • ThemeManager β€” Coordinating theme state and color adaptation across components
  • Notification System β€” Managing system tray alerts based on task deadlines
  • Timeline Controllers β€” Orchestrating concurrent countdown updates
  • Navigation Guards β€” Preventing accidental data loss during transitions
  • Responsibilities: Business logic, state management, component coordination

Benefits of this approach:

  • Data layer modifications (e.g., migrating to database) require zero UI changes
  • UI redesigns proceed independently of data operations
  • Individual components can be unit tested in isolation
  • New features integrate cleanly without cascading modifications

What I Learned

Building DockTask taught me valuable software engineering lessons:

Memory Optimization (63% Reduction)

In version 0.1, countdown timers for completed or removed tasks continued running in the background, accumulating on the memory stack. This caused memory usage to grow from ~500MB to over 1000MB during extended sessions.

Solution implemented:

  • Pause all Timeline threads when the application is minimized or closed
  • Clear expired task entries from the active monitoring list after removal
  • Implement proper cleanup of countdown timers for non-visible tasks

Result: Reduced idle memory footprint from 500MB to 60MB (85% improvement from peak) with sustained performance during long-running sessions. The application now becomes more efficient over time as resources are garbage collected.

Other Key Learnings

  • Concurrent State Management: Designed timeline system tracking multiple countdown timers simultaneously without data races or UI freezes

  • Data Persistence: Built custom file-based serialization with <SEP> separators enabling support for embedded links and preventing parsing errors. Added validation to prevent corruption, auto-save with change detection, and safe import/export functionality

  • UI/UX Design: Created theme-aware component system with instant propagation across 5+ view classes, responsive layouts, and intuitive information hierarchy with color-coded visual distinctions

  • Event-Driven Architecture: Mastered JavaFX event system, listeners, and callback patterns for responsive interactions. Implemented navigation guards to prevent accidental data loss

  • Software Distribution: Built self-contained Windows installer with bundled Java runtime for zero-dependency deployment


Changelog

v0.5 – December 2025

Architecture & Data Layer

  • Implemented centralized data storage system with dedicated "Data" folder structure
  • Migrated from simple file I/O to robust data serialization with validation
  • Created persistent settings storage via Settings.txt configuration file
  • Built foundation for modular plugin system with configuration management
  • Replaced legacy data parsing with scalable <SEP> separator-based system for embedded link support

User Safety & Data Integrity

  • Designed and implemented modal confirmation dialog system for destructive operations
  • Developed auto-save mechanism with unsaved changes detection when creating tasks
  • Created navigation guard system to prevent accidental data loss
  • Implemented data export/import functionality with comprehensive error handling
  • Added validation for all data manipulation operations to prevent corruption

UI/UX Enhancements

  • Redesigned application interface for improved visual hierarchy and clarity
  • Implemented dynamic theme-aware window chrome with color adaptation
  • Developed Settings panel with centralized application controls (export/import, refresh, exit)
  • Refined interface by removing redundant UI elements

Feature Additions

  • Dark mode preference persistence across sessions
  • Manual data refresh capability
  • Graceful application exit with cleanup operations
  • Import/export functionality for data portability

Technical Debt & Refactoring

  • Improved error handling across file operations
  • Enhanced data validation to prevent corruption scenarios
  • Optimized memory usage for large datasets
  • Strengthened separation of concerns in data access layer

v0.3 – November 2025

Performance & Optimization

  • Reduced memory usage by 63% by identifying and fixing Timeline leak β€” implemented pause/resume for background countdowns Enhanced task sorting algorithm for faster rendering with large datasets
  • Refactored legacy codebase for better maintainability

UI/UX Improvements

  • Redesigned CreateTask UI with cleaner layout and improved responsiveness
  • Enhanced calendar refresh logic with instant update propagation
  • Fixed Sun & Moon icon reset issue with live theme synchronization
  • Revamped clock system with improved real-time accuracy
  • Added keyboard shortcuts for power users (Ctrl+Shift+C for quick task creation)

Bug Fixes & Quality of Life

  • UpdateTask changes now instantly reflected in calendar view
  • Improved due date validation and edge case handling
  • Smoother theme transitions between dark/light modes

Installation

Windows

  1. Download DockTask-Setup-0.5.exe
  2. Run the installer and follow the on-screen prompts (administrator privileges recommended)
  3. Launch DockTask from your Desktop or Start Menu

System Requirements:

  • Windows 10 or later (64-bit)
  • 512 MB RAM minimum
  • 100 MB free disk space
  • 1024x768 display resolution minimum

Note: Installer includes bundled Java runtime. No external dependencies or JDK installation required.


Contributing

Contributions are welcome! Here's how you can help:

  • Report Bugs β€” Open an issue with detailed reproduction steps and environment information
  • Suggest Features β€” Share ideas via GitHub Discussions with use cases
  • Submit Pull Requests β€” Fork, implement with tests, and submit for review

Please ensure all contributions adhere to the existing code style and architectural patterns.


License

This project is licensed under the MIT License β€” see LICENSE file for complete terms and conditions.


Author

KSaifStack


DockTask Logo
Built with Java 23 and JavaFX 21

About

Desktop task manager with millisecond-accurate deadlines and real-time countdowns. Built with JavaFX for students who need precision, not just reminders.

Resources

License

Stars

Watchers

Forks

Packages

No packages published