Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. milestones

milestones

MITClojurev0.3.0

A Clojure/ClojureScript library that automatically generates project schedules from task descriptions with constraints like resources, duration, and dependencies.

GitHubGitHub
120 stars21 forks0 contributors

What is milestones?

Milestones is a Clojure and ClojureScript library for automatic project scheduling. It generates optimal task schedules based on constraints like resources, duration, and dependencies, helping teams plan projects efficiently. The library validates task definitions for errors and can output schedules with start times for each task.

Target Audience

Project managers, developers, and teams using Clojure who need automated scheduling for software projects, product development, or any task-based workflow.

Value Proposition

Developers choose Milestones for its simplicity in automating complex scheduling logic, its integration with Clojure ecosystems, and its ability to detect planning errors early, saving time over manual scheduling tools.

Overview

The Automagic Project Planner

Use Cases

Best For

  • Automating project timelines for software development teams
  • Generating Gantt charts from task dependencies in Clojure applications
  • Validating task constraints to prevent circular dependencies
  • Resource allocation planning across multiple team members
  • Integrating scheduling logic into Clojure-based project management tools
  • Educational projects on scheduling algorithms and constraint satisfaction

Not Ideal For

  • Projects not using Clojure or ClojureScript, as the library is tightly coupled to these ecosystems.
  • Teams requiring interactive, drag-and-drop scheduling interfaces, since Milestones is code-centric with a static web visualization.
  • Applications needing complex calendar integration like holidays or working hours, due to its integer-based time handling.
  • Real-time collaborative planning tools that require dynamic schedule updates, as it computes schedules from fixed inputs.

Pros & Cons

Pros

Efficient Scheduling Algorithm

Automatically computes optimal task start times based on customizable priority fields like :priority and :duration, reducing manual scheduling effort. Evidence: the schedule function accepts a vector of priority fields to order tasks.

Robust Error Validation

Detects and reports specific planning errors such as circular dependencies, missing resources, and invalid predecessors, helping prevent costly mistakes. Evidence: Error map includes keys like :tasks-cycles and :tasks-w-no-resources with detailed descriptions.

Seamless Clojure Integration

Easily installed via Clojars and works natively with Clojure and ClojureScript, making it a natural fit for projects in these ecosystems. Evidence: Dependency management through Leiningen and availability on Clojars.

Built-in Visualization

Includes a web interface that generates Gantt charts using Google Charts, providing a visual representation of schedules. Evidence: Web version uses Google Charts Lib to draw GANTT charts and handles time units.

Cons

Limited Time Handling

Core library uses integer time units for scheduling, which may not directly support real-world calendars or complex time zones without additional work. Evidence: Tasks have :begin as integers, and web version relies on Google Charts for time resolution.

Clojure Ecosystem Lock-in

Exclusively designed for Clojure and ClojureScript, making it unsuitable for teams using other languages without significant integration hurdles. Evidence: Library is built in Clojure and requires Clojure dependencies, as stated in the installation.

Static Computation Model

Schedules are generated from a fixed set of tasks with no built-in support for dynamic adjustments or real-time updates, limiting agility. Evidence: Scheduling is done via a single function call with no mention of incremental or live updates.

Open Source Alternative To

milestones is an open-source alternative to the following products:

T
Taskjuggler

TaskJuggler is a project management tool for serious project managers that handles resource allocation, costing, and risk analysis.

Frequently Asked Questions

Quick Stats

Stars120
Forks21
Contributors0
Open Issues1
Last commit4 years ago
CreatedSince 2014

Tags

#project-planning#clojurescript#open-source-library#task-management#clojure#gantt-chart#artificial-intelligence#scheduling#automation

Built With

C
Clojure
G
Google Charts
C
ClojureScript

Included in

Clojure2.8k
Auto-fetched 15 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub