zipped PROJECT folder and your zipped DATABASE
folder. Zip the ENTIRE database folder and the ENTIRE project folder and submit the
two zipped files in the assignment under one submission.
Note:
Your project must be created with the name ‘CourseSchedulerNameID’, where
Name is your name and ID is your psu account id, e.g. xxx1234. The database must
be created with the name ‘CourseSchedulerDBNameID’, and a username and
password of java and java. All tables should be empty.
Grading Criteria:
In this project I will be looking for good OO design practices and this includes: • Use of getter and setter methods for class variables
• Good naming of your classes, methods and variables
• Correct use of static and non-static methods
• The way you split this project into classes.
• All of your updates to the database must be done using SQL statements, do
not use ResultSetTableModels to update the database.
• If a SQL statement to update the database needs to contain a variable, then
you must use PreparedStatements, do not use concatenation of strings to
create the SQL statement.
The Grading Rubric for Final Project Part 1 is posted in Canvas.
Note: Make sure you look at all the videos about this assignment and the Course Scheduler
Design Layout in Canvas before starting this assignment. You may also use the Sample Project
I have provided in Canvas to start your project.
Course Scheduler Final Project Part 1 You have been asked to develop a Course Scheduling application for a College. The application will enable two types of Users to perform their necessary functions to schedule courses by semester. The Admin User will perform multiple functions to set up the database so that Students my schedule courses. The functions each User will be able to perform will be described below. This application should have a very nice GUI interface and will be a database driven application. The database used will be Derby. This application must use good Object- Oriented Design and Programming. The database must use good Object-Oriented Design and Programming. There is a very close correlation between Object-Oriented Design and Database Design. Your application design should include at least four classes besides the main GUI class. Your database accesses should be in the classes that correlate with the database tables. This assignment is the first half of the final project and will be submitted as Final Project Part 1. This phase of the project will implement the following Admin functions: Add Semester A semester is added to the database. The semester is identified by one name. Add Course A new course is added to the database. The course is identified by the semester it is to be added to, the code for the course, the description of the course and the maximum number of students the course will contain that semester. Add Student A student is added to the database. The student is identified by a studentID, the student’s first name, and the student’s last name. This phase of the project will implement the following Student functions: Schedule Course The student will be scheduled in the class for the specified semester, if there are seats available. If there are no seats available, the student will be put a wait list for that Course. The waiting list must be maintained in the order the students tried to schedule the course. Display Schedule The Display Schedule function will display the current schedule for a specified student for the current semester. Display Courses The Display Courses function will display a complete list of courses for the current semester. Testing scenario: A testing scenario will be provided to assist you in testing this application. It will be called Final Project Part 1 Test Script in Canvas. Database considerations: Your database will be created but all of the tables should be empty when your project is submitted. GUI Guidelines: The user should be required to enter only unknown data. Drop down lists of known data such as Student names, Course Codes, or Semesters should be displayed for the user to select. Combo Boxes should be used for the drop-down lists on the form. When information is requested to be displayed, e.g., for a Display command, all of the requested information must be displayed. When a command is performed, the results of that command should be displayed to the user on the same display without the user needing to use a Display function to see what was done. For this assignment, you may, and I recommend, the use of the GUI designer in NetBeans. Submission Guidelines: Don't forget to submit your zipped PROJECT folder and your zipped DATABASE folder. Zip the ENTIRE database folder and the ENTIRE project folder and submit the two zipped files in the assignment under one submission. Note: Your project must be created with the name ‘CourseSchedulerNameID’, where Name is your name and ID is your psu account id, e.g. xxx1234. The database must be created with the name ‘CourseSchedulerDBNameID’, and a username and password of java and java. All tables should be empty. Grading Criteria: In this project I will be looking for good OO design practices and this includes: • Use of getter and setter methods for class variables • Good naming of your classes, methods and variables • Correct use of static and non-static methods • The way you split this project into classes. • All of your updates to the database must be done using SQL statements, do not use ResultSetTableModels to update the database. • If a SQL statement to update the database needs to contain a variable, then you must use PreparedStatements, do not use concatenation of strings to create the SQL statement. The Grading Rubric for Final Project Part 1 is posted in Canvas. Note: Make sure you look at all the videos about this assignment and the Course Scheduler Design Layout in Canvas before starting this assignment. You may also use the Sample Project I have provided in Canvas to start your project. Course Scheduler Final Project Part 1 Test Script This is a scenario that you can use to test Course Scheduler Final Project Part 1. It is not an exhaustive test, but tests almost all of the conditions your program should handle. When you submit your project, all the tables in the database should be created but should be empty. Script: -Add Semester - 2021 Fall · after adding the semester, the semester should appear in any semester combobox. It should also appear as the current semester. · all Add commands should display a line that states that, in this case, the semester was added. -Add Semester - 2022 Spring · all semester comboboxes should be updated -Add Course - Cmpsc131 - Intro to Programming - 2 · Cmps131 added to course comboboxes. -Add Course - Cmpsc132 - Data Structures - 2 · Cmps132 added to course comboboxes. -Add Course - Physics101 - Intro to Physics - 2 · Physics101 added to course comboboxes. -Add Course - Biology101 - Intro to Biology - 2 · Biology101 added to course comboboxes. -Add Student - 111111111- Sue - Jones · Jones, Sue added to student comboboxes. -Add Student - 222222222 - Sam - Roberts · Roberts, Sam added to student comboboxes. -Add Student - 333333333 - Shawna - Sampson · Sampson, Shawna added to student comboboxes. -Add Student - 444444444 - John - Jensen · Jensen, John added to student comboboxes. -Display Courses · a table of all four courses should be displayed showing CourseCode, Description, Number of Seats. -Schedule Courses - Jones, Sue - Cmspsc131 · message displayed that the course was scheduled. -Schedule Courses - Jones, Sue - Physics101 · message displayed that the course was scheduled. -Schedule Courses - Roberts, Sam - Physics101 · message displayed that the course was scheduled. -Schedule Courses - Roberts, Sam - Cmpsc131 · message displayed that the course was scheduled. -Schedule Courses - Roberts, Sam - Biology101 · message displayed that the course was scheduled. -Schedule Courses - Sampson, Shawna - Biology101 · message displayed that the course was scheduled. -Schedule Courses - Sampson, Shawna - Physics101 · message displayed that the course was waitlisted. -Schedule Courses - Jones, Sue - Biology101 · message displayed that the course was waitlisted. -Display Schedule - Jones, Sue · displays a table of CourseCode and Status with: · Cmpsc131 - scheduled · Physics101 - scheduled · Biology101 - waitlisted -Display Schedule - Roberts, Sam · displays a table of CourseCode and Status with: · Cmpsc131 - scheduled · Physics101 - scheduled · Biology101 - scheduled -Display Schedule - Sampson, Shawna · displays a table of CourseCode and Status with: · Biology101 - scheduled · Physics101 - waitlisted -Change Semester to 2022 Spring -Add Course - Cmpsc131 - Intro to Programming - 2 · Cmps131 added to course comboboxes. -Add Course - Physics101 - Intro to Physics - 2 · Physics101 added to course comboboxes. -Display Courses · a table of two courses should be displayed showing CourseCode, Description, Number of Seats. -Schedule Courses - Jones, Sue - Cmspsc131 · message displayed that the course was scheduled. -Schedule Courses - Jones, Sue - Physics101 · message displayed that the course was scheduled. -Schedule Courses - Sampson, Shawna - Physics101 · message displayed that the course was scheduled. -Display Schedule - Jones, Sue · displays a table of CourseCode and Status with: · Cmpsc131 - scheduled · Physics101 - scheduled -Display Schedule - Sampson, Shawna · displays a table of CourseCode and Status with: · Physics101 - scheduled General conditions of testing: · the results of any action are displayed to the user immediately after the action is performed without the user needing to check a Display function. · All affected combo boxes are updated immediately after each action is performed. Course Scheduler Final Project Part 1 Grading Rubric Late policy of 4% per day late and using good object-oriented coding still apply. Copying code from the internet does not count as writing your own code. Do not do this. The way to check your code is to use the Course Scheduler Final Project Part 1 test script provided. The Course Scheduler Final Project Part 1 test script will be used to test your assignment. There are six functions to Part 1 of the final project: The Admin functions of: adding a semester, adding a course, and adding a student and the Student functions of: displaying the courses available, scheduling a course, and displaying the course schedule for a student. Preferably, the code you submit will be only for part 1, but if your code includes functionality for the second part of the project, that’s ok too; we will only grade for the functionality for part 1 (so you need to make sure all parts for part 1 still work). Database and project considerations: • When you submit your project, you MUST submit both your zipped project folder and your zipped database folder (-5 if you fail to submit your database when you submit your code. We need it to grade your assignment.) • Your database should have the username and password of ‘java’ and ‘java’ as per the assignment and have the proper database name as per the assignment. Your project must also have the proper name as specified in the assignment. • Your database must have the tables defined but the tables must be empty (-5 for not following these directions)