Skip to content

About

A Simple Task Manager

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

DeadlineFlow — Visual Deadline Planner

DeadlineFlow is an offline-first JavaFX desktop app for visual project scheduling with a Gantt timeline, task dependencies, conflict/risk detection, and critical path analysis.

Features Checklist

  • Offline-only local app (no accounts, no network calls)
  • Java 21 + JavaFX 21
  • Multi-project management with project colors and priorities
  • Gantt timeline with Day / Week / Month scale and zoom
  • Drag task bars to move/resize dates (minimum duration 1 day)
  • Task CRUD with progress (0-100), status, and dependency controls
  • Finish-Start dependencies with cycle prevention
  • Conflict detection + conflict section + tooltips
  • Risk rules:
    • Overdue => red accent
    • Due in <48h => yellow accent
  • Today dashboard:
    • Due Today
    • Due in 7 days
    • Overdue
    • Blocked by dependencies
  • Critical Path Method (CPM):
    • Earliest/latest timings and slack
    • Critical task highlighting
    • Project finish date
    • Cycle detection disables CPM highlight
  • SQLite persistence with schema migration + indexes
  • Seed sample workspace on first launch (2 projects, 8 tasks)
  • JUnit 5 tests for topology/cycle, conflict rule, CPM correctness

Architecture

com.deadlineflow
├── app
│   ├── DeadlineFlowApp (JavaFX bootstrap)
│   └── AppContext (DI/wiring)
├── presentation
│   ├── view (MainView + dialogs)
│   ├── viewmodel (MainViewModel)
│   └── components (GanttChartView custom control)
├── application
│   └── services
│       ├── SchedulerEngine
│       ├── ConflictService
│       ├── RiskService
│       ├── DependencyGraphService
│       └── CriticalPathService
├── domain
│   ├── model (Project, Task, Dependency, enums, Conflict)
│   └── exceptions
└── data
    ├── repository (interfaces)
    └── sqlite (SQLite DB, migration, seed, repositories, workspace store)

Layering:

  • Presentation: JavaFX UI and view model state handling.
  • Application: pure scheduling/business algorithms (no JavaFX dependency).
  • Domain: immutable entities/value-like objects.
  • Data: SQLite persistence and observable repository-backed state.

How to Run

Prerequisites:

  • Java 21+

Commands:

./gradlew run

Run tests:

./gradlew test

The SQLite workspace is stored at:

~/.deadlineflow/workspace.db

Screenshots

Add screenshots here:

  • docs/screenshot-main.png
  • docs/screenshot-critical-path.png
  • docs/screenshot-conflicts.png

About

A Simple Task Manager

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages