Problem
A consulting company which focuses on advising companies on how best they can use technology in achieving their business goals. The consulting firm administrates and implements behalf of their clients. This company employees working on different projects with different clients. They work according to the requirements of the client project. The accountant collects the data of the employee like the working hours and the number of projects and the respective client company is noted down and calculated manually. The detailed invoice is sent to the client through email. The accountant might have made mistakes in entering the data or calculating the amount. This would result in a false report and could create problems.
The consulting company would like to have a software invoice that automatically generates a detailed report about the payment. This would replace the existing system and improve the accuracy in the present system.
Objectives
- Maintains a detailed record of the employees such as a total number of hours, type of project, job role, and hourly pay.
- Reduce human errors and automatic calculations are done without errors.
- Can generate an invoice and detailed report on employee payments.
- The automatically generated reports are flexible for the clients to pay to the employees.
- Flexible usability for the employees to enter their login and logout hours.
- Improves accuracy and timeliness, security.
Existing System:
In the existing system, we have employees working for different clients on different projects. The accountant calculates all the working hours of employees. But if he makes any mistake in data entry of calculating the hours then a wrong report about payment is sent to the client and it may over cost the client. The client again has to recheck everything and sent it back to the consultancy for re-evaluation or sometimes the employee does not get the correct pay. This helps to generate an invoice which is done manually.
The client has identified these problems:
- Generation of the Invoice is very slow and takes a long time to remit to the employee.
- The generation reports took even longer then invoice.
- Delay in all the reports due to manual work and there are possible human errors which may cost the client.
- Manual work is expensive
- Data loss can happen easily
- There is no way to find a duplicate entry of data.
Functional Requirements:
Maintain company information:
The manager maintains the company information in the system which has details about a company like its name, Address, City, State, Zip code.
Taking up the project:
The consulting company takes up the project from the client. They need to know every detail about the project.
Maintain project person information:
The company should maintain all the information about the project person such as project number, project name.
Maintain Employee information:
The company should maintain information about the employees working. It should provide details like Name, their title in the company and also the role they play in completing the project.
Maintain project data:
The company should have the proper information about the project such as client id which is provided by the company, project number, its name, start date, and end date, status, the name of the manager, name of the client, and budget for the project completion.
Maintain client data:
The company should the client details such as project id, the name of the client, address of the company, email id, contact information, invoice frequency, billing terms, invoice grouping.
Enter Time for Employee
- Input number of hours worked in a week
- Input overtime hours
Generate Invoice
Create an invoice based on the following criteria
- Input employee hours within the budget goal.
- Project data that contains the Client*, Project number, Project name, Start Date*, End Date*, Status, Project Manager and Budget*.
- There are employees who work overtime when needed.
Generate Reports
- Invoice Report
- Project Report
- Budget Report
- Payroll Report
Non-Functional Requirements
- Usability
- The system must be easy to use so that user can easily perform any actions.
- A User should be able to create an invoice without any difficulty in PDF format.
- A user should be able to do that inaccurate time.
- A user should be able to effectively operate the system with less than one hour of training.
- Availability
- The system must be highly reliable since, if the system is not available, the user can’t easily able to create an invoice.
- The system should be available 99.999% of the office open hours.
- Performance
- All the actions should be performed in accurate time.
- All the imports should be performed inaccurate time.
- Generation of Invoice should be performed inaccurate time.
- Generation of reports should be performed inaccurate time.
- Supportability
- The system should be developed in a common technology that the Accountants in the Consulting company should be able to use to make upgrades to the system
- The system should be documented and coded in a way that a developer that was not originally on the development team could determine how to make updates.
- Interface
- The system must support an interface with some users.
- The system must support a file exchange interface.
- The system interface should provide multiple accesses.
- Accountants, Project Manager, and Employees will operate and use this system.
- The system must be highly reliable since, if the system is not available, the user can’t easily able to create an invoice.
- The system must be easy to use so that user can easily perform any actions.
- Operations
- In-office personnel will use the system. These users are not trained computer operators.
- Legal
- The system should meet legal and OC security requirements for People data.
- No one should have access to specific People data.
- Copyright protected.
- Trade protected.
Target Environment
The system must normally function on a stand-alone Windows 10 based PC with 4G of memory and 200 GB hard drive.
Use Cases
This is a list of use cases identified for this system. The definition of each use case follows.
- Log in
- Log out
- Add employee
- Update employee
- Delete employee
- Add client
- Update client
- Add Client project
- Update Client project
- Start time for an employee
- The end time for an employee
- Enter time
- Make an employee report
- Add an employee
- Number of hours worked
- Which client
How many projects
Hourly pay
Method of payments by the client (monthly, weekly, bi-week, calendar)
- Cancel
- Save
Generate Reports
Client ID
Payment details
- Date
Description
Rate
Hourly pay
- Amount
- Payment terms
Invoice number
Billing frequency
Total amount due
System Authorization Use Cases
1 Log In
2 Log Out
Name | Log in |
Description | Grant user access as an authorized user |
Actor(s) | User |
Flow of Events | 1. A User wants to use the system.
2. The user selects to login 3. User enters credentials 4. System tests the credentials and grants access or shows an error. |
Special Requirements | Require credentials (username and password)
|
Pre- Conditions | The user has previously been set up as a user in the system |
Post- Conditions | The user is authorized to the system if requirements and exceptions are met. |
Exceptions | Credentials do not match what is in the system |
Name | Log out |
Description | Remove user access as an authorized user |
Actor(s) | User |
Flow of Events | 1. A User wants to end using the system.
2. The user selects to log out. 3. System logs out the users 4. The manager selects to save |
Special Requirements | Require store number and name
|
Pre- Conditions | The user is currently authorized to the system |
Post- Conditions | No user is currently authorized if requirements and exceptions are met. |
Exceptions | There must be a user authorized before a user can be logged out. |
Maintain Client details
Client data
Name | Client Data |
Description | The manager should maintain all details about the client such as name, id, billing information etc. |
Actor(s) | Manager |
Flow of Events |
1. The manager should enter all the details about the client.2. He should all the correct details of the client. 3. he should provide them with the payment details such as hourly payment rate, billing frequency.
|
Special Requirements | Should require unique id for every client
|
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | The manager will be able to enter all the details when he has accurate information from the client |
Exceptions | None |
Maintain Employee information
- Add employee
- Delete employee
- Update employee
Name | Add employee |
Description | The manager should add an employee to the system |
Actor(s) | Manager |
Flow of Events | 1. When there is any new employee, the manager should enter all the required details to add the employee to the system
2. The manager should have all the details about employee details 3. The manager enters information about the employee 4. The manager should save all the details |
Special Requirements | The employee should have a unique id
|
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | The manager will be able to add information to the system |
Exceptions | Do not add if the employee already exists in the system |
Name | Update employee |
Description | Update the information for an existing employee in the system. This happens when a correction is required. |
Actor(s) | Manager |
Flow of Events | 1. A change in employee information is detected.
2. The manager selects to update an employee. 3. The manager selects the employee to update. 3. The manager enters information about the employee. 4. The manager selects to save the employee. |
Special Requirements | Require employee id
|
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | Employee details will be updated when it meets all the requirements and expectations are met |
Exceptions | Do not add if the employee exists in the system |
Name | Delete employee |
Description | Delete the information for an existing employee in the system. This happens when an employee detail is entered in error. |
Actor(s) | Manager |
Flow of Events | 1. Employee details are identified that needs deletion.
2. The manager selects to delete an employee. 3. The manager selects the employee to delete. 4. Manager deletes an employee. |
Special Requirements | |
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | The employee is deleted from the system if requirements and exceptions are met. |
Exceptions |
|
Report maintenance
Name | Generate project report |
Description | |
Actor(s) | Manager |
Flow of Events | 1. The manager should be able to generate a report.
2. The manager should enter all details 3. He should give all the required details 4. The manager selects to save |
Special Requirements | Require to give every detail as accurate
|
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | The manager will be able to generate a report |
Exceptions |
Client Data
Name | Client Project Details |
Description | Report for project details for the client |
Actor(s) | Manager |
Flow of Events | 1. The manager should have all the details about the project
2. The manager selects the project by giving information like client id. 3. The manager enters the start date and end date 3. The manager enters information payment details 4. The manager selects to save all the details |
Special Requirements | Require unique client id |
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | The manager will be able to give a report regarding project details to the client |
Exceptions |
Client
Name | Add Client |
Description | Add the details about for the new client. |
Actor(s) | Manager |
Flow of Events | 1. The new client is identified that needs to be added.
2. The manager selects to add a new client. 3. The manager enters the details about the client. 4. The manager adds the client. |
Special Requirements | Need to give the accurate details. |
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | Client details will be updated when it meets all the requirements and expectations are met |
Exceptions | Do not add if the client exists in the system |
Name | Update Client |
Description | Update the details about for the new client. |
Actor(s) | Manager |
Flow of Events | 1. Client details have identified that need to be deleted.
2. The manager selects to update a client. 3. The manager selects the client to update. 4. Manager updates a client. |
Special Requirements | Need to give the accurate details. |
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | Client details will be updated when it meets all the requirements and expectations are met |
Exceptions |
Project:
Name | Add Project |
Description | Add the details about for the new project. |
Actor(s) | Manager |
Flow of Events | 1. The new project is identified that needs to be added.
2. The manager selects to add a new project. 3. The manager enters the details about the new project to be added. 4. The manager adds the project. |
Special Requirements | Need to give the accurate details. |
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | The manager will be able to give all the details when he has accurate information for the project. |
Exceptions |
Name | Update Project |
Description | Update the details about the project. |
Actor(s) | Manager |
Flow of Events | 1. The new project is identified that needs to be added.
2. The manager selects to add a new project. 3. The manager enters the details about the new project to be added. 4. The manager adds the project. |
Special Requirements | Need to give the accurate details. |
Pre- Conditions | The manager has been authorized to the system |
Post- Conditions | The manager will be able to give all the details when he has accurate information for the project. |
Exceptions |
Glossary
Term | Definition |
Company | A company which handles all the projects |
Manager | A manager is a person who he responsible for maintaining project details. |
Client | A client is a person who gives a project for the manufacturing company |
Employee | A person who works for a manufacturing company |
Billing information | Billing information which gives details about payment information to the client about the project. |
Project data | Project data is given which has all the details about the project such as name and id. |
Enter time | The employee enters the that he worked in the week |
Budget | The Project should not exceed the budget |
Payment remit | This is generated by invoice and paid to the employee |
Invoice | This is a report which shows all details about the employees and the number of hours worked. |
Project person | It describes the project who is related to the project who gives it to the company. |