Convert Figma logo to code with AI

DHTMLX logogantt

GPL version of Javascript Gantt Chart

1,471
324
1,471
35

Top Related Projects

4,602

Open Source Javascript Gantt

Gantt Gantt Gantt Timeline Schedule Calendar [ javascript gantt, js gantt, projects gantt, timeline, scheduler, gantt timeline, reservation timeline, react gantt, angular gantt, vue gantt, svelte gantt, booking manager ]

jQuery Gantt editor

🍞📅A JavaScript calendar that has everything you need.

Quick Overview

DHTMLX Gantt is a JavaScript library for creating interactive Gantt charts. It provides a powerful set of features for project management and scheduling, allowing developers to create visually appealing and functional Gantt charts for web applications.

Pros

  • Rich set of features including task management, resource allocation, and timeline customization
  • Highly customizable with extensive API and event system
  • Cross-browser compatibility and responsive design
  • Integration with popular frameworks like React, Angular, and Vue.js

Cons

  • Commercial license required for most use cases
  • Steep learning curve due to the extensive API and configuration options
  • Limited built-in themes and styling options
  • Performance may degrade with very large datasets

Code Examples

  1. Creating a basic Gantt chart:
gantt.init("gantt_container");
gantt.parse({
  data: [
    { id: 1, text: "Task 1", start_date: "2023-05-01", duration: 5 },
    { id: 2, text: "Task 2", start_date: "2023-05-06", duration: 3 }
  ]
});
  1. Adding custom columns to the Gantt chart:
gantt.config.columns = [
  { name: "text", label: "Task name", width: "*", tree: true },
  { name: "start_date", label: "Start time", align: "center" },
  { name: "duration", label: "Duration", align: "center" }
];
gantt.init("gantt_container");
  1. Enabling resource management:
gantt.config.resources = [
  { id: 1, name: "John Doe" },
  { id: 2, name: "Jane Smith" }
];
gantt.config.resource_assignment = "resource_id";
gantt.init("gantt_container");

Getting Started

  1. Include the DHTMLX Gantt library in your HTML file:
<script src="https://cdn.dhtmlx.com/gantt/edge/dhtmlxgantt.js"></script>
<link rel="stylesheet" href="https://cdn.dhtmlx.com/gantt/edge/dhtmlxgantt.css">
  1. Create a container for the Gantt chart:
<div id="gantt_container" style="width:100%; height:500px;"></div>
  1. Initialize the Gantt chart and add data:
gantt.init("gantt_container");
gantt.parse({
  data: [
    { id: 1, text: "Project kickoff", start_date: "2023-05-01", duration: 1 },
    { id: 2, text: "Design phase", start_date: "2023-05-02", duration: 5 }
  ]
});

This will create a basic Gantt chart with two tasks. You can further customize the chart by configuring various options and using the extensive API provided by DHTMLX Gantt.

Competitor Comparisons

4,602

Open Source Javascript Gantt

Pros of Gantt (frappe)

  • Lightweight and simple to use
  • Open-source with MIT license
  • Built with SVG, making it highly customizable

Cons of Gantt (frappe)

  • Limited features compared to DHTMLX Gantt
  • Less extensive documentation and community support
  • Fewer built-in integrations with other tools

Code Comparison

Gantt (frappe):

var tasks = [
  {
    id: 'Task 1',
    name: 'Redesign website',
    start: '2016-12-28',
    end: '2016-12-31',
    progress: 20,
    dependencies: 'Task 2, Task 3'
  },
  // ...
]
var gantt = new Gantt("#gantt", tasks);

DHTMLX Gantt:

gantt.init("gantt_here");
gantt.parse({
  data: [
    { id: 1, text: "Project #1", start_date: "01-04-2023", duration: 18 },
    { id: 2, text: "Task #1", start_date: "02-04-2023", duration: 8, parent: 1 },
    // ...
  ]
});

