Open source time tracking system


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, emailandIDEintegration.


Prerequisites for this document are the Project Proposal and Software Requirements Specifications

System Overview

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 a 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 storing the local user's current work status and one MySQL database for storing all the details.

Design consideration

Assumption and dependencies

Hardware requirements: Enough memory and processing power to 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.

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

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 team meets frequently to discuss the progress of the project and constant feedback is obtained.

System Architecture

Abstract System View

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 Data Access Layer which handles all the interactions the application has with the database.

Presentation Layer


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.


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


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


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


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


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

Application Layer

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


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 generator is handling the report generation process and sending the generated reports to managers via mail.


Invoice generator is responsible for generate invoices for billing purposes.

Data Access Layer


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

Detailed System Design

Use Case View

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

Use case diagram of 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.

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 performs some of manager's tasks such as working with users, projects, activities, generating reports, and invoices.

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.

Activity Diagrams

Activity Diagram for Administrator:

The administrator of this time tracker will have the following activities depicted 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.

[If required]

  • Login to the system
  • Customize dynamic database fields
  • Create team managers
  • Delete created team managers
  • Edit/Modify created team managers
  • Send modifications to particular managers
  • Import teams data
  • Logout the system

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.

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

Activity Diagram for Project files Extraction:

The users will parse an MS project file that is saved in a shared folder by the project managers and extracts tasks assigned to a given resource on the user interface. Extraction will 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.


-TimeTrackerJFrame frame : object -ActJPanel actpanel : object -PeopleJPanel ppl : object -ProjectJPanel proj : object

+loadApplication() +loadPlugin() +initiateComponents() +setGUIProperty() +invokeLoad()


-FileStream file : object -StreamReader reader : object -fileLocation : String -StreamWriter write : object

+getLocation() +seperateTokens() +formatOutput() +exportToInterface()


+checkLogin() +createSession() +connetEmailServer() +callAPI() +startTimeTracking() +stopTimeTracking() +getTotalTime()

Sequence Diagrams

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 in the form of an XML file. In addition to that, manager can add new country to the database and can edit or deactivate the country which is already inserted into database.

Manager can create 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.

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 only be accessible. And he/she can only view others' activities, and they can't be accessed. When user starts to do the activity, timer will start to count the time and stop when the activity is completed by the user.

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

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.

Please be aware that the free essay that you were just reading was not written by us. This essay, and all of the others available to view on the website, were provided to us by students in exchange for services that we offer. This relationship helps our students to get an even better deal while also contributing to the biggest free essay resource in the UK!