In this concluding article, explore the scripts which add andremove timesheet entries to the system, and get a crash course instatistics by using these entries to generate useful resource allocationand usage reports.
And that just about concludes this case study. Throughout this development effort, I have made widespread use of PHP's session management capabilities, date and string functions, HTTP header functions, and database access capabilities. If you are new to PHP, I hope that the effort has been instructive, and that it has helped you gain a greater understanding of these powerful open-source tools.
If you'd like to learn more about some of the issues, techniques and functions described throughout the course of this article, here are a few links:
Despite my protestations to the contrary (and my fear that I'm going to have to cut short my overly-long lunch hour once the Boss gets his hands on it), I believe that a tool such as the one described over the preceding pages offers tremendous benefits to any organization in its efforts to streamline business processes and allocate resources more efficiently. By obtaining and storing information in electronic format, it reduces paperwork and simplifies resource accounting; by imposing a structure on user information, it makes it easier and quicker to locate, present and analyze raw data; and by using a database, it ensures that data does not get corrupted.
It should be noted also that this is an initial release of the application, and I expect it to evolve further, with new features being added and old features being upgraded. It's always a good idea to review both design and code as the application evolves - I plan to do this a little further down the road, and to make changes to both the database schema and the scripts themselves. This process should take place in conjunction with the development plan for new features, so that the addition of new features does not add to overhead and cause performance degradation.
That said, let me also add that when I delivered the finished product to the Customer at his uptown office (a couple hours ahead of deadline), he was thrilled to bits, and the severe HRD minions looked delirious with delight. In fact, the Customer was so impressed that, in the five minutes I spent alone in his office, he:
offered me one of his foul-smelling cigars (which I politely declined);
offered me a job (which I also politely declined);
and offered us a long-term software development contract (which I was happy to accept on behalf of the Boss);
Needless to say, the Boss was equally thrilled with the outcome and indicated that I would shortly be receiving a bonus and some vacation time for my efforts...naturally, after executing the Customer's next project. In fact, the Boss said, he was thinking of making me point man for the Customer's entire development contract, a statement which made my blood freeze and my stomach rumble in fear of the impending ulcers...
What, you were expecting a happy ending? Get real!
Note: All examples in this article have been tested on Linux/i586 with Apache 1.3.12, mySQL 3.23 and PHP 4.06. Examples are illustrative only, and are not meant for a production environment. YMMV!