100 lines
6.3 KiB
ReStructuredText
100 lines
6.3 KiB
ReStructuredText
================
|
|
Documentation
|
|
================
|
|
|
|
.. contents::
|
|
|
|
Requirements
|
|
----------------------------------
|
|
Funtional:
|
|
- A user name and password auth
|
|
- Encrypted sensitive data
|
|
- The employee need to have their full name captured
|
|
- The last name must tolerate being null
|
|
- An email will be needed for the employee
|
|
- The email format must be formated
|
|
- Employees will need a phone number
|
|
- Searching employees despite the encryption
|
|
- Employees must have a unique code to reference them
|
|
- Being able to modify the name, email and phone values of already existing employees
|
|
- Having the values for the different payments parametrized
|
|
- Allowing for employees to perform other roles during their work day
|
|
- Only for the auxiliary personnel
|
|
- Taking into account only the current month for the salary
|
|
- Reducing the taxes for the salary
|
|
- If it goes beyond the threshold a different percentage is paid in taxes
|
|
- The way the extra tax is handled should be parametrized
|
|
|
|
|
|
Funtional:
|
|
- Session management
|
|
- Data integrity
|
|
- Data security
|
|
- Accessible through web
|
|
- Containerized
|
|
|
|
Software behaivor
|
|
-----------------
|
|
In:
|
|
- Employee details
|
|
- First name
|
|
- Middle name
|
|
- Last name
|
|
- Birth date
|
|
- Email
|
|
- Phone number
|
|
- Work per day
|
|
- Number of deliveries
|
|
- Rol performed
|
|
Process:
|
|
- Register a new employee
|
|
- Modify employee
|
|
- Search employee
|
|
- Add new work day for employee
|
|
- Calculate monthly payment for employee
|
|
|
|
Out:
|
|
- Upon registering
|
|
- Employee code
|
|
- In the work days registry
|
|
- Raw salary for the the month
|
|
- Taxes discounted
|
|
- Real salary for the month
|
|
- Vouchers (if applicable)
|
|
|
|
Calculating the monthly salary
|
|
--------------------------------
|
|
.. image:: https://raw.githubusercontent.com/PootisPenserHere/payroll_manager/master/documentation/calculatingSalary.bmp
|
|
|
|
Tests cases
|
|
-----------------
|
|
+----+----------------------------------------------------------------------------------------------+---------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
|
|
| Id | Description | Input | Expected output |
|
|
+----+----------------------------------------------------------------------------------------------+---------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
|
|
| 1 | Displaying current salary for the outgoing month | Selecting an employee from the search field | On the right side of the window a break down of the employee's salary for the month will be displayed |
|
|
+----+----------------------------------------------------------------------------------------------+---------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
|
|
| 2 | Submitting incomplete form | All of the input but one of the fields | An error shown in a red modal describing the missing field |
|
|
+----+----------------------------------------------------------------------------------------------+---------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
|
|
| 3 | Altering the sent data to change the performed rol to one that can't be done by the employee | A employee other than aux performing a different rol than their own | An error displaying that the employee can't perform that task |
|
|
+----+----------------------------------------------------------------------------------------------+---------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
|
|
|
|
Executed tests
|
|
---------------
|
|
+----+----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
|
|
| Id | Description | Result | What went wrong? |
|
|
+----+----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
|
|
| 1 | Displaying current salary for the outgoing month | When the employee was selected the current salary was loaded succesfully | |
|
|
+----+----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
|
|
| 2 | Submitting incomplete form | Got the error "The number of deliveries cannot be empty or 0" | |
|
|
+----+----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
|
|
| 3 | Altering the sent data to change the performed rol to one that can't be done by the employee | Got the error "The selected rol can't be done by this type of employee" | |
|
|
+----+----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+
|
|
|
|
Tools
|
|
----------------------------------
|
|
The following tools and software were used:
|
|
- phpstorm
|
|
- git
|
|
- docker && docker-compose
|
|
- Ubuntu 16
|