Convert Figma logo to code with AI

Leantime logoleantime

Leantime is a goals focused project management system for non-project managers. Building with ADHD, Autism, and dyslexia in mind.

5,559
649
5,559
224

Top Related Projects

20,485

The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.json , other translations are done at https://app.transifex.com/wekan/wekan only.

Kanban project management software

Effective June 1, 2021: Phabricator is no longer actively maintained.

Quick Overview

Leantime is an open-source project management tool designed to help teams and individuals manage their projects more efficiently. It provides a comprehensive set of features, including task management, time tracking, project planning, and collaboration tools, all within a user-friendly web-based interface.

Pros

  • Comprehensive Project Management: Leantime offers a wide range of features, including task management, Kanban boards, Gantt charts, and time tracking, making it a versatile tool for managing projects of various sizes and complexities.
  • Customizable and Flexible: The platform allows users to customize workflows, dashboards, and other aspects to fit their specific needs, making it adaptable to different project management methodologies and team preferences.
  • Collaboration and Communication: Leantime facilitates team collaboration through features like comments, file sharing, and real-time updates, enabling effective communication and coordination among project stakeholders.
  • Open-Source and Free: As an open-source project, Leantime is available for free, allowing teams and individuals to use and contribute to the project without any licensing fees or restrictions.

Cons

  • Learning Curve: The extensive feature set of Leantime may present a steeper learning curve for users who are new to project management tools, requiring some time to familiarize themselves with the platform's capabilities.
  • Limited Mobile Support: While Leantime is web-based, the user interface may not be optimized for mobile devices, potentially making it less convenient for users who need to access the platform on the go.
  • Potential Performance Issues: As the project grows in complexity and user base, there may be concerns about the platform's performance, especially for larger teams or projects with a significant amount of data.
  • Ongoing Maintenance: As an open-source project, Leantime relies on a community of contributors to maintain and improve the platform, which may result in inconsistent updates or potential delays in addressing issues.

Code Examples

Not applicable, as Leantime is a web-based project management tool and not a code library.

Getting Started

To get started with Leantime, follow these steps:

  1. Install Leantime: Leantime can be installed either by downloading the latest release from the GitHub repository or by using the provided Docker image. The installation process varies depending on your preferred method and the environment you're using.

  2. Set up the Database: Leantime requires a database to store project data. You can use a MySQL, PostgreSQL, or SQLite database, depending on your preferences and requirements.

  3. Configure the Application: After installing Leantime, you'll need to configure the application by setting up the database connection, email settings, and other necessary parameters. This can be done by modifying the config.php file or using the web-based setup wizard.

  4. Create an Account: Once the application is configured, you can create an account and log in to the Leantime dashboard. The platform provides a user-friendly interface to manage your projects, tasks, and team collaboration.

  5. Explore the Features: Leantime offers a wide range of features, including task management, Kanban boards, Gantt charts, time tracking, and reporting. Familiarize yourself with the platform's capabilities and customize it to fit your project management needs.

  6. Invite Team Members: Leantime supports team collaboration, so you can invite your team members to join the platform and work together on projects.

  7. Utilize the Documentation: The Leantime project provides comprehensive documentation, including installation guides, user manuals, and tutorials, to help you get started and make the most of the platform.

Competitor Comparisons

20,485

The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.json , other translations are done at https://app.transifex.com/wekan/wekan only.

Pros of Wekan

  • More mature project with a larger community and longer development history
  • Offers a wider range of features and integrations out-of-the-box
  • Provides a more Trello-like user interface, which may be familiar to many users

Cons of Wekan

  • Can be more complex to set up and maintain, especially for smaller teams
  • May have a steeper learning curve due to its extensive feature set
  • Less focus on lean project management methodologies compared to Leantime

Code Comparison

Wekan (JavaScript):

Template.boardList.helpers({
  boards() {
    return Boards.find({
      archived: false,
      'members.userId': Meteor.userId(),
    }, {
      sort: ['title'],
    });
  },
});

Leantime (PHP):

public function getAllBoards($projectId)
{
    return $this->dbcall->select('zp_canvas_items', array(
        'id',
        'title',
        'author',
        'created'
    ), array('projectId' => $projectId, 'box' => 'board'));
}

Both projects use different programming languages and frameworks, making direct code comparison challenging. However, these snippets demonstrate how each project handles board-related functionality in their respective codebases.