Both libraries offer easy initialization and task definition, but DHTMLX Gantt provides more advanced features and configuration options out of the box. Gantt (frappe) focuses on simplicity and ease of use, while DHTMLX Gantt offers a more comprehensive solution for complex project management needs.

Gantt Gantt Gantt Timeline Schedule Calendar [ javascript gantt, js gantt, projects gantt, timeline, scheduler, gantt timeline, reservation timeline, react gantt, angular gantt, vue gantt, svelte gantt, booking manager ]

Pros of gantt-schedule-timeline-calendar

  • More flexible and customizable, allowing for greater control over the appearance and behavior of the Gantt chart
  • Supports multiple views (timeline, calendar, resource) out of the box
  • Offers a more modern and responsive user interface

Cons of gantt-schedule-timeline-calendar

  • Less mature and potentially less stable compared to DHTMLX Gantt
  • Smaller community and fewer resources available for support and troubleshooting
  • May require more setup and configuration to achieve desired functionality

Code Comparison

gantt-schedule-timeline-calendar

import { GSTCResult } from 'gantt-schedule-timeline-calendar';
const gstc = GSTCResult({
  element: document.getElementById('gstc'),
  items: [...],
  columns: [...],
});

DHTMLX Gantt

gantt.init("gantt_here");
gantt.parse({
  data: [...],
  links: [...]
});

Both libraries offer straightforward initialization, but gantt-schedule-timeline-calendar provides a more modern, modular approach. DHTMLX Gantt has a simpler setup process, which may be preferable for quick implementations. The choice between the two depends on specific project requirements, desired customization level, and development team preferences.

jQuery Gantt editor

Pros of jQueryGantt

  • Open-source and free to use, making it accessible for all projects
  • Lightweight and easy to integrate into existing jQuery-based applications
  • Supports exporting to PDF and PNG formats

Cons of jQueryGantt

  • Less frequent updates and maintenance compared to gantt
  • Limited documentation and community support
  • Fewer built-in features and customization options

Code Comparison

gantt:

gantt.init("gantt_here");
gantt.parse({
  data: [
    { id: 1, text: "Task 1", start_date: "2023-05-01", duration: 5 },
    { id: 2, text: "Task 2", start_date: "2023-05-06", duration: 3 }
  ]
});

jQueryGantt:

$("#ganttChart").gantt({
  source: [
    { name: "Task 1", desc: "", values: [{ from: "/Date(1682899200000)/", to: "/Date(1683331200000)/", label: "Task 1", customClass: "ganttRed" }] },
    { name: "Task 2", desc: "", values: [{ from: "/Date(1683331200000)/", to: "/Date(1683590400000)/", label: "Task 2", customClass: "ganttBlue" }] }
  ]
});

Both libraries offer Gantt chart functionality, but gantt provides a more comprehensive and actively maintained solution with extensive documentation and features. jQueryGantt is a simpler, lightweight alternative that may be suitable for smaller projects or those already using jQuery.

🍞📅A JavaScript calendar that has everything you need.

Pros of tui.calendar

  • More versatile with multiple calendar views (daily, weekly, monthly)
  • Extensive theming and customization options
  • Better support for recurring events

Cons of tui.calendar

  • Steeper learning curve due to more complex API
  • Larger file size, potentially impacting load times
  • Less focus on Gantt-specific features

Code Comparison

tui.calendar:

import Calendar from '@toast-ui/calendar';

const calendar = new Calendar('#calendar', {
  defaultView: 'week',
  template: {
    time: function(schedule) {
      return moment(schedule.start.getTime()).format('HH:mm');
    }
  }
});

gantt:

gantt.init("gantt_here");
gantt.parse({
  data: [
    {id: 1, text: "Task #1", start_date: "2023-03-15", duration: 3, progress: 0.6},
    {id: 2, text: "Task #2", start_date: "2023-03-18", duration: 3, progress: 0.4}
  ]
});

