J!SOP 2010 – j!Camp Outcome Report
Our effort is to create the best and the most user-friendly collaborative project management tool for Joomla!. In this effort, we wrote down a list of features we would like to see in our projects based on existing project management tools and talked over the way we want to go with our project.
Basically, we can divide j!Camp tool into three parts:
- Projects gallery
- Tasks manager
The most important objective for us, however, is to develop a project management system which can be fully implemented into any Joomla! site.
The journey of “j!Camp” began in June and has not ended yet
Surely, every part is nested to many subparts. From the beginning, we knew that this project is way out of scope of JSOP 2010 program. Thus, we had to decide which features we will implement during the summer. From the beginning, we all agreed to postpone the “activities” part until the next alpha version (at least) as it had the lowest priority for a team at that time. Logically, we started with the most crucial part of our tool, projects gallery. This part consists of several connected sections — portfolios gallery, projects gallery, project overview, documents and project members.
First of all, we started to implement portfolios gallery. For this purpose, we use com_category extension as it provides us with everything we need right now. At the beginning we did not want to go for nested portfolios, but then we decide to use them as we have them for free from core anyway. This seemingly little decision for you affected our tool a lot. By allowing users to create nested portfolios, we provide him with a possibility to manage his portfolios in a clearer way.
The next step was to implement projects gallery into our tool. In order to do that we created a separate form for adding and editing projects in front-end (lately, we added the same form for back-end as well). After finishing basic projects gallery implementation the project overview was most likely to be worked on.
From project overview, we divided our work into two ways. One part of our team worked on documents part and managing members of project and the other part worked on tasks manager. For documents part we decided to inherit as much as we can from com_content component. This decision obvious a document can be represented as an article (in future we plan on adding uploading as well).
In the meantime, we found our ACL to be really weak. Therefore, we decided to rewrite it from scratch (it was easier for us to rewrite it now than postpone the inevitable and then suffer from refactoring vast amount of code). Our current ACL both adapts to com_category ACL (managing permissions for handling CRUD for projects and portfolios) and uses access.xml of our tool for other parts of the tool (documents, tasks and tickets).
Working on tasks manager was the most demanding for us. For the purpose of nested tasks/tickets, we reused nested table from Joomla! core. In our perception there is not much difference between tasks and tickets in their fundamental basis. Of course, we handle them in a different way, but they can be stored in the same table. In addition, we abandoned milestones, because we understand nested tasks as milestones.
Currently, we are about to lunch the fist alpha version of our tool. In this phase our tool can:
- List portfolios (even nest them)
- List projects
- Display project overview
- Handle documents (text) and assign them to a project
- Handle team members (assign and unassign members from a project – assigning users to a certain role for a certain project is not supported yet)
- Handle basic work with tasks and tickets
- CRUD tasks and tickets
- Assigning users to a task/ticket is not supported yet
- Updating dates of start and finish of a task based on its nested tasks is not supported yet
- Basic documentation in form of a PDF file
What JSOP gave me?
Thanks to this program, I got to know several awesome people around the world. Finally, I started to learn to think in a simple way. The next great outcome of this project is that I finally persuaded myself to pop under the hood of Joomla!. Right now, I truly understand how Joomla! API works. A great help for me were summer webinars headed by Louis Landry. Despite my sleepy voice and bugged microphone he was really eager to answer all questions I asked about Joomla!. In addition, Marcelo Eden, one of my mentors, was a great help for me as well. For an unbiased observer, our long skype talks might have appeared that we only fought between each other, but we did the right opposite. More precisely, we were only discussing our ideas really passionately. In the end, these talks helped us to make j!Camp what it is right now and what it will be when it will be done.
Another great person on my team who I got to know, thanks to this program, is Harshani Nawarathna. When we first talked to each other, she was new to Joomla! and she told me that she had a very little time to help us out. But, she kept studying Joomla! during the night and tried to help us out with designs of layouts for our project as much as she could. I admire her for that effort.
To sum it up, this program gave me many experiences that I will greatly value in my professional life. Moreover, I not only learned much about Joomla!, but I also became more culturally aware thanks to long skype talks with members of my team. I have never regretted the moment I decided to participate in this program for free.
Editor's note: for more information on JSOP, please visit http://docs.joomla.org/Joomla!_Student_Outreach_Program_Project_Ideas