University Timetable Clash Detection System. The system should load teaching activities for a particular programme of study
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 the timetable.
The following information needs to be captured:
A postgraduate program 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 program 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 programs of study
- Timetable activities for modules, according to the rules specified above
- List activities for a particular program, 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 that enables users to set up and manage modules, programs of study, and timetable activities. It should also be possible to view the timetable of a program 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, program, 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 a file or to a 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 program. When clashes are identified, details of the clash should be provided.
- Integration – use Kotlin/Java to Integrate the clash detection component into the program 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 - implement 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.
Business Statistics For Contemporary Decision Making
ISBN: 978-1118749647
8th edition
Authors: Black Ken