# DotProject

dotProject is a web-based, multi-user, multi-language project management application. It is free and open source software, and is maintained by an open community of volunteer programmers.

## History

dotProject was originally developed by Will Ezell at dotmarketing, Inc. to be an open source replacement for Microsoft Project, using a very similar user interface but including project management functionality. Begun in 2000, the project was moved to SourceForge in October 2001, and, from version 2.1.8 onwards, is hosted on GitHub.
The project stalled in late 2002 when the original team moved to dotCMS. Subsequently, Andrew Eddie and Adam Donnison, two of the more active developers, were granted administration rights to the project. Andrew continued to work on the project until he moved on to Mambo and later Joomla. Adam remains an administrator.
In late 2007, the new dotProject team began a major redevelopment using the Zend Framework, with version 3 (dP3) the expected target release to be utilising it. A fork called web2project was initiated at the same time.
Since 2018, the dotProject core team has focused its efforts on keeping dotProject compatible with the latest versions of PHP and MySQL/MariaDB and updating its dependent packages; the overall look and feel remains notoriously similar to what it used to be in the late 2000s.

## Overview of the main features

dotProject is mostly a task-oriented project management system, predating contemporary tools addressing methodologies such as Agile software development. Instead, it uses the "waterfall" model to manage tasks, sequentially and/or in parallel, assigned to different members of a team or teams, and establishing dependencies between tasks and milestones. It can display such relationships visually using Gantt charts.
It is not specifically designed for software project management but can be used by most kinds of project-oriented service companies (such as design studios, architects, media producers, lawyer offices, and the like), all of which organise their work conceptually in similar ways. Unlike most contemporary software project management tools, dotProject cannot be easily integrated with the usual constellation of 'business tools'; instead, it is a complete, standalone application, not requiring anything else besides a platform that supports PHP (it is web server agnostic) and MySQL/MariaDB. Except for drawing Gantt graphics, it has a reasonably small footprint in terms of memory and disk space requirements.
In spite of its conceptual simplicity, dotProject nevertheless can be extended or integrated with other tools. It comes with a series of plugins, most of which pre-activated; there is even a repository of independently maintained 'mods' (or plugins) available on SourceForge, which include a Risks management module (released in late 2020) among others.
While dotProject is self-contained in terms of user authentication and management, it can also integrate with an external LDAP server, as well as synchronise its users with a phpNuke installation. Further authentication methods are possible to be developed separately but are currently not part of the core software.
The core of dotProject focuses on Companies, which may have subunits known as Departments, which, in turn, have Users. Companies can be internal or external; thus, a project can be shared/viewed by customers, by giving them access via a special Role. Roles have a reasonably complex permissions system, allowing a certain degree of fine-tuning of what kind of information can be viewed and/or edited by the users. There is even the possibility of having a 'public' role with no access to any information but nevertheless able to submit tickets via the integrated ticketing system.
Projects, in turn, are linked to one company and (optionally) one or more departments in that company; users assigned to a specific project, however, may come from any company or department — thus allowing cross-company development, or the involvement of external users (independent consultants, freelancers, or even the clients and their intermediaries).
Projects are divided into Tasks, which can have all sorts of dependencies between them; tasks can also have subtasks, and they can be assigned to specific milestones. This allows the establishment of complex relationships between the team members, the many projects they might be involved in, and the amount of work to be distributed among all. As is common with other project management tools, tasks can be created as mere stubs and completed later; assigned and reassigned to team members; or even moved across projects (or becoming subtasks of other tasks).
Team members are expected to register the amount of time they spend on each task, which is accomplished via Logs. These are often one-line comments with an estimate of the time consumed (but can optionally have much more information); dotProject will take those logs into account when calculating the workload, the overall cost of the project so far (and compare it to the budget), as well as figuring out what tasks are being completed in due time or are overdue. Depending on the company style and its level of activity tracking — according to their business culture — time-tracking can be as simple as just closing a task, or it might involve several logs until a supervisor deems that the task can be safely closed.
All these activities are tracked and made part of the overall project history. Optionally, dotProject can send emails to the involved parties, triggered by special conditions — such as a task being overdue, or having been completed so that a customer can be invoiced. While dotProject is not a fully-fledged invoicing system, it can produce enough data output to send reasonably detailed invoices to customers. At the same time, via its reporting facility, the management or the board can get properly formatted reports about ongoing projects, besides having access to the Gantt charts.
Communication between team members can be as simple as leaving comments on tasks and/or logs, but dotProject also includes a minimalistic Forum facility. These are usually assigned to a single project (but each project can have several separate forums, with separate moderators, serving different purposes).
And while dotProject is not a sophisticated document management system, it nevertheless allows files to be uploaded to a special directory, also assigned to specific projects/tasks, and under control of the permission system (file names get hashed, and only someone with the proper permission will be able to retrieve those files). There is a very simple built-in file management system to allow for file uploading and categorising with metadata. The file folder can theoretically be mounted on an external file system on a cloud storage provider — so long as this is achieved at the operating system level; dotProject, by itself, does not connect directly to any storage provider. dotProject also includes a very simple versioning system.
Tasks and milestones are also integrated into the built-in Calendar module, which is usually the preset entry point of the user — allowing them to keep up with the tasks they're involved in, or those that they supervise. There is some flexibility in how the information is presented. It is unknown if there is a way to automatically subscribe to a specific calendar; by contrast, Contacts, a module that allows editing the data related to each user, also permits exports using the vCard format.

## Support and community

As of 2021, the dotProject community mostly volunteers time to reply on dotProject's GitHub issues, but there is no other form of getting any support.
As of May 2013, there were over 50,210 registered users in the dotProject forums and an average of 500–700 downloads each day.
As of April 2021, the original website mentioned before — which included a rich community of users — does not exist any longer, although https://dotproject.net/ is still actively maintained and points to some key resources (mostly on GitHub).