Timetable Clash Detection System
You have been asked to work on a 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 programme of study can be undergraduate or postgraduate
An undergraduate programme runs over three years
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
• A programme of study consists of modules
Modules can be compulsory or optional
In total, a student will study four modules each term (can be a combination
of compulsory and
optional modules)
• For each module there can be one or more activities
Activities can be lecture, lab, tutorial, seminar or workshop
Activities start on the full hour
Activities must not start before 9:00 or finish after 21:00
Activities can only be scheduled Monday to Friday
When checking for clashes, you would need to consider the year of study (e.g., a year 2
module can run at the same time as a year 1 module without creating a clash).
In a complete timetabling system, students and staff would have to be allocated to
activities, but for this assignment we are ignoring these.
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) Currently,
the only type of user of the system will be an administrator.
The implementation has to follow the steps below and command where each
programming language has been used e.g kotlin , scala and java.
You have been asked to work on a 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 programme of study can be undergraduate or postgraduate
An undergraduate programme runs over three years
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
• A programme of study consists of modules
Modules can be compulsory or optional
In total, a student will study four modules each term (can be a combination
of compulsory and
optional modules)
• For each module there can be one or more activities
Activities can be lecture, lab, tutorial, seminar or workshop
Activities start on the full hour
Activities must not start before 9:00 or finish after 21:00
Activities can only be scheduled Monday to Friday
When checking for clashes, you would need to consider the year of study (e.g., a year 2
module can run at the same time as a year 1 module without creating a clash).
In a complete timetabling system, students and staff would have to be allocated to
activities, but for this assignment we are ignoring these.
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) Currently,
the only type of user of the system will be an administrator.
The implementation has to follow the steps below and command where each
programming language has been used e.g kotlin , scala and java.