Java Question

User Generated

cxz1

Programming

Description

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.

    Unformatted Attachment Preview

    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 ObjectOriented 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 Design Layout The classes that end with Entry are the classes that describe what is contained in one row of each table. They describe the columns of the database table. Classes Semester – this is not actual a separate class because it only has one property which we can represent with the String class. CourseEntry StudentEntry ScheduleEntry Properties Methods *Semester (String) *Semester (String) *CourseCode (String) Description (String) Seats (integer) *StudentID (String) FirstName (String) LastName (String) *Semester (String) *CourseCode (String) *StudentID (String) Status (String) – “S” or “W” Timestamp (Timestamp) Constructor getters Constructor getters Constructor getters The classes that end with Queries are the classes that access and update the database tables. They return ArrayLists of the Entry classes when the information in the rows of the database table is requested. Classes Return value Methods SemesterQueries Void ArrayList ArrayList Void ArrayList Int void void ArrayList StudentEntry void void ArrayList int ArrayList ArrayList void void void void ArrayList void addSemester(String semester) getSemesterList() getAllCourses(String semester) addCourse(CourseEntry course) getAllCourseCodes(String semester) getCourseSeats(String semester, String courseCode) dropCourse(String semester, String courseCode) addStudent(StudentEntry student) getAllStudents() getStudent(String studentID) dropStudent(String studentID) addScheduleEntry(ScheduleEntry entry) getScheduleByStudent(String semester, String studentID) getScheduledStudentCount(currentSemester, courseCode) getScheduledStudentsByCourse(String semester, String courseCode) getWaitlistedStudentsByCourse(String semester, String courseCode) deleteScheduleByStudent(String semester, String studentID) deleteScheduleByCourse(String semester, String courseCode) dropStudentScheduleByCourse(String semester, String studentID, String courseCode) dropScheduleByCourse(String semester, String courseCode) getWaitlistByCourse(String semester, String courseCode) updateScheduleEntry(String semester, ScheduleEntry entry) CourseQueries StudentQueries ScheduleQueries Note: The methods with an x in the Part 2 column are only needed for Part 2 of the Final Project. Note: There may be other methods needed in your classes. This list is not all inclusive. Part 2 x x x x x x x x x x x Data Base Tables The Data Base tables have a one-to-one correspondence with the classes above that contain properties. This is the advantage of Object-Oriented Design, the data from a table is the data for a class object. So, in this project, the tables would be: Semester Course Student Schedule Then we need to figure out what the columns of each table will be. That is also easy, it is just the properties of each of the classes above. For example, the Courses Table would have the columns: Semester, CourseCode, Description, Seats. The only other thing we need to figure out is what is the primary key for each table. That would be the columns from each table that will make an entry unique. The properties that have * in front of them make up the primary key for each Table. 3 Tier Application Development GUI Code Classes Code Data Base Tables
    Purchase answer to see full attachment
    User generated content is uploaded by users for the purposes of learning and should be used following Studypool's honor code & terms of service.

    Explanation & Answer

    View attached explanation and answer. Let me know if you have any questions.I've attached sc...


    Anonymous
    I was having a hard time with this subject, and this was a great help.

    Studypool
    4.7
    Indeed
    4.5
    Sitejabber
    4.4

    Related Tags