Skip to content

About

Modern JavaFX desktop task manager with Markdown support, priorities, tags, filtering, search, dashboard statistics, and smooth UI animations.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TaskTracker

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.


✨ Features

  • 📝 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


🖥️ UI

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.


📝 Markdown Support

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.


🎯 Task Management

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

🔍 Search & Filtering

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.


✨ UI Animations

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.


🏗️ Project Structure

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

🛠️ Tech Stack

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

🚀 Getting Started

Requirements

Install:

  • JDK 21
  • Maven 3.9+
  • Git

Verify your installations:

java -version
mvn -version
git --version

Clone the Repository

git clone https://github.com/SatishGautam1/TaskTracker.git
cd TaskTracker

Build the Project

mvn clean test

Then:

mvn clean install

Run the Application

mvn javafx:run

🧪 Testing

Run the test suite with:

mvn test

The project currently includes unit tests for the task service.


🔐 Markdown Safety

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.


🧩 Architecture

TaskTracker follows a lightweight separation of responsibilities:

model

Contains the core task data and enums.

service

Contains task operations, filtering, searching, and task-state management.

ui

Contains JavaFX components such as:

  • Dashboard
  • Sidebar
  • Task cards
  • Task editor
  • Markdown editor

util

Contains reusable functionality such as date/time formatting and Markdown previews.


🛣️ Future Improvements

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

📄 License

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.


👨‍💻 Author

Satish Gautam

GitHub: https://github.com/SatishGautam1


⭐ If you find the project useful, consider starring the repository.

About

Modern JavaFX desktop task manager with Markdown support, priorities, tags, filtering, search, dashboard statistics, and smooth UI animations.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages