report-2.doc.doc

32
A FLEXIBLE, OPEN-SOURCE TIME/TASK MANAGEMENT SYSTEM For Small to Medium Sized Business Applications By Shrihari Thathineni Master’s Project Department of Computer Science Old Dominion University Project completed under the Supervision of 1

Upload: samuel90

Post on 10-May-2015

547 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: report-2.doc.doc

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

Page 2: report-2.doc.doc

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

Page 3: report-2.doc.doc

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

Page 4: report-2.doc.doc

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

Page 5: report-2.doc.doc

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

Page 6: report-2.doc.doc

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

Page 7: report-2.doc.doc

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

Page 8: report-2.doc.doc

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

Page 9: report-2.doc.doc

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

Page 10: report-2.doc.doc

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

Page 11: report-2.doc.doc

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

Page 12: report-2.doc.doc

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

Page 13: report-2.doc.doc

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

Page 14: report-2.doc.doc

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

Page 15: report-2.doc.doc

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

Page 16: report-2.doc.doc

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

Page 17: report-2.doc.doc

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

Page 18: report-2.doc.doc

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

Page 19: report-2.doc.doc

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

Page 20: report-2.doc.doc

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

Page 21: report-2.doc.doc

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

Page 22: report-2.doc.doc

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

Page 23: report-2.doc.doc

23