Open Source Time Tracking System Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

This is the software design and specification document which is highlighting the design consideration of our project Open Source Time Tracking System. It is a system which is implementing the functionalities of web-based time tracking system "WR Time Tracker" with MS Project, email and IDE integration.

The intended audience of this document are the software company 'Valista', the project supervisor, the course coordinator and the project team members who will play at least one or many roles such as requirement engineer, software process engineer, software developer, project manager, software architect, quality assurance engineer and technical writer

The "Open Source Time Tracking System" is a cross platform tool that is implementing the functionalities of web based time tracker "WR Time Tracker" with MS Project, email and IDE integration. The "Open Source Time Tracker" is not just replacement of "WR Time Tracker". The tool is capable of parsing MS Project file and extracting the project task details according to the user.

Apart from the main implementation of time tracker the system has plug-ins for Mozilla thunderbird, eclipse IDE and IntelliJ IDEA to capture the time involvement of user in each of above tools.

As this is a cross platform system, all the implementations are done with java programming language.

This "Open Source Time Tracker" is using two types of database, one XML database for saving the local user's current work status and one MySQL database for saving all the details.

2

3. Design consideration

Design Documentation

Open Source Time Tracking System

3.1. Assumption and dependencies

Hardware requirements: Enough memory and processing power for run java VM Software requirements: MySQL database, WR Time tracker server

Operating system: This system should be work with both Windows and UNIX

operating systems environment.

3.2. Scope of the project

The scope of this project is to develop a cross platform desktop client application similar to Google desktop in look, to capture the time involvement in each task by every employee. It will be easy to capture the worked time of employees and can be easy to maintain good time management.

3.3. Development methods

We have used the "Agile software development" to implement this project. Short time boxes are used for mini iterations and the progress verified. The development team meets frequently to discuss about the progress of the project and constant feedback from the users are obtained

wherever and whenever possible.

3

4. System Architecture

Design Documentation

Open Source Time Tracking System

4.1. Abstract System View

PRESENTATION LAYER

GUI LOGIN MANAGER PROFILE MANAGER PROJECT MANAGER

PLUG-INS

ACTIVITY MANAGER

APPLICATION LAYER

XML PARSER

REPORT GENERATOR

INVOICE GENERATOR

DATA ACCESS LAYER

DATABASE MANAGER

Figure 1[Abstract System View]

4

Design Documentation

Open Source Time Tracking System

The system is designed on the conventional three layered architecture composed of the Presentation Layer which contains all the logic related to the user interface and profile options, the Application Layer which contains all the logic related to "WR Time Tracking System", and the Data Access Layer which handles all the interactions the application has with the database.

4.1.1. Presentation Layer

GUI

System has common GUI with different views for managers, co-managers and normal users. When the user logs in to system, the login manager selects the appropriate view of the user according to their user level.

LOGIN MANAGER

The login manager handles all the login related processes such as authentication. PROFILE MANAGER

The profile manager is responsible for selecting the appropriate view of the user according to the user level.

PROJECT MANAGER

The project manager is responsible for creating new projects, editing existing projects deleting finished projects and assign new users for projects.

ACTIVITY MANAGER

The activity manager is responsible for creating new activities, edit existing activities delete finished activities.

PULG-INS

Plug-ins is used to record the time involvement of users of projects without leaving the IDEs.

5

Design Documentation

Open Source Time Tracking System

4.1.2. Application Layer

The application layer has all the logic of the system. Every activity of presentation layer has to go through the application layer.

XML PARSER

The xml parser is responsible for extract the project details and updates them into the database. The xml file will be uploaded in a shared folder by the particular project manager.

REPORT GENERATER

Report generator is handling the report generation process and sending the generated reports to managers via mail.

INVOICE GENERATOR

Invoice generator is responsible for generate invoices for billing purposes.

4.1.3. Data Access Layer

DATABASE MANAGER

The database manager is providing interfaces to higher layers to read and write data from the database and to the database.

6

5. Detailed System Design

Design Documentation

Open Source Time Tracking System

5.1. Use Case View

5.1.1. User level use case diagram

The following diagram shows the use case diagram of user level. User levels are,

1. Administrator

