COSC 2391 - Graphic Design App
在这个任务中,我们需要完成一个名为MyTimeTable的图形设计应用程序的开发,该应用程序允许学生管理课程。在第一项任务中的基础上,我们将会运用面向对象的设计原则、设计模式、Java集合框架、泛型、异常处理、图形用户界面、序列化和反序列化以及单元测试的知识。我们将会使用Java SE 8或更新版本,并且使用JavaFX技术。
Task specification
1. The application can have many users.
2. Each user can create a profile, with a unique username, password, the first name, the last name, and the student number.
3. Once the username and password are created, the user can log in.
4. Each user has a dashboard after login. The board should display a user’s student number, first name, and last name.
5. Each user can perform the following actions:
- Edit the profile (i.e., change the first name, the last name, or the password). Student number must not be editable.
- View all courses. The list of all courses offered is provided in course.csv file. The program should show all available courses (i.e., courses that still have capacity for extra enrollments) and courses that are full, where there are clear indicators about which courses are full and which courses are still open for enrollments.
- Search for a course. A user should be able to search for a course and look up the information of that course.
- Enroll into a course. The program should be able to detect duplicated enrollments (i.e., a student cannot enroll into the same course twice), and detect class clashes (i.e., a student cannot enroll into a course that clashes with another course that he/she has already enrolled into.)
- Withdraw from a course.
- View all enrolled courses in list view (a list of all enrolled courses) and timetable view (a timetable of all enrolled courses).
- Export the list of enrolled courses to a file.
- Log out
6. Each course from the couse.csv has the information of Course name, Capacity, Year, Deliver mode, Day of lecture, Time of lecture, and Duration of lecture.
- For each course, the number of total enrollments should not exceed the maximum capacity. For online courses, the capacity is specified as “N/A”, and therefore, there is no limit on the number of total enrollments.
- You can assume all courses run from beginning of March until end of May, for simplicity.
7. The profile data should persist between logins for the same user.
8. You will get a bonus (4 marks) if you provide the following functionalities for each user:
- Change the font size, font type (e.g., Calibri), text color, and font style (i.e., bold, italic). Note that bonus marks will be awarded given the coverage of texts, of which the fonts can be changed.
9. You will get a bonus (1 mark) if you store users’ passwords through hashing: a password is hashed and stored as the hash value in the database rather than a plaintext.
10. The bonus marks will be added to compensate any marks that you have lost elsewhere.
咨询 Alpha 小助手,获取更多课业帮助。