Question: University Timetable Clash Detection System. The system should load teaching activities for a particular programme of study and check whether there are any clashes in
University Timetable Clash Detection System. The system should load teaching activities for a particular programme of study and check whether there are any clashes in the timetable.
The following information needs to be captured:
A postgraduate programme runs over one year
Each year of study consists of two terms
- Term 1 September to December
- Term 2 January to April
Notes FOR ABOVE Requirements:
- study of programme is post graduate runs over 1 year - 2 terms
- term 1 modules compulsory:
- MSc Project (60 credits)
- Enterprise Software Engineering Development (15 credits)
- Programming Enterprise Components (15 credits)
- Clouds, Grids and Virtualisation (15 credits)
- Essential Professional and Academic Skills for Masters Students
Term 2 modules:
- MSc Project (60 credits) continues to term 2
- Software Quality Management (15 credits)
- cyber security (15 credits)
- big data (15 credits)
Activities for each program above are lecture and Lab which are 1-hour sessions each. Activities must not start before 9:00 or finish after 21:00. Activities can only be scheduled Monday to Friday.
The system will need to provide the following functionality:
- Set up/manage modules
- Set up/manage programmes of study
- Timetable activities for modules, according to the rules specified above
- List activities for a particular programme, year, and term
- Check for potential clashes (the system must highlight the potential clash)
The implementation has to follow the steps below and command where each programming language has been used e.g kotlin , scala and java.
- Java GUI for Project Management Use Java to create a desktop application with a graphical user interface which enables users to set up and manage modules, programmes of study and timetable activities. It should also be possible to view the timetable of a programme by year and term. The application should look pleasant and be easy to use.
- Object-Oriented Design use Kotlin to - Create domain and entity classes that create an object-oriented structure supporting the Java GUI application. You should apply separation of concern to ensure that the Java GUI application contains only the user-interface related functionality, and all other responsibility is assigned to the domain and entity classes. These classes should be implemented in Kotlin and integrated into the Java GUI.
- Persistence and Lambda use Kotlin to - Implement persistence for the module, programme, and activity data, which makes it possible to save this data. It is up to you to decide how you wish to save the information (e.g., save it to file or to database). You should use Lambda expressions to manage the collections of data. This should be implemented in Kotlin and integrated into Java GUI.
- Clash Detection use Kotlin to Implement an object-oriented component in Kotlin that can check for potential clashes in each programme. When clashes are identified, details of the clash should be provided.
- Integration use Kotlin/Java to Integrate the clash detection component into the programme management process, so that when a programme timetable is edited, the system automatically checks for clashes in the background. A user should also be notified when a clash happens, and details of the clash should be provided.
- Clash Detection use Scala to - implemented the clash detection algorithm using an object-oriented approach in Kotlin. Now implement a clash detection algorithm using a functional approach in Scala.
- Integration use Scala/Kotlin/Java to - Integrate the Scala implementation of the clash detection algorithm into the Java/Kotlin application you developed. Ideally, it should be possible to choose whether the object-oriented or functional implementation should be used at run-time.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