Kanban project management software

Pros of Kanboard

  • Lightweight and minimalist design, focusing on simplicity and ease of use
  • Extensive plugin system for customization and extending functionality
  • Self-hosted solution with no external dependencies, enhancing privacy and control

Cons of Kanboard

  • Less feature-rich compared to Leantime, which offers more comprehensive project management tools
  • User interface may feel dated or less polished than Leantime's modern design
  • Limited built-in reporting and analytics capabilities

Code Comparison

Kanboard (PHP):

public function getProjectById($project_id)
{
    return $this->db->table(self::TABLE)
        ->eq('id', $project_id)
        ->findOne();
}

Leantime (PHP):

public function getProject($id)
{
    $sql = "SELECT
                zp.*,
                company.name AS companyName
            FROM zp_projects AS zp
            LEFT JOIN zp_company AS company ON zp.company_id = company.id
            WHERE zp.id = :id";

    $stmn = $this->db->database->prepare($sql);
    $stmn->bindValue(':id', $id, PDO::PARAM_INT);

    $stmn->execute();
    $values = $stmn->fetch();
    $stmn->closeCursor();

    return $values;
}

The code comparison shows that Kanboard uses a more concise database query approach, while Leantime employs a more detailed SQL query with joins for retrieving project information.

Effective June 1, 2021: Phabricator is no longer actively maintained.

Pros of Phabricator

  • More comprehensive and feature-rich project management suite
  • Highly customizable with a wide range of tools and integrations
  • Robust code review and repository management capabilities

Cons of Phabricator

  • Steeper learning curve due to its complexity
  • Requires more resources to set up and maintain
  • Development has slowed down in recent years

Code Comparison

Phabricator (PHP):

