This application assists users to clock-in/out as a timesheet registy and allows managers to keep track of working schedules.
For better security and data breach prevention the architecture was built with intent for use on a local server environment.
In a company with multiple roles (ex. Manager, Accountant, Employee, etc) different data is generated and available for changes based on each role. With that in consideration, the following scope were kept in mind during development:
AS an employee user, I WANT to have my work hours be tracked so that I can get paid accurately:
- So WHEN the application loads, a login screen is displayed
- WHEN I login a clock is displayed upon authentication, to record time of shift start/end
- THEN WHEN I click/punch CLOCK IN the clock counter starts
- WHEN I click/punch CLOCK OUT the counter stops and registers the current date, the start time and the end time
- THEN WHEN I click on DASHBOARD it displays a page with all my records up to date
AS a manager user, I WANT to oversee all employee routines to ensure accurate time records and work efficiency:
- SO WHEN I login, the manager account is authenticated and displays a DASHBOARD with employees ID, NAME and HOURLY WAGES
- THEN I am able to click ADD AN EMPLOYEE to create a new employee in my DATABASE
- OR I can click one of the existing employees to get access to their entire timesheet report
- WHEN I click an employee record, THEN I can also edit this employee’s base information and timesheet
- Node.js
- Express.js
- Handlebars.js
- Day.js
- Bootstrap
- MySQL
- Sequalize ORM
- Heroku
To install this application clone
the repository, then cd
into the root PAY-DAY
folder and run:
npm i
Or use default answers by running the following command:
npm i -y
After the installation is complete do either one of the following options:
- Use case A:
- Deploy the application to
Heroku
and test it live
- Deploy the application to
- Use case B:
- Ensure your
MySQL
server is running by executingmysql -u root -p
from the command line - Use
mysql
commandSHOW DATABASES;
to ensure the databasepay_day_db
is created - Run
source db/schema.sql
from the CLI if you need to create thepay_day_db
database - Execute
node seeds/seed.js
to populate the database with pre-defined testing data - Run
npm start
to load the application - From the web browser navigate to
http://localhost:3001/
- Ensure your
- Use case C:
- If you do not want to download and install the application you can also navigate to: https://pay-day-schedule.herokuapp.com and run the currently deployed application.
Regardless of the USE CASE picked, when prompted to login
there are two pre-defined testing options to be used:
- Login as Manager:
- Username:
Manager_Example
- Password:
111111
- Username:
- Login as Employee:
- Username:
Employee_Example
- Password:
222222
- Username:
- Add ability to have an Accountant user
- Create feature to calculate and generate payroll reports by a set time range
Licensed under the MIT license.