-
Notifications
You must be signed in to change notification settings - Fork 1
Project Instructions
Your software development team is tasked with delivering a new, working employee management system for company ‘Z’. The project requires a software design document as a set of designs for this software system involving its data schemas, Ux, and programming models. They currently have one HR admin person maintaining their employee data using dBeaver and MySQL scripts. They have about 40 full-time employees (no hourly, part-time). However, they plan to triple this amount within 18 months.
The software system requires features/functionality in to ensure things like:
- For admin to enable CRUD functionality on the entire database
- A general employee able to see their data (SELECT) only, no changing
2. Search for an employee using name, DOB, SSN, empid to show their information for editing (Admin only)
5. Update employee’s salary for an increase of a particular percentage only for a salary amount range. E.G., 3.2% for salary greater than, equal to 58K but less than 105K. (Admin only)
- Full-time employee with pay statement history sorted by employee id,then pay date. (Admin see all and general employee see only their data)
- Total pay for month by jobtitle. (Admin only)
- Total pay for monthby Division. (Admin only)
a) Additional table:
- Address (street, city, state, zip) for employee (has empid as primary key) and additional demographic items: (gender, identified race, DOB, mobile/phone.)
- This shall be split into other tables for city and state. It should use an ID for city and ID for state in 'Address' table. (Implies city and state tables)
b) Create primary/foreign key connections:
- employees.empid (primary) to employee_division.empid (foreign)
- employees.empid (primary) to payroll.empid (foreign)
- employees.empid (primary) to employee_job_titles.empid (foreign)
- employee_division.div_ID(primary) to division.ID (foreign)
- employee_job_titles.job_title_id (primary) to job_titles.job_title_id (foreign) (https://www.w3schools.com/mysql/mysql_create_index.asp)
2. A fully working UX in either console or GUI (Swing or JavaFX) to satisfy the employeeData MySQL database. Note: using HTML for the UX will require microframeworks, services, database (Node.js) to connect to MySQL. However, extra credit will be applied as percentage of your total individual points, TBD.
a) Add new Java classes to gather (get inputs) and store the employee information in a dynamic data structure (list or collection)
b) Abstract classes, interfaces, aggregated, and inherited classes where used.
a) These can be a one-to-one relation of a feature in the software system
b) These can be a functional component (JBDC library, JavaFx library, interface class, abstract class)
a) Update employee data (make it general enough using your new classes for all employee data_
b) Search for employee (admin user)
c) Update salary for all employees less than a particular amount
- NOTE: Start with describing 'a,b,c' each as a detailed programming task, then create pass/fail test cases from each
a) Increase salary by % if current base is in a range amount
b) Add new employee to employeeData database (In sequence diagrams, you will show components like UX, Java classes, methods in main program, JDBC, microframeworks, etc.)
- A software design document in PDF that has the above items, each in a section(s), subsection(s), and a table of contents (Easy to do in MS Word and export to PDF)
a) Work-in-class time will be used to develop UML items, dB schema, and Java classes with your team members, then upload these into iCollege.
b) your final report may have more and/or more elaborate diagrams. During work-in-class time, I need some beginning UML diagrams to see you are on the right track.
- You may use any tool to draw/create UML diagrams. If you hand-draw them, be very neat to be readable and understandable. These will be graded on correct form and specifics of required elements.
- Your team recorded video shall be in a format compatible for Mac and Windows: (MPEG-4, MPEG, WMV, AVI, MKV, WebM, 3GP, or MOV)
- One UML use case describing the overall components and their connections
- One UML sequence diagram showing 'input an EmpID' to search the database
- Database schema diagram (Refer to #1 in Deliverables) generated from dBeaver. (Ensures each person can run the database and understands normalization, primary-foreign key, schema design.)
- Programming tasks, 5 from user story (Design document will require 10: can use these 5 both times)
- Test cases from #5 in Deliverables 'a,b,c'
- One UML sequence diagram from 'a' and one UML from 'b' in #6 Deliverables above
- Company 'Z' needs a final software design document described in #7 Deliverables above (SDD template will be in iCollege)
- One continuous (no splicing) 10-15 minute video demo of the working software system (search, update, insert new employee, reports) where one or many of your team is walking through basic functionality and speaking while showing yourself on-screen. Use very limited PowerPoint in the demo (no more than 5 slides) as I want to see you present a visual demonstration of the final software system.
- Video can be given by one or many team members.
- There will not be any late submissions. There is one final time and after that it is too late. Only ONE person need to upload the video (single file). If multiple members upload, the latest 'time/date' will be graded as the final turn-in version.
- This is a recorded video in a format compatible for Mac and Windows: (MPEG-4, MPEG, WMV, AVI, MKV, WebM, 3GP, or MOV)
- PLEASE show your code running in the video and your face talking and describing through the demonstration.