A modern desktop task management application built with Java 21 and JavaFX.
TaskTracker provides a clean productivity-focused interface for creating, organizing, searching, filtering, editing, and completing tasks, with Markdown support and subtle UI animations.
-
📝 Create and edit tasks
-
✅ Complete and reopen tasks
-
🗑️ Delete tasks with confirmation and smooth removal animation
-
🚩 Flag important tasks
-
🎯 Task priorities: Low, Medium, High
-
🏷️ Add tags to tasks
-
📅 Due dates
-
🔔 Reminder fields
-
🔎 Search tasks by subject, description, or tags
-
🗂️ Filter tasks by:
- All
- Pending
- Completed
- Flagged
- Overdue
- Due Today
-
📊 Dashboard statistics
-
📝 Markdown task descriptions
-
👀 Live Markdown editor preview
-
🧹 Clean Markdown previews inside task cards
-
🎨 Modern JavaFX UI
-
✨ Subtle hover, completion, entrance, and deletion animations
-
📱 Responsive layout behavior when resizing the window
-
🧪 JUnit tests for task-service functionality
TaskTracker is designed as a desktop productivity application with:
- Sidebar navigation
- Dashboard statistics
- Search and filtering
- Modern task cards
- Priority and status badges
- Tag chips
- Empty states
- Markdown editor with live preview
- Smooth interactions and transitions
The interface uses a centralized CSS stylesheet to keep the visual design consistent across the application.
Task descriptions support Markdown.
The editor includes toolbar actions for:
- Bold
- Italic
- Headings
- Bullet lists
- Checklists
- Links
- Code blocks
The editor provides a live preview using Flexmark and JavaFX WebView.
Raw HTML rendering is disabled and JavaScript is disabled in the preview for safer handling of task content.
Task cards use a lightweight Markdown-to-text preview rather than creating a WebView for every task, helping keep scrolling and list rendering responsive.
Each task can contain:
| Property | Description |
|---|---|
| Subject | Task title |
| Description | Markdown-supported task content |
| Status | Pending or Completed |
| Priority | Low, Medium, or High |
| Flag | Mark important tasks |
| Tags | Organize tasks with custom tags |
| Due Date | Optional task deadline |
| Reminder | Optional reminder time |
| Created Time | Task creation timestamp |
| Updated Time | Last modification timestamp |
| Completed Time | Completion timestamp |
TaskTracker provides fast filtering and search functionality.
Search matches against:
- Task subject
- Task description
- Task tags
Available filters include:
- All Tasks
- Pending
- Completed
- Flagged
- Overdue
- Due Today
The task list and dashboard statistics update when the search or filter changes.
Animations are intentionally subtle and focused on usability.
Examples include:
- Task entrance animation
- Smooth task deletion
- Hover lift effects
- Completion/reopen feedback
- Dashboard statistic pulses
- Button hover interactions
Animations are designed to work safely with JavaFX ListView cell reuse rather than triggering repeatedly whenever a cell is recycled.
TaskTracker/
├── pom.xml
├── README.md
├── .gitignore
│
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── tasktracker/
│ │ │ ├── Main.java
│ │ │ │
│ │ │ ├── model/
│ │ │ │ ├── Priority.java
│ │ │ │ ├── Task.java
│ │ │ │ └── TaskStatus.java
│ │ │ │
│ │ │ ├── service/
│ │ │ │ ├── FilterType.java
│ │ │ │ └── TaskService.java
│ │ │ │
│ │ │ ├── ui/
│ │ │ │ ├── DashboardPanel.java
│ │ │ │ ├── MarkdownEditor.java
│ │ │ │ ├── SidebarPanel.java
│ │ │ │ ├── TaskCard.java
│ │ │ │ ├── TaskEditorDialog.java
│ │ │ │ └── TaskFormData.java
│ │ │ │
│ │ │ └── util/
│ │ │ ├── DateTimeUtil.java
│ │ │ └── MarkdownPreview.java
│ │ │
│ │ └── resources/
│ │ └── styles.css
│ │
│ └── test/
│ └── java/
│ └── com/
│ └── tasktracker/
│ └── service/
│ └── TaskServiceTest.java
| Technology | Purpose |
|---|---|
| Java 21 | Application language |
| JavaFX 21 | Desktop UI |
| Maven | Build and dependency management |
| Flexmark 0.64.8 | Markdown parsing and rendering |
| JavaFX WebView | Markdown editor preview |
| JUnit 5 | Testing |
| CSS | Application styling |
Install:
- JDK 21
- Maven 3.9+
- Git
Verify your installations:
java -version
mvn -version
git --versiongit clone https://github.com/SatishGautam1/TaskTracker.git
cd TaskTrackermvn clean testThen:
mvn clean installmvn javafx:runRun the test suite with:
mvn testThe project currently includes unit tests for the task service.
The Markdown preview is designed with safety in mind.
The application:
- Suppresses raw HTML blocks
- Suppresses inline HTML
- Disables JavaScript execution inside the WebView
- Uses a lightweight preview implementation for task cards
- Avoids creating a WebView for every task list item
This keeps the Markdown editor useful while reducing unnecessary rendering overhead.
TaskTracker follows a lightweight separation of responsibilities:
Contains the core task data and enums.
Contains task operations, filtering, searching, and task-state management.
Contains JavaFX components such as:
- Dashboard
- Sidebar
- Task cards
- Task editor
- Markdown editor
Contains reusable functionality such as date/time formatting and Markdown previews.
Potential future development areas include:
- Persistent SQLite storage
- Actual scheduled desktop notifications
- Task history
- Recurring tasks
- Drag-and-drop task organization
- Keyboard shortcuts
- More advanced Markdown features
- Import/export functionality
- Application preferences
- Theme customization
This project is currently provided for personal and educational use.
A formal open-source license can be added when the project's distribution terms are finalized.
Satish Gautam
GitHub: https://github.com/SatishGautam1
⭐ If you find the project useful, consider starring the repository.