R. Joseph Newton

Software development

Project Manager

Project Manager is intended as a simple project management application. I would describe the current version as a study prototype used to explore the basic functionalities involved. This current version will not be the final release form, but I will be working with it to explore different aspects of the functionality needed. In the last few days, I have secured the application to ensure that it can be used in real-world project planning.

I have discovered that some underlying structural aspects of this system will not scale. I have also decided that the availability of AJAX functionality makes the POST-and-full-reload paradigm used here obsolete. Future versions will be AJAX-based. In the meantime, I will continue to refine the behavior of the current version.

My most recent efforts as of May 2 have been about two days of crunching out a credible user access protocol. The application had been severely limited in its utility by being open to all who visited the site. I now have access mediated so that anyone can start his or her own Project Space and register other users of that space, but no one can get itno a Project Space they have not created or been invited to.

The application is available for download in its current state of development. The download page provides general instructions for installation. Knowledge of Web server configuration, PHP, and MySQL operations is required. I will try to work up tutorials later for less-experienced users.

My focus on the current application is making sure that current functionalities work properly. This has taken a bit of doing as I pull the project out of motballs, because I have back-end upgrades in progress that have required a bit of middleware tweaking to mesh with. Some features that I point to with pride are:

Table-free layout: This is still no mean task. Stylesheet-based positioning requires careful attention to detail, and close checking of resulting appearance on multiple browsers. From the start of this project, I have used only the layout elements recommended by the W3C HTML 4.01 specification.

More dynamic pages: Although this project and most of its functionality is still using traditional POST techniques, I have taken the opportunity to integrate a few features that use advanced dynamic techniques. The editing form presented on the "Add Participant" interface uses dynamic writing to HTML elements as supported by the innerHTML property of HTML elements provided under the Document Object Model. More recently, I used full AJAX connectivity in the "New Person" interface used to add to the pool of available project participants. The AJAX [Asynchronous Javascript and XML] allow information exchange with a server without disturbing any unrelated part of the user interface. This makes for much faster pefformance and a smoother user experience.

Object Oriented Programming: Project Manager makes judicious, but not relgious, use of object-oriented programming techniques. All business objects are represented by classes, but some general-purpose functions are contained in toolkit modules. Some database abstraction is achieved through the use of a MySQLAdapter object to mediate connectivity with the MySQL server. Later versions may include other vendor-specific adapter objects. Use of this approach has definitely simplified the task of debugging and adapting the application, since it makes tracing of execution very straightforward.

Three-tiered Archtecture: This is my first venture into the use of stored procedures in the back end of an application. Apparently, I am not far behind the curve here, though. One cause of delay in posting this application online is that I was the first user on my hosting provider to need CREATE ROUTINE permissions. They are a fairly new feature of MySQL. The functions I have selected for stored procedures are mostly those that require immediate feedback from the MySQL server. Right now, the actively used stored procedures are all used to generated new primary keys. I use this approach rather than autonumber fields in order to preserve more granular control of the value used.

Easy Login and User Management: The new entry screen for Project Manager clearly presents options for most login situations:

Future Directions for Project Manager

Phase II In Phase II, I will be focused on fleshing out a practical, full-featured version of the application. Changes slated for Phase II include:

Phase III: Phase III development will focus largely on issues of scale and granularity. The primary defining feature will be an open-ended user and group privilege system, and allowing configurable privileges as well as standard privilege sets. Privileges will be freely assignable over any level of project organization. This phase will also include recursive Project Spaces, in order to allow separate management by different organizations or organizational units within a common system. Given the complexity of assembling and applying privileges in such an open-ended system [akin to NTFS in concept] this task is deferred to a latter stage of development. Other improvements to be made in this phase will be determined by experience with Phase I and II and needs that become apparent through their use.