tui.calendar offers more flexibility for various calendar views and customization, making it suitable for diverse scheduling needs. However, it may be overkill for projects primarily focused on Gantt charts. gantt provides a more straightforward API for Gantt-specific functionality, making it easier to implement and potentially more performant for Gantt-centric applications.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

dhtmlxGantt

dhtmlx.com npm: v.8.0.10 License: GPL v2

Getting started | Features | License | Useful links | Follow us

DHTMLX Gantt is an open source JavaScript Gantt chart library that helps you illustrate and manage a project schedule in a nice-looking diagram.

It can show the dependencies between tasks as lines and allows you to set up different relationships between tasks (finish-to-start, start-to-start, finish-to-finish, start-to-finish). The Standard edition also inludes intuituve drag-n-drop interface and smart rendering which considerably boost performance while working with a large amount of tasks.

DHTMLX Gantt provides a flexible API and a large number of event handlers, which gives you the freedom to customize it for your needs. Moreover, the library comes with a comprehensive documentation and step-by-step video tutorials thus simplifying learning.

Getting started

Add files:

<script src="dhtmlxgantt.js" ></script>
<link rel="stylesheet" href="dhtmlxgantt.css" type="text/css">

Add markup:

<div id="gantt_here" style='width:100%; height:100vh;'></div>

And initialize:

gantt.config.date_format = "%Y-%m-%d %H:%i";
gantt.init("gantt_here");
gantt.parse({
  data: [
    {id: 1, text: "Project #1", start_date: null, duration: null, parent:0, progress: 0, open: true},
    {id: 2, text: "Task #1", start_date: "2019-08-01 00:00", duration:5, parent:1, progress: 1},
    {id: 3, text: "Task #2", start_date: "2019-08-06 00:00", duration:2, parent:1, progress: 0.5},
    {id: 4, text: "Task #3", start_date: null, duration: null, parent:1, progress: 0.8, open: true},
    {id: 5, text: "Task #3.1", start_date: "2019-08-09 00:00", duration:2, parent:4, progress: 0.2},
    {id: 6, text: "Task #3.2", start_date: "2019-08-11 00:00", duration:1, parent:4, progress: 0}
  ],
  links:[
    {id:1, source:2, target:3, type:"0"},
    {id:2, source:3, target:4, type:"0"},
    {id:3, source:5, target:6, type:"0"}
  ]
});

==> Check the live demo

Complete guides

All tutorials

https://docs.dhtmlx.com/gantt/desktop__howtostart_guides.html

Video guides

https://www.youtube.com/user/dhtmlx/videos

Features of the Standard Edition

  • 4 types of tasks linking: finish-to-start, start-to-start, finish-to-finish, start-to-finish
  • dragging and dropping multiple tasks horizontally
  • multi-task selection
multitask-drag-n-drop
  • backward planning
  • tasks filtering
  • smart rendering
  • inline editing
inline-editing
  • managing editability/readonly modes of individual tasks
  • tooltips
  • undo/redo functionality
  • configurable columns in the grid
  • customizable time scale and task edit form
  • progress percent coloring for tasks
  • 7 different skins

gantt-material

  • online export to PDF, PNG, Excel, iCal, and MS Project
  • cross-browser compatibility
  • 32 locales
  • keyboard navigation
  • accessibility

Resource management, critical path calculation, auto scheduling, and other enhanced features are available with the PRO edition. You can see the full list of features and compare the two DHTMLX Gantt editions in the documentation.

License

dhtmlxGantt v.8.0.10 Standard

This version of dhtmlxGantt is distributed under GPL 2.0 license and can be legally used in GPL projects.

To use dhtmlxGantt in non-GPL projects (and get Pro version of the product), please obtain Individual, Commercial, Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxGantt/#licensing or contact us at info@dhtmlx.com

(c) XB Software

Useful links

Follow us

Star our GitHub repo :star:

Check our roadmap for future updates :wrench:

Read us on Medium :newspaper:

Follow us on Twitter :bird:

Like our page on Facebook :thumbsup:

NPM DownloadsLast 30 Days