final class PhabricatorDaemonManagementWorkflow
  extends PhabricatorDaemonManagementWorkflow {

  protected function executeWorkflow() {
    $console = PhutilConsole::getConsole();
    $daemons = $this->loadAllDaemons();

Leantime (PHP):

class projectService {

    private $projectRepository;
    private $ticketRepository;
    private $ticketService;

Phabricator offers a more complex and structured codebase, reflecting its broader feature set. Leantime's code appears simpler and more focused on specific project management tasks.

Phabricator provides a comprehensive suite of tools for software development and project management, while Leantime focuses on lean project management with a simpler approach. Phabricator may be better suited for larger teams or more complex projects, whereas Leantime could be ideal for smaller teams or those preferring a more streamlined experience.

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

Leantime Logo

Leantime®

⭐ If you find Leantime useful, please star us on GitHub! ⭐

Leantime is an open source project management system for non-project managers.
We combine strategy, planning and execution while making it easy for everyone on the team to use.
Built with ADHD, dyslexia and autism in mind. 🧠

💪 As simple as Trello but as feature-rich as Jira
🔄 A perfect alternative to ClickUp, Monday, or Asana
🌐 https://leantime.io

A screenshot of Leantime's my work dashboard showing a few boxes with large metrics represnting todos complete, goals contributing to, scheduled todos. Also shows a day calendar with one task on it and a list of tasks grouped by Overdue, Due this week and Due Later

License Badge Docker Hub Badge Github Downloads Discord Badge Crowdin GitHub Sponsors

alt text



🚀 Features*

Task ManagementProject PlanningInformation/Knowledge ManagementAdministration
Task management via
kanban boards, gantt, table, list and calendar views
Project Dashboards, reports & status updatesWikis / DocsEasy installation
Unlimited subtasks and dependenciesGoal & metrics trackingIdea BoardsMultiple user roles and per project permissions
Milestone managementLean & Business Model CanvasRetrospectivesTwo factor authentication
Sprint ManagementSWOT Analysis canvasFile Storage via S3 or local filesystemLDAP, OIDC integration
Timetracking & timesheetsRisk AnalysisScreen & webcam recordingExtendable via plugins and API
... and moreComments/discussions on everythingIntegrates with Slack, Mattermost, Discord
... and moreAvailable in over 20 languages
*yes, all of these features are included in the OSS version


📸 Screenshots

Screenshot of Leantime's my work dashboard but with a dark color scheme. All colors are darkened or reverted Screenshot of Leantime's project dashboard showing a project checklist that has the first box checked, the latest tasks (1 right now), a progress donut chart at 0% Screenshot of Leantime's todo screen in table format. Tasks are grouped by status where each Status has a different color
alt text Screenshot of Leantime's timeline or gantt feature showing a timeline with various milestone boxes different in length representing how long these take. Each milestone has a different color and they are connected with an arrow Screenshot of Leantime's personal calendar screen showing a month overview with a few tasks
alt text Screenshot of Leantime's wiki page showing one template article of a product requirements document formatted with lists and tables Screenshot of Leantime's timesheet feature with a table a one week overview and input boxes for each day. Tasks are organized in rows



❗System Requirements

  • PHP 8.2+
  • MySQL 8.0+ or MariaDB 10.6+
  • Apache or Nginx (IIS works with some modifications)
  • PHP Extensions:
  • BC Math (bcmath)
  • Ctype
  • cURL
  • DOM
  • Exif
  • Fileinfo
  • Filter
  • GD
  • Hash
  • LDAP
  • Multibyte String (mbstring)
  • MySQL
  • OPcache
  • OpenSSL
  • PCNTL
  • PCRE
  • PDO
  • Phar
  • Session
  • Tokenizer
  • Zip
  • SimpleXML

Ctype PHP Extension cURL PHP Extension DOM PHP Extension Fileinfo PHP Extension Filter PHP Extension Hash PHP Extension Mbstring PHP Extension OpenSSL PHP Extension PCRE PHP Extension PDO PHP Extension Session PHP Extension Tokenizer PHP Extension XML PHP Extension

️⚡️ Installation (Production)

There are two main ways to install LeanTime for production. The first of which is to install all needed pieces of the system locally. The second is to use the officially supported Docker image.

Local Production Installation

  • Download latest release package (file is called: Leantime-vx.x.x.zip) from the release page
  • Create an empty MySQL database
  • Upload the entire directory to your server
  • Point your domain root to the public/ directory
  • Rename config/.env.sample to config/.env
  • Fill in your database credentials (username, password, host, dbname) in config/.env
  • Navigate to <yourdomain.com>/install
  • Follow instructions to install database and set up first user account
IIS Installation Notes

Whilst the steps above are applicable to Internet Information Services (IIS), there is an additional configuration change that may be required in IIS to ensure full functionality - you need to allow the PATCH method:

  • Open IIS
  • Expand the server and sites on the left and select the LeanTime site
  • Double click on Handler Mappings
  • Double click on the PHP handler mapping that is used by the site
  • Click Request Restrictions…
  • Click the Verbs tab
  • In the One of the following verbs text box, add PATCH - for example: GET,HEAD,POST,PATCH
  • Click OK
  • In the Executable (optional) text box, put a double quote character (“) at the start and at the end of the path to the php-cgi.exe file (this isn't needed if the path doesn't have a space in it)
  • Click OK
  • A popup will appear asking if you want to create a FastCGI application - click Yes

Note: You may need to repeat this when you upgrade PHP.

Production Installation via Docker

We maintain an official Docker image on dockerhub. To run the image enter your MySQL credentials and execute. You can pass in all the configuration variables from .env

docker run -d --restart unless-stopped -p 8080:8080 --network leantime-net \
-e LEAN_DB_HOST=mysql_leantime \
-e LEAN_DB_USER=admin \
-e LEAN_DB_PASSWORD=321.qwerty \
-e LEAN_DB_DATABASE=leantime \
-e LEAN_EMAIL_RETURN=changeme@local.local \
--name leantime leantime/leantime:latest

Unless you have a database defined somewhere else you should use our docker-compose file.

Once started you can go to <yourdomain.com>/install and run the installation script.

Important: If you are planning to use plugins you need to mount the plugin folder plugins:/var/www/html/app/Plugins and ensure the www-data user has access to it. Otherwise installation may fail or plugins will be removed after a restart

Docker Installation Notes

If you intend to place Leantime behind a reverse proxy (nginx, etc.) to handle custom domain name resolution and SSL offloading, you will need to set the following environment variable in docker

-e LEAN_APP_URL=https://yourdomain.com \
  • Update yourdomain.com to your custom domain name.

🤓 Installation (Development)

There are two ways to install a development setup of LeanTime. The first (but most technical) is to install all pieces of the system locally. The second (and preferred method) is to use a docker containerized development environment.

Local Development Installation

  • Clone repository to your local server
  • Create MySQL database
  • Run webpack builder via make build-dev
  • Point your local domain to the public/ directory
  • Rename config/.env.sample to config/.env
  • Fill in your database credentials (username, password, host, dbname) in config/.env
  • Navigate to <localdomain>/install
  • Follow instructions to install database and user account

Development Installation via Docker

For development, we use a dockerized development environment. You will need to have docker, docker compose, make, composer, git and npm installed.

  • Notes for Windows Environments:
    • Run all commands within the git bash terminal in order to utilize unix specific commands
    • If installing php from a zip file, make sure to configure php.ini It does not exist initially, so copy C:\php\php.ini-development to C:\php\php.ini. You will also need to edit php.ini in a text editor and enable all needed extensions for the build process. You can find these by running the make commands and looking for any extensions that error out as missing. You can enable them by searching php.ini for the extension that will look like: ;extension=gd and removing the semicolon.

In order to build the development docker image, in the root of this repository, run a primer with

make clean build

afterwards, run

make run-dev

this will start the development server on port 8090.

The dev environment provides a MySQL server, mail server, s3 server, and should be good to go for your needs out of the box. The configuration of the development environment is found in .dev/.env, and is already seeded with the appropriate values. You should probably not be modifying this unless you plan to work on a feature for a specific integration. the applications you get are as follows

Additionally, Xdebug is enabled, but you will have to modify your IDE key in the .dev/xdebug.ini file(or alternatively, on your IDE). You also need to have port 9003 temporarily open on your firewall so you can utilize it effectively. This is because connections from docker to the host will count as external inbound connections

Run Tests

Static Analysis make phpstan
Code Style make test-code-style (to fix code style automatically use make fix-code-style)
Unit Tests make unit-test
Acceptance Tests make acceptance-test
(requires docker)

You can test individual acceptance test groups directly using:
For api:
docker compose --file .dev/docker-compose.yaml --file .dev/docker-compose.tests.yaml exec leantime-dev php vendor/bin/codecept run -g api --steps
For timesheets:
docker compose --file .dev/docker-compose.yaml --file .dev/docker-compose.tests.yaml exec leantime-dev php vendor/bin/codecept run -g timesheet --steps

🏗 Update

Manual

  • Make sure to take a backup of your database and files
  • Replace all files in your directory with the updated version
  • If there were any database changes, the system will redirect you to <yourdomain.com>/update

CLI

  • Run php bin/leantime system:update

Docker

  • Before updating, make sure your mysql container was started using a mounted volume, otherwise your content will be deleted
  • Delete/Stop existing container
  • Pull the latest docker image and rebuild using your compose file

Common Issues

Please refer to our documentation about common issues found when installing or updating Leantime

🔌 Extend Leantime

You can extend Leantime by

🛟 Let us install it for you.

Hassle free installation service in your environments. We can do full installations, updates, configurations or plugin installations. See our Marketplace for details.

☁️ Not interested in hosting yourself? Let us do it for you

We offer managed hosting plans as well as a SaaS product so you can get all the benefits of Leantime without the hassle. Head to leantime.io for more information.

🤙 Need technical support?

We can help you set up Leantime in your environment and customize it to your needs. Our support plans are outlined on our website.

Please note: We currently only support the official Leantime docker compose and standard installations. We only offer support for the most recent version.

We do not offer support for Cloudron, Elestio, Turnkey, or other external distribution platforms sharing unofficial versions of Leantime.

🫴 Contributing

We're excited you are interested in contributing to Leantime. We want to make sure you have a great experience contributing to Leantime and that the new features you build will make it into core.

🪲 Bugs

Find an issue on Github (or create a new one) add your name to it or comment that you will be working on it. Once fixed, create a Pull Request.

New Features in Core

If you have an idea about new features please reach out to us on Discord. This is where we coordinate feature development and discuss whether core is the right place to add your new features (Plugins is the alternative).

🌏 Translations

Language files and translations are stored in app/Language/* . Once updates please create a Pull Request.

👥 Community Support

⚖️ LICENSE Exceptions

Leantime is licensed under AGPLv3. This file forms part of the Leantime Software for which the following exception is added: Plugins within the /app/Plugins directory which may contain plugins licensed under other licenses including our enterprise license.