The main purpose of a project management application is to enable project managers to track the progress of a project that they are working on. Any developer that has worked on a very large project will know that he/she has to give periodic updates on the progress of the work that is being done on a particular project. By using a project management application, the process is made somewhat easier, in the sense that a project manager can just log on and check on the progress him/herself.
In this article we will assume that the project management application is used in a company, with a lot of users that can create projects and set up tasks for a particular project. Employees will have different levels of access; this makes keeping track of user activity essential. To keep track of user activity, we will make use of PHP's excellent session management capabilities.
To write the application you will need PHP4 and higher as well as MYSQL 4 and higher. You will also need a web server such as Apache or IIS. Apache can be downloaded off the Internet for free, but IIS cannot; it comes with the Windows operating system. Some knowledge of CSS style sheets would also be good, but not strictly necessary.
Structure of the Application:
The project management application has three main sections.
1. User Authentication - This section will be responsible for logging in users. ALL users of the project management application MUST be logged in to use the application. It is in this section that the user sessions will be set up; in other words, this is were user tracking will start. The section will consist of the following scripts:
login.php
logout.php
password.php
user_registration.php
Thelogin script will do the donkey work of logging in the user, checking if the user's username and password exist in the database, and taking the appropriate action. This script will present the user with a login HTML form that will have two form fields and a button. It will follow the tried and tested method of user verification. Thelogout script will do exactly what the name suggest and log out the user. Its primary aim is to destroy the session information that has been created by the login script, at the time of logging in.
2. The Application itself - This is the main part of the project management application. This is where the user or project managers can check the progress of a project, assign tasks to a project, add files and assign staff to work on a particular project. The application consists of the following scripts:
main.php - The main page of the application. This is the page that you see immediately after you have passed the login test. This page will list all the projects that are registered in the name of the person that is logged in and will show the status of the project, the project name and date that the project was created. It will give you the option to see a detailed view of the project.
view_project.php - This script will retrieve all the information about a given report. It will show the names of the staff who is working on this project, the files of the project , the owner and other pertinent details of the project.
Other scripts include:
add_file.php
add_project.php
add_staff.php
add_task.php
delete_file.php
delete_member.php
edit_project.php
edit_task.php
view_files.php
view_project.php
view_staff.php
view_tasks.php
3. Administration - This part is responsible for the overall maintenance of the project management application and can only be accessed by users with the highest level of clearance. There are two access levels, "admin" and "normal." "Admin" is the highest level of clearance that a user can have and will enable access to the application administration section. In the admin section of this application, administrators can add or remove users, add or remove projects and also view the status of each project. It consists of the following scripts:
index.php - displays a menu containing hyperlinks to the user management and project management pages.
add_project.php
add_user.php
del_project.php
del_user.php
edit_project.php
edit_user.php
list_projects.php
list_user.php
login.php
As you can see, I've used a persistent naming convention. This makes it easy to see what each script does. For example, it is easy to correctly guess what the list_projects.php script does and the delete_project.php does.