report-2.doc.doc
TRANSCRIPT
A FLEXIBLE, OPEN-SOURCETIME/TASK MANAGEMENT SYSTEM
For Small to Medium Sized Business Applications
ByShrihari Thathineni
Master’s Project Department of Computer Science
Old Dominion University
Project completed under theSupervision of
Stewart Shen, Ph.D.and
Jay Morris, MSME
1
Abstract:
There are a number or proprietary software packages currently available (such as
TimeClockPlus ™ Atlas Timesheet ™, and even Microsoft® Project 2003 that provide business
managers and employees time and task communications such as task assignment, time on task
recording, overtime, and billing information. This application provides all the basic functionality of
those packages plus it allows administrators to add new users to the organization, delete unused
user accounts, assign initial employee passwords, create employee job profiles, edit existing
employee job profile, and view individual employee work hours all through the web. Employees can
fill out time sheets on a daily or weekly basis, provide comments describing work performed
associated with time and expense entry, manage overtime, update their billing address and
contact information, change their password, and even apply for leave time. This application is a
flexible base for future time sheet management applications that can have additional features for
generating reports.
This is a cost effective application for small organizations since the development and
implementation environments are open source. The application is both easily installed and
customizable with only minimal changes to the source code.
Objective:
This project provides a web based time and billing system that eliminates manual
automates time tracking, reduceseliminates payroll imprecision by providing direct employee input
of buget information, improves reporting and reduces administrative overhead.
Manual or spreadsheet-based time management and reporting creates an administrative
nightmare, lack of real-time communication, and constant after the fact corrections and
2
adjustments constitute the largest corporate expenditure today. Current industry standard
employee time management, is often performed using a combination of manual and decentralized
processes or multiple disconnected information systems that can lead to substantial inefficiencies
and a lack of effective internal controls .This application will be helpful in reducing these problems
and improving organization efficiency and thus reducing business operating overhead.
3. Comprehensive Description
Background:
During the fall of 2004, while working as an intern for a startup software development
firm we had to fill the daily working hours in the log sheets which were then entered manually for
the pay roll purposes and record keeping. This task itself needed two additional persons added to
the regular implementation group. Why shouldn’t we implement a system that will be easy to install,
configure and user friendly to manage this task automatically? During a second internship with
another software firm, I came across a nice application that had all the features required for
administrator and employee time sheet management, but the software had a big cost factor
associated with it (approximately $100 Per user), and it required exposing organizational data to
the outside world. Additionally there are a number of free time sheet applications that are available
in the web .These applications have numerous constraints like the number of users, the volume of
data, performance issues and the subscription fees (even though the software is free, utilization is
not However, all ) of the “free timesheet applications” examined (timesheet, Time_Assistant, data-
basics, and web-based-software were only free for a limited period of time and then only for up to 5
employees. Subscription rates were only available by request.).
In a rapidly expanding organization, the scalability of the human resource
management applications is very important . All the above mentioned factors, resulted in the
3
implementation of this project.
Problems to be solved:
The ideal time/task management application should:
Be scalable to accommodate the increasing number of employees without need to
upgrade or replacing with new versions.
Have reasonable performance with the increasing volume of data.
Have fewer restrictions based on the back-end database management system to be
integrated with the application for data storage and retrieval.
Be Operating System - Platform independent.
Be easy to install and configure.
Have a user-friendly interface and ease of navigation.
Be open source , so that based on organization needs more futures can be added .
Technologies Used:
This project utilizes technologies including Java Servlets, Java Script, Jakarta Tomcat 4.1.27
server, MYSQL 4.0.16 Server and HTML.
1.Server Side language : Java Servlets
2.Client Side scripting : Java Script
3.Back end database : MySQL.
4.Database abstraction layer : JDBC
5.Other : HTML
Steps for navigation :
For administrator :
Login using administrator username (admin) and password.
4
Will have the option of creating new employee user name and password, employee
personal profile involving details like contact address, phone, email , employee office
Includingvolving details such as: like Supervisor name, project details, project location,
office location,
Employee status.
Administrator will also hasve the option of editing the employee personal and office profile.
For employee:
Login using username and password.Initial password will be created by the administrator.
After login, the employee will have the various options.
Will have the option for changing password. For this option first enter the old password and
then the new password.
Will have the option of editing his personal profile. The initial personal profile will be
created by the admin when creating the employee profile.
Will have the option of submitting the daily work hour details. These details will be stored
in the back end database.
Will have the option of viewing bi-weekly time sheet based on the working hours already
submitted.
Will have the option of submitting athe leave request. This request will be processed based
on the administrator’s decision.
Steps for installation:
1. Install Jakarta Tomcat Server.Set the path to the folder where the servlet class files will be
placed.
5
create the folder with the corresponding path, the default settings being:
/home/jakarta-tomcat/webapps/myapp/WEBINF/classes/
2. Edit .cshrc file to configure the port number for the server.
3.Edit web.xml in the WEBINF folder to include the servlet classes .
The lines in the web.xml will be similar to :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping><servlet><servlet-name>officeprofile</servlet-name><servlet-class>msproject.officeprofile</servlet-class></servlet>
<servlet><servlet-name>editofficeprofile</servlet-name><servlet-class>msproject.editofficeprofile</servlet-class></servlet>
<servlet><servlet-name>redirectadmin</servlet-name><servlet-class>msproject.redirectadmin</servlet-class></servlet>
<servlet><servlet-name>redirectadmin1</servlet-name><servlet-class>msproject.redirectadmin1</servlet-class></servlet>
<servlet><servlet-name>Vnewproadmin</servlet-name><servlet-class>msproject.Vnewproadmin</servlet-class></servlet>
<servlet>
6
4.Install MySQL and set the path in .cshrc file.
5.Edit the port number for MySQL server.
6.To start the Tomcat server, change to the bin directory within the Tomcat installation directory.
Enter the command : startup.sh.
7.To start MySQL server , change to MySQL installation directory and enter the following
command:
./bin/mysqld_safe &
8.Tomake sure the Tomcat server and MySQL server are running execute the following command :
ps -u USERNAME.
This will show the process ID for the servers .
9.Copy the servlet files to the following directory path :
/home/jakarta-tomcat/webapps/myapp/WEBINF/classes/
10.Execute the command :
javac *.java
to compile the servlet classes.
11.Create the required database tables using the script mentioned.
Database creation script :
create table AUTH(UserName varchar(15) primary key,Password varchar(20),Role varchar(20));
create table EMP_PROFILE(EmpID varchar(15) primary key,ProjID varchar(20),DID varchar(20),SupID varchar(15),OLoc varchar(25),PLoc varchar(25),EType varchar(30),WeekHrs integer(3),HrsRate integer(3),AnnualPay integer(8));
7
create table EMP_DETAILS(EmpDetID varchar(15) primary key,FName varchar(20),LName varchar(30),Addr varchar(50),City varchar(25),State varchar(25),Zip varchar(10),Coun varchar(10),PhNo varchar(18),Cell varchar(18),email varchar(40));
create table TS_INFO(EID varchar(15) ,Jobnum varchar(20) not null,Costcode varchar(20) not null,Remarks varchar(50));
create table DATE_INFO(PNo integer(6),Date date ,ActualHrs integer(3),OTHrs integer(40),Comments varchar(100) ,Jnum varchar(20),DAID varchar(15) );
create table PAY_PERIOD_INFO(PPNo integer(6) PPBeg date not null, primary key, PPEnd date not null ,primary key,PPHrs varchar(5),PayDay date,Holiday date);
create table EMP_PP_STATUS(PAYNO integer(6) not null,SEID varchar(15) not null ,STATUS varchar(15) not null );
8
The above described steps are common for Windows,Unix and Linux Platforms.
Based on the version of the MySQL database ,
JDBC connection string and connectors will be varying.
For example, in the version used for the Unix OS ,the JDBC module will be like this :
// url points to the remote mysql database
String url = "jdbc:mysql://dilbert.cs.odu.edu:20007/project";
// Username and Password that has access to remote database.
String uname = "datab1";
String pwd = "datab1";
try
{
String sid=request.getParameter("sid");
String sname=request.getParameter("sname");
// Loading the MySQL JDBC Driver
// Class.forName("com.mysql.jdbc.Driver").newInstance();
// or
Class.forName("org.gjt.mm.mysql.Driver");
} catch(Exception e)
{
out.println(e.getMessage());
}
Based on the version of the MYSQL database and the Operating System Platform connectors will
vary.
9
Sample Employee session: (the following are actual screen shots of the running
application)
1. t he user signs in via favorite browser.
2. The Welcome page provides a simple user menu
10
3. The View/Edit Profile option shows the basic contact information for the user
currently logged in, and provides the opportunity to change any or all of the
information on file.
4. The Employee Office Profile information is available via the scroll bar.
11
5. By clicking on the edit button a simple box entry form is provided.
6. By clicking on the TimeSheet option, the users can choose either Daily Hours
(details) or bi-weekly summary.
12
7. The Daily Time Sheet page allows the employee to provide instantaneous feedback
about number of hours worked and provides an opportunity for comments or
additional information to be provided to the administrator.
13
8. Bi-weekly details include various options such as vacation/sick days, and various
job cost references (useful for budget or financial officers.)
9. The Change Password option allows the user to modify their default (administrator)
provided password requiring the entering of the current password before allowing a
new one to be set.
10. A very simple leave request option allows the user to enter the date desired and the
14
reason for the absence.
Sample Administrator session: (the following are actual screen shots the the running
application)
1. The administrator login page
2. The administrator is then prompted to add new users/employees.
15
3. If that user already exists then an appropriate message is displayed and the
administrator is prompted to provide the information again.
4. When new information is provided a successful registration notice is displayed.
16
5. The administrator is provided with a simple box entry form for data entry.
6. Once the employee profile is entered then the administrator is provided with the
17
option of either continuing to create new employees or creating employee office
profiles at this time. The administrator may log out and return to this option later.
7. The employee office profile option brings up a box entry form for that information.
8. Scroll bar continues data entry options.
18
9. The Employee Office Profile option gives the same capability to the administrator as
the employee has with regard to personal information.
10. In editing the employee profile, the administrator is provided with box entry for
19
supervisory, budgetary, and location assignments as well as wage/salary
information.
Common errors and their respective fixes:
The following are some common errors with their respective fixes:
Misconfigured ~/.my.cnf.
If only the first numeric line appears (you do not seesee a "Starting mysqld daemon..."
message) when you execute ./bin/mysqld_safe &, you probably entered at least one
incorrect path in your .my.cnf file. Go back and check your .my.cnf entries against your
path information. You can find your home directory path by typing echo ~ or echo $HOME
in the Web Development environment.
Port in use.
If the MySQL server starts but then reports msqld daemon ended, you probably picked a
port in step 9 already in use by someone else. The error message in somehost.err will look
like this:
20
mysqld started on Thu Apr 24 14:56:42 PDT 2002
020424 14:56:43 Can't start server: Bind on TCP/IP port: Address already in use
020424 14:56:43 Do you already have another mysqld server running on port: 3306 ?
020424 14:56:43 Aborting
To fix this, go back and enter another port number in your .my.cnf file.
Incorrect socket path.
You may see a message in somehost.err similar to the following:
mysqld started on Sat Aug 2 09:15:02 PDT 2002
020802 9:15:02 Can't start server : Bind on unix socket: No such file or directory
020802 9:15:02 Do you already have another mysqld server running on socket:
/hw13/d06/accountname/mysql.sock ?
020802 9:15:02 Aborting
In this case, you have incorrectly specified the path to mysql.sock in your home directory.
Solution to defined problems :
1.By using the MYSQL database , the constraint based on the scalabality of the application based
on the increasing number of the employees can be handled.
2.There is no decrease in performance in database querying with the increasing volume of data .
3.If other data base management systems (DBMS) like ORACLE, SQL, Postgre SQL and
Teradata are already available in the organization, then with the modification in the JDBC
connector , this application can be integrated with the available DBMS with minor changes without
need for any change in the base code.
4. The application development environment is open source, so based on the needs of the
organization more features can be added to the existing application with no additional costs
21
involved in the development and deployment environment.
Future Work :
In developing this application the perspective of the user was of primary concern. Additional
features such as providing a option of exporting the time sheet data from MySQL to other Data
Base Management Systems and even to various spread sheet formats such as excel™ are
obvious enhancement options. We were constrained in terms of the Tomcat and MySQL server
performance . Providing dedicated servers for these packages will add to the availability,
reliability, and real time performance of the application.
References :
1) dev.mysql.com/doc/mysql/en/installing.html
2) http://www.devshed.com/c/a/MySQL/Troubleshooting- Problems-with-MySQL-Programs/
3) http://jakarta.apache.org/tomcat/connectors-doc/
4) http://jakarta.apache.org/tomcat/tomcat-4.1-doc/index.html
5) http://wand.pro-unlimited.com
22
23