In this article I will try to give an overview of the project management system Trac, to tell whom it will be useful and how to use it in project development.
About the system
Developer - Edgewall
License - BSD
What is written - Python
Habitat - Where Python lives, which means almost everywhere
So, what is this animal for?
In the development process very often we are faced with the need to manage and maintain the project. I know many people who write websites “on their knees” without any systems at all and at the same time are quite happy. They have all the project information in the Word document, and comments in the code are less common than snow in the Sahara.
But sooner or later we all are faced with the need to organize our working time, efforts, to document the project and in general we understand that “you cannot go on living like this.” At the same time, the most energetic begin to write for themselves organizers, Tudu sheets, bug trackers, in general, reinvent the wheel.
Trac is a fairly simple project management system, but visibly simplifying our lives with due patience. At one time I had reviewed many different control systems, and none of them were selected. Trac entered life imperceptibly, without much noise, caught on and now very much helps and facilitates this very life.
I do not want to rant on the topic "How important it is to have a project management system." If you have never used such systems, then I hope that this article will give a general idea and, perhaps, make you think about introducing such a system.
')
How does it work
The basis for Trac is the SVN repository. Therefore, if you are still not using Subversion in the development, then most likely Trac will be uninteresting for you.
Below is one of the most common methods for using TRAC.

Other methods are also possible, for example, without Apache - Trac will work as a standalone server. You can also connect LDAP for authentication. But I think the overall structure is clear.
Main functions
- Project management division of the project into stages (milestones)
performance monitoring (roadmap)
All changes to the project are recorded on a timeline.
rss support
Tickets
Standard functionality - accounting errors, comments, suggestions with the ability to filter and entering, respectively, in milestone, roadmap.
I also use as a ToDo. Simple enough and convenient.
View repository
A fairly convenient module for viewing the Subversion project repository. Allows you to view the source code, taking into account the revision, as well as changes.
The functionality can be extended with additional modules.
user management
A simple system — what users can and cannot do.
WiKi
The WiKi system is built into trac with the ability to link to milestone, roadmap, ticket. It fits well and is easy to use when conducting a project.
Installation
Problems with installation in * nix systems should not arise. Everything is described in detail in TracGuide.
For Windows, I would recommend Dmitry Konyaev ’s article “Installing Subversion + Trac under Windows”
Advice: put 0.10.4 version - under it many extensions are written.
The most needed expansion modules are listed here.
I also advise you to look at the site http://trac-hacks.org/ for listing at least useful additions, macros, integration with other development systems, fixes, and in general a lot of useful information on Trac. If there is interest in this topic, then I will publish a detailed article on Trac modules and extensions.
findings
This system will be useful for everyone using Subversion.
- For students (programmers)
Organization of your work, study and training before employment, familiarization with project management systems on the example of programs like “Hello world!” (Labs)
For single developers
With a fairly tight schedule, many developers often do not document errors, ideas, ToDo, and then, as a result, forget about those, get out of the schedule, sprayed, etc. The project management system helps to avoid many nuances and work with the greatest efficiency. And then when you look at what has been done, how many mistakes are eliminated there is a feeling of pride and satisfaction for the work done.
For companies (software development)
If you do not use any similar system, then it is imperative to spend several days and implement it in your own. The results are not long in coming;)
And lastly I will consider the use of Trac + Subversion on the example of the development of the site.
Task: There are 2 PHP programmers, 1 DB programmer, 1 designer, 1 project manager. The goal is to develop a website. There are also sketches of TZ. The nuances agreed upon begins the actual development.
Decision:
- A SVN repository is created, and a Trac project for it. All users go there naturally.
All the necessary information on the project TK is entered into WiKi Trac'a.
Mileston's are created with corresponding tickets as ToDo and distributed to programmers and designers. Set deadlines.
There is a rapid development. Closes tickets, mileston'y, expands WiKi. A common result is seen in the process - diagrams are built, the development process is controlled.
All errors and suggestions again recorded.
The development of the project is completed, documentation is made from WiKi, documentation on comments is generated from the source code, the project is rented and closed.
With this approach, it is clear that the replacement of any of the participants in the process or the introduction of newcomers, the process of “mastering” is noticeably simplified and accelerated.
Naturally, this is a very generalized and abstracted example, but it shows in general terms the development process with Trac.
Successful development;)
P.S. This is my first article in the habrahabr community, so please do not hit hard :)
useful links
http://trac.edgewall.org/ - Site where you can get Trac
http://trac-hacks.org/ - A very useful site with various extensions of trac functionality
http://www.hosted-projects.com/trac/TracDemo/Demo - Trac'a demo.
"Installing Subversion + Trac on Windows"