2. Manager

3. Co - Manager

4. Developer

Figure 2[Use case for user level]

7

Design Documentation

Open Source Time Tracking System

5.1.2. Use case diagram of manager

Manager

Manager supervises a team of users and co-managers by having full access to team data by playing the most important role in Time Tracker application. Time Tracker can handle multiple teams. Team manager controls only one team.

Figure 3[use case for manager]

8

Design Documentation

Open Source Time Tracking System

The following activities can be done by manager,

• Project Management

Manager can create projects for his team including editing and deleting the projects that are already created. For a particular project, he can create task and assign users (developers) to that facilitating the editing and deleting for both created tasks and assigned user.

• Create co-manager account

In case of team is too big to manage or handle, the manager will create co-manager accounts dividing the team into sub teams. Then the co -managers will be responsible for managing those sub teams.

• Manage team data

Manager will be managing the data from co-managers as well as data from sub group team members.

• Create reports

Manager can generate reports for the entire team as well as for individual members. Individual users also can create their own reports.

• Generate Invoices

The manager also can generate invoices for co-managers as well as users according to the hourly rate if their tasks are billable.

Co-manager:

Co-manager performs some of manager's tasks such as working with users, projects, activities, generating reports, and invoices.

9

Design Documentation

Open Source Time Tracking System

5.1.3. Use case diagram for normal users

Users will be using the time tracker system to enter their work times. He can log into the Time tracking system by entering username and password. Then he can start capturing time at the beginning of task involvement and stop the time capturing after finishing his tasks to submit the time involvement related to that task. Users can generate reports for themselves to view the progress and check their task status. Also he can reset password in order to receive a new password to his mail account.

Figure 4[use case for user]

10

5.2. Activity Diagrams

5.2.1. Activity Diagram for Administrator:

Design Documentation

Open Source Time Tracking System

The administrator of this time tracker will be had following these activities below in the activity diagram. She/he has authority to create the team managers, edit created team managers and

import teams' data. And also they can customize the both dynamic and static database fields.

Login to the system

[If required]

Create team managers

Customize dynamic database fields

Delete created team managers Edit/Modify created team managers

Import teams data

Send modifications to particular managers

Logout the system

Figure 5[Activity diagram for Admin]

11

Design Documentation

Open Source Time Tracking System

5.2.2. Activity diagram for Managers:

One of the key roles of this system is managers. They will organize the team activities by creating project, create activity/task, assign users, generate reports and upload the project file into the shared folder. If the team is large then managers can create co-managers and allow

them to manage the team with same permissions which are having by managers.

Login to the system

Access team data

Manage Project

Generate Reports

Manage own teams

[If Managable Team]

Create project

Edit project

Delete project

[If large Team]

Create Co-Managers

Select Activity Create Activity

Send Emails

Supervise Activity

Assign Users

Upload Project file in shared folder

Logout the system

Figure 6[Activity diagram for manager]

12

Design Documentation

Open Source Time Tracking System

5.2.3. Activity Diagram for normal users:

Normal user will be using the time tracker system to enter their work times. The normal user will be doing the following tasks.

• Login time tracker:

Perform the authentication

• Start and stop timer:

User enters the time spend on each activity by clicking start and stop buttons of relevant activity.

• Logout time tracker:

Logout the current employee

13

Design Documentation

Open Source Time Tracking System

Login By EmailID & Password

Check Validation

Error Message

[If Fails]

[If Success]

User Interface

Select Particular Task

Start Timer

Processing Task

Calculating time Do the selected task after start the time.

Stop Timer

[If requested]

Send Report to Manager

Log Out the interface

Figure 7[Activity diagram for user]

14

Design Documentation

Open Source Time Tracking System

5.2.4. Activity Diagram for Project files Extraction:

[IfSuccess]

The users will parse an MS project file that is saved in shared folder by the project managers and extracts tasks assigned to a given resource on the user interface. Extraction will be happen on the user interface by using his login name and password. The project manager will be getting mail alerts when the tasks are updated. And he will provide emails when he will upload the project files to the shared

folder.

ProjectManagers

UploadProjectfileinsharedfolder

Edit tasks inprojectfile

Save editedtasks

