Project Management Overview

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.

Overview

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


The login 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. The logout 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.

{mospagebreak title=Other project scripts}

There are a number of project wide files, which include the following:

functions.php - This script contains some of the functions that the application uses on a system wide basis. Below are some of them. The names are indicative of the work that the function is supposed to do:


function checkformat($aUsername){

if(eregi(‘^[a-z]+[.]+[a-z]+$’,$aUsername))

return TRUE;

else

return FALSE;

}


The “checkformat()” function above uses regular expression to check the format of the given username. In this application, all user names must follow the format “name.surname” and all must be in lowercase. It is just to put another obstacle in the way of any potential intruder or hacker of the authentication system. As you might have guessed, the function is used by the login script as part of the verification process.


function checkmailformat($aEmail){

if(eregi(‘^[a-zA-Z0-9_-.]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+ $’,$aEmail))

return TRUE;

else

return FALSE;

}//end function


The “checkmailformat()” function checks the format of an email address when a new user is created and also during the password recovery process. It also uses a regular expression to verify the format of the email address. 

dbcon.php – The dbcon.php script basically contains the database login credentials. This is what my login details are:

<?

session_start();

$title = "Project Management";

//database connection

$db = mysql_connect("localhost") or die("Failed to open connection to MySQL server.");

mysql_select_db("project_management") or die("Unable to select database");

//set useful variables

$month_names = array("","January","February","March","April","May","June","July","August",
"September","October","November","December");

//set useful variables

$td = date("Y-m-d");

$date_time =date("Y-m-d h:i:s");

?>


I can show you my connection details because I don’t have any sensitive information that you should not see and also, I’m not connected to the Internet or part of any network, and so cannot be hacked. Otherwise, I would not do so. But please make use of the MySQL security system and secure your data; don’t ever show your connection details to anyone, in fact, if you are going to use this application, make sure to put this file outside of your root directory. Now, this script contains some information that will be used most of the time and is therefore included in almost all the scripts of the project.

{mospagebreak title=Templates}

I’ve designed this application using Dreamweaver, which makes developing PHP applications a lot easier. As you will see, I’ve used Dreamweaver’s templating technology to develop templates for the three different sections of the project management application:

admin.dwt.php - Administration section template. A sample of this template:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<!– TemplateBeginEditable name="doctitle" –>

<title>Untitled Document</title>

<!– TemplateEndEditable –>

<!– TemplateBeginEditable name="head" –>

<!– TemplateEndEditable –>

<link href="main.css" rel="stylesheet" type="text/css" />

</head>


<body>

<table width="100%" border="0">

<tr>

<td width="38%">&nbsp;</td>

<td width="22%">&nbsp;</td>

<td width="40%">Logged in:<!– TemplateBeginEditable name="EditRegion4" –>EditRegion4<!– TemplateEndEditable –></td>

</tr>

<tr>

<td colspan="3" bgcolor="#6699CC"><span class="headertxt">Project Management Software -Administration </span></td>

</tr>

<tr>

<td colspan="3"><!– TemplateBeginEditable name="EditRegion3" –>&nbsp;<!– TemplateEndEditable –></td>

</tr>

<tr>

<td colspan="3"><!– TemplateBeginEditable name="EditRegion5" –>EditRegion5<!– TemplateEndEditable –></td>

</tr>

<tr>

<td colspan="3" class="cright"><div align="right">copyright &copy; 2007 PM </div></td>

</tr>

</table>

</body>

</html>


The other two templates are:

PM_Main.dwt.php - Main section template

userauth.dwt.php - user authentication section template.

All of the templates have three editable regions. One allows space for the logged in user name to be displayed (as well as a logout hyperlink) while the two other sections show the navigation and main application features.

{mospagebreak title=Style Sheets}

Accompanying these templates are three Cascading Style Sheets:

adminstyle.css - As you’ve guessed, this one contains the styling for the admin section:


/* CSS Document */


body,html {

font-family:Verdana, Arial, Helvetica, sans-serif;

font-size:12px;

}


.headertxt{

font-size:24px;

color:#FFFFFF;

}


.cright{

font-size:10px;}

/*Form stuff*/

INPUT.login {

 

background-color: #FFFFFF;

border:1px solid #333300 ;

font-family: Tahoma, Arial, Verdana;

font-size: 11px;

color: #333333;

 

}

.formborder{

border:1px double #333300;

background:#CCCCCC;}

.loginheader{

font-size:18px;

font-weight:800;

color:#6699CC;

/*border:1px solid #FFFFFF;*/}

.errmsg{

color:#6699CC;

font-size:16px;

font-weight:800;}



.input40 {

border: 1px solid #999999;

font-family: Tahoma, Arial, Verdana;

font-size: 11px;

color: #333333;

background-color: #FFFFFF;

padding-left: 4px;

padding-right: 4px;

width:250px;

height: 20px;

}

/*end form stuff*/



.logoutnavblock{

background:#CCCCCC;

border:1px ridge #FFFFFF;

color:#6699CC;}

.tooltip {

color: #006699;

font-style: italic;

font-size: 10px;

}


The other two styling sheets are:

main.css - contains styles for the main application section

loginstyle.css - contains styling for the user authentication section.


Database Tables


There are four database tables available for the application:

users – contains user log-in information

projects – contains project information

staff – contains staff information

tasks – contains information about tasks for each project

-DOWNLOAD SOURCE-


Conclusion

In this article we discussed the various sections and components that make up the project management application. In the next article we will look at the user authentication section of the application where we will discuss the code that makes up this section in detail.

[gp-comments width="770" linklove="off" ]

chat sex hikayeleri