January 2008 Archives

Static Demonstration

| No Comments | No TrackBacks
I've setup a static demonstration of prodot: Static Demo of Prodot (This link will open in a new window!) This doesn't show much, but it will give you an idea of how the interface looks. Its nice, huh?

Database

| No Comments | No TrackBacks
The dotproject database model has 69 tables.

Security

| No Comments | No TrackBacks
There are some concerns I have about security. It looks like a lot has been done to make dotproject secure, which is good, but I have the feeling that the security model could be accidentally broken without knowing it. The access control lists are a good idea, and the login security methods seem OK, but what concerns me the most is how files are included. There appear to be some inclusion of files based upon get variables, which is obviously a no-no. It also looks like this has been guarded pretty well, but since I'm making destructive changes to the software, I'm not sure if I'm going to break the security model at the same time.

Misc. Notes

| No Comments | No TrackBacks
dotProject sets the version number using pieces: major, minor, and patch. Interesting. It has some sort of query builder which doesn't make sense to me. I like how the entire program is accessed via a single file (index.php), so when I see stuff like this I wonder why it isn't done in the index.php file:

// First order check if we are allowed to view
if (!$canAccess) {
	$AppUI->redirect('m=public&a=access_denied');
}
$AppUI->savePlace();

phpgacl

| No Comments | No TrackBacks
This library looks pretty good, but it appears to be very heavy duty. I'm not sure if my needs are sufficient to call for such a beast.

Event Queue

| No Comments | No TrackBacks
The dotproject event queue is used to sent out notices and alerts. This also is a fairly tough nut to crack. I remember being bewildered at the complexity of how Nagios approached a similar challenge. This is something core to project management, so I'm going to keep it in there. I hope its not tied too closely with the messaging functions (like email), so that I can remove those without breaking the event queues. Along those lines, I just removed one of the classes, the libmail.class.php file, and some pages broke. I then found this odd statement:

require_once $AppUI->getSystemClass('libmail');
I say its odd because I'm wondering why that AppUI object is handling includes, as well as why includes require a custom method.

Companies, Departments, and Contacts

| No Comments | No TrackBacks
This is a data model I've wrestled with for some time, and I'm really glad to learn that dotProject has support for LDAP. That's something I want to learn more about.

Forums

| No Comments | No TrackBacks
The forums are associated with projects... hmmm. That seems strange, but maybe its just unfamiliar to me. I'm going to remove the forums module in this the prodot repository.

Email

| No Comments | No TrackBacks
dotProject looks like it has a lot of support for email, and since I'm not interested in email at the moment, I'm going to remove that from my repository copy of the code. I did notice, however, that there is an interesting file called gateway.pl, which if I understand correctly, can receive an incoming email from procmail and import the contents into a database. Its an interesting concept.

Icons, Interface and Gantt Charts

| No Comments | No TrackBacks
The dotProject icons and interface design is actually really nice. I'm impressed! But like I said earlier, there are a heck of a lot of tables.

Interface

The interface is customizable, nice! And the themes are actually quite good as well. Since I'm not reviewing dotproject for interface skinning concepts, I'm going to remove the classic and grey themes from the repository.

Gantt

The gantt chart works good - I wonder if this is jpGraph?

example-gantt-chart.png

Yeah it is jpgraph, that's too bad. jpGraph is commercially licensed software, but they offer a personal use license, but I can't really imagine anyone wanting to make gantt charts for personal, non-commercial uses.

I just removed the jpgraph code from the checkout, and the gantt chart tab fails gracefully which is nice, and now that I think of it, the configuration has an option for using or not using gantt charts.

Odd, but after I disabled gannt usage, the gantt tabs still show up. I removed all the code so now I'm getting an error. I'll remove the tab manually.

Installer

| No Comments | No TrackBacks
I just went through the installer and it was really nice, they did a swell job on that. I copied the basic html of the installer for future reference, you can see it here: Installer Check After installation comes configuration: System Configuration In reviewing some of the HTML, there are a lot of tables. Too many tables. I used to rely on tables all the time for layouts, but I've since moved on to div tags.

Smarty Templates

| No Comments | No TrackBacks
dotProject also uses smarty templates (smarty is a templating library for PHP). I of course would prefer to use XSL, but a template library is better than none at all!

dotProject Modules

| No Comments | No TrackBacks
There are some interesting looking modules, but I also get the feeling like the scope and purpose of dotproject wasn't / isn't well defined. There are modules for forums, contact management, company directories, and file management, all which are related to project management, but in my opinion fall outside of the scope of a project management solution. There is a tasks module which seems to have a good amount of logic in it, so that's where I'll focus for now.

Ticketsmith

| No Comments | No TrackBacks
dotProject uses Ticketsmith which has a custom license (Voxel License). What is Ticketsmith? Its a trouble ticket system, which as of right now I'm feeling wary of. For trouble tickets I'd either use trac, roundup, or rt, depending on the situation.

What is Prodot PM?

| No Comments | No TrackBacks
To review the dotproject code, I've setup a repository so that I can break stuff and figure out how it works. At the same time I'll be able to share what I find out with others.




About this Archive

This page is an archive of entries from January 2008 listed from newest to oldest.

Find recent content on the main index or look in the archives to find all content.