SendEmails

Users

Loginwith EmailID&Password

ExtractProjectfile

DisplayError Message

[Iffail]

DisplayExtractionSuccessful

Updateinthedatabase

View thetaskdetails

Figure 8[Activity diagram for file extraction]

15

5.3. Class Diagrams

Design Documentation

Open Source Time Tracking System

The following diagram shows the basic classes and relationships between the classes.

16

Design Documentation

Open Source Time Tracking System

TimeTrackerMain

-TimeTrackerJFrame frame : object

-ActJPanel actpanel : object

-PeopleJPanel ppl : object

-ProjectJPanel proj : object

+loadApplication()

+loadPlugin()

+initiateComponents()

+setGUIProperty()

+invokeLoad()

User

#Name : String

#email : String

#Password : String

+systemLogin()

+generateReport()

+resetPassword()

Session

-user_name : String

-user_level : short

+createUserSession()

+initateSession()

+closeUserSession()

Manager

Co_Manager

Administrator

Developers

XmlParse

+createCoManager()

+assignUser()

+createProject()

+deleteProject()

+editProject()

+createProject()

+editProject()

+deleteProject()

+assignUser()

+createActivity()

+createTeam()

+importteamData()

+startTimeTracker()

+setProgress()

+stopTimeTracker()

-FileStream file : object

-StreamReader reader : object

+createActivity()

+generateInvoice() 1 *

*

-fileLocation : String

-StreamWriter write : object

+getLocation()

+seperateTokens()

+formatOutput()

+exportToInterface()

1

0..*

1 0..*

MozillaPluginClass

-

Mail

-Title : String

0..*

+checkLogin()

+createSession()

+connetEmailServer()

+callAPI()

+startTimeTracking()

+stopTimeTracking()

+getTotalTime()

-Sender : String

-Reciever : String

+getFinishTime()

+getProgressDetails()

+createBody()

+setMailServer()

+selectReciever()

*

Report

-repName : String

-repTitle : String

-repUser : String

+setProject()

+setActivity()

+setUser()

+setTimePeriod()

+setFieldValues()

+setGroupBy()

+isBillable() : bool

+setReportType()

+checkuserLevel()

XmlReport

CSVRepor

+convertToXml()

+exportToExel()

Figure 9[Class diagram of system]

17

5.4. Component Diagram

Design Documentation

Open Source Time Tracking System

The following diagram shows the components of "Open Source Time Tracking System" and the

interaction between the components.

Figure 10[component diagram of system]

18

5.5. Sequence Diagrams

Design Documentation

Open Source Time Tracking System

5.5.1. Sequence Diagram for Administrator and Managers

After successfully login to his/her user account, manager can create a new team or can import a team already created which is form of xml file. Addition to that manager can be added new country to the database and can edit or deactivate the country which is already inserted into database.

Manager can be created the co-manager, normal users such as developers and clients using his/her user privileges. And also can delete them or edit their profile. Then manager will create the projects and activities for the projects. Later he/she can be edited or deleted the projects or activities which those

are created earlier. The manager can generate the report according to his requirements.

Figure 11[sequence diagram of admin/manager]

19

Design Documentation

Open Source Time Tracking System

5.5.2. Sequence Diagram for users

After successfully login to his/her user account, each and every user can see the projects and the activities which those are created by manager for all users. But particular activity which is related to particular user will be able to access. And he/she can only view others' activities, Can't be accessed. When user starts to do the activity, timer will start to count the time. Then finish the activity timer will stop the counting the time for the particular activity involved by the user.

And users also can be generated the reports. To generate the report they will have to select the project, activity and time periods.

Figure 12[activity diagram of user]

20

Design Documentation

Open Source Time Tracking System

5.5.3. Sequence Diagram for overall system

After the finishing the activities by users they will save it in xml database which is in the local host. Later they will update it to the server and server will save or update the database using those details passed

by the server. Same as retrieve also will be done.

Figure 13[activity diagram of system]

21

5.6. Database Design

Design Documentation

Open Source Time Tracking System

Figure 14[database diagram of system]

22

Design Documentation

Open Source Time Tracking System

Figure 15[database diagram of system]

23

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.