You should have a root page to your program that is loaded with localhost:8080. All components of your program should be accessible from this page, and all pages should link to this root page though either buttons or hyperlinks.
You will have 2 roles (Owner and Employee). You should implement database security in your application (You do not need to implement a keystore into your security). You will need to keep track of users in your security tables. Create an Owner with a name “Jon” and a password “123” in your sec_users table that has a role of owner.
For an Employee you should track the following information.
- id (Auto generated)
- Employee Name
- Employee id (String)
- Hours worked on Sunday (double)
- Hours worked on Monday (double)
- Hours worked on Tuesday (double)
- Hours worked on Wednesday (double)
- Hours worked on Thursday (double)
- Hours worked on Friday (double)
- Hours worked on Saturday (double)
- Wage (double)
You may decide that more fields are needed, that is up for you to decide. If you decide you want to make use of an array for the work days, then you may do so.
When an Owner logs in, they are able to create a new Employee. Your program will calculate the weekly pay for an employee. The employee’s pay is calculated by their total hours worked multiplied by their wage. If an employee works more than 40 hours in a particular week, then any hours more than 40 are paid at 1.5 times the stated wage. An Owner will also be able to view all of the employees entered into the program. The view page should:
- List all of the employee object information for each employee
- Show the weekly total number of hours for each employee
- Show the weekly pay for each employee
- The sum of hours clocked for each day
- The average number of hours worked by employees
- Highlight the employees that worked more than 40 hours
- Edit and Delete for each employee
When an employee is created by the owner, it will create a new employee role with the username being the employee’s name, and a password being the employee id. When an employee logs in, they should be able to see only their information, as well as their total weekly hours and their weekly salary.
Create 10 employees in your schema.sql to test out your program. You will need to make matching users in your sec_user table to match your dummy records.
Due November 25, 2021 at 11:59pm
Now that we have reviewed what will be in the assignment, you are going to create a wireframe diagram for your assignment.
Ensure that your wireframe diagram includes arrows or descriptions of how your pages link together and navigation.
You will have to indicate in your wireframe diagram how pages will change based on what role you are logged in as.
You will have to indicate in your wireframe diagram what pages are accessible based on what role you are logged in as.
You can create your wireframe diagram in paint, or any other tool you wish. Your submission must be either a PNG or a PDF.
Late submissions will receive a grade deduction.
Front End Design
I expect well created HTML pages using CSS and scripts that will make your project stand out. This will represent a significant portion of your project. You should have several pages as part of your project, however the exact number is left for you to decide.
Use of New Material
You are expected to use the material that is taught in class and in the notes. If you use libraries and Spring Boot code that is not done in class, you are required to discuss it with me prior to using it in your assignment. If you do not discuss it with me, you may face deductions in your assignment.
Your assignment should use the package and project naming conventions outlined in class. Failure to do so will result in severe deductions on your assignment. Your full name must be in the project name and should follow the pattern “Assignment2_FirstName_LastName”. Renaming the Zipped folder is not sufficient.
Your assignment must be submitted as a single zipped Eclipse project. There will be a dropbox opening on slate that will allow you to submit the assignment. You may submit the assignment on slate as many times as you wish, but only the last submission will be marked. Slate will close the dropbox submission on the specified time.
Your assignment is due December 5, 2021 at 11:59pm. Any assignments submitted after that date will receive a late grade. No assignments will be accepted after December 8, 2021 at 11:59pm
Remember that this is an individual assignment meaning you are required to work on this alone. If you work, collaborate, discuss, or share your work with other students you risk a breach of academic integrity.