Redmine is an Open Source project management application created by Jean-Philippe Lang using Ruby on Rails. I have been using it to track ongoing projects for my business.
One great area where Redmine shines is how simple it has been to add custom data. I have used many project management programs and bug trackers, and a vast majority of them require you to hack on the code to add new fields. To illustrate how simple it is to add custom data to Redmine, I am going to walk you though how to set it up a custom field for your projects.
Decide what custom data you want
The first step is to decide what custom data you want to track. Taking a post from my friend Shane Pearlman, I decided to score my customer projects to help me evaluate them. So I decided want to attach a “Profit Score” to each project.
Setup your custom data
Login to your Redmine installation as an administrator and on the Administration menu select “Custom Fields”. You will notice that Redmine allows you to attach custom data to “Issues”, “Projects”, and “Users”. For now we want projects so click the projects link. Now you can click the link “New custom field”.
Different types of data
Redmine gives you a lot of control over your custom data, including restricting what type of data can be entered based off of length and matching a regular expression. For those who don’t know what a regular expression is, think of it as a pattern that your data needs to match.
To track the “Profit Score” I could enter a number from 1 to 5 but I would really like a drop down box to select a value. This will not only be faster but help me keep the data consistent for all my users. Redmine has different formats for the data including:
- Text
- Long Text
- Integer
- List
- Date
- Boolean
For “Profit Score” I want a List. After selecting List, Redmine automatically changes the view and gives me a set of text boxes I can use to enter the possible values. I only want to use 5 values but from what I can tell, you can enter as many values as you need.
Marking the data as required
To finish up the process, I decided not to check the option to make this field “Required”. Even though this will make my data for consistent, sometimes I don’t know how profitable a project will be when I set it up in Redmine.
Enter your custom data
All that’s let is to now check your project and test that custom field works like you want. If you go to the project overview Redmine will show the custom data. The project Settings is where you will be able to edit and change the custom data. Below is a screenshot of one of my projects with the new custom field.
Notice the other fields “Project Status”, “Cost Estimate”, and “Time Estimate” are other custom data fields I have setup. Each of them were set as “required” so they have the little red asterisk to remind the user that data must appear in their fields. If the form is submitted without data in those Redmine will display a message and will not allow the form to be saved.
Try it out
I hope this article explains a great feature of Redmine. Don’t forget, Redmine will also let you attach custom data to your Issues and Users.
So if you are looking for a project management application that is easy to use, I would highly recommend giving Redmine a try. There is also a fully functional demo of the latest code at http://demo.redmine.org. I want to give a big thanks to Jean-Philippe Lang and the rest of the Redmine team, your software makes it easier for my business to run.
How can I use this custom fields on my reports ?
I’d like to access redmine database and extract my reports (using another tool), but I not found the custom fields values.
You would have to do a join on a few tables to get to it:
* custom_fields – to find the custom field you added
* custom_fields_projects – to find the projects using the custom_field
* custom_values – to find what the value that’s used
If you write your report in Ruby, you can use some of Redmine’s methods to get to the data easier.
How gan I add a Custom Field with Textile Markup ?
Eric,
I just discovered the Custom Fields feature and really love it; the ability to apply it to specific projects makes it really powerful.
What would be even better, though, is if you could make custom fields (or make a custom field’s values) dependent upon another field. For instance, you would choose a value from Field B (a list), causing a Field C (another list) to be activated (or causing Field C to load only specific values). I imagine this is more than a trivial modification…
Yeah, in order for that to work custom fields will need to be improved a bunch. Right now they only support very simple data formats. I have some code to add some more advanced formats but it’s not ready yet (e.g. list of users, a url).