Dear Students,
You are required to develop an application in PHP and MySQL or any other set of tools.
It should have following functionalities:
1. Manage courses and enrollment in them
2. Calculate list of “Non-overlapping courses” for each course
3. Calculate a possible “correct” schedule with minimum number of days
4. Manage Superintendents’
5. Manage exam halls’
6. Calculate list of “eligible superintendents” for each course
7. Calculate list of “feasible exam halls” for each course
8. Define exam slots, and minimum number of days between two exam papers
9. Calculate an “exam schedule”
The detail of each functionality is as follows:
1. Manage courses and enrollment in them
Create a page that:
i. Takes as input a new course code (e.g. CS101) and enrollment in that course in the form
of a text file (e.g. CS101.txt). The text file contains a list of students enrolled in that
course. For example:
CS101.txt
BC160300123
BC160300234
BC170100345
BC170100456
………….
ii. Updates enrollment in an existing course by giving as input a new file having list of
students enrolled in that course.
iii. Delete a course and the corresponding enrollment in it.
iv. Show/display list of all courses
2. Calculate list of “Non-overlapping courses” for each course
In the context of this application, a course A is non-overlapping to a course B if there is no
student who is enrolled in both the courses A and B. You are required to determine list of all
non-overlapping courses for each course. The output can be of the following form:
Course List of Non-overlapping Courses
CS101 CS301, CS304, CS504, CS403, CS601, CS606
CS201 CS301, CS304, CS504
ENG101 ENG201, CS302, CS401
CS502 CS602
….. …….
3. Calculate a possible “correct” schedule with minimum number of days
Given ‘n’ number of slots per day, calculate a possible schedule with minimum number of days.
Regarding correctness: A schedule will be correct if all the courses whose exams are scheduled
on same day are non-overlapping with each other.
Superintendents and exam halls are NOT TO BE CONSIDERED in this test phase application.
4. Manage Superintendents’
Create a page that:
i. Take as input record of a superintendent [e.g. Name, designation, department, courses
taught (course codes)]. “courses taught” should be input using a multiple choice list
(taken from list of courses whose exam is to be conducted i.e. from part (1)). If a course
is selected from the list that is already selected for another superintendent, then the
conflict should be displayed as message when attempting to save the record. The
conflict should be resolved and then the record should be saved.
ii. Update the superintendent’s record considering the constraint mentioned in the
previous point.
iii. Delete a superintendent’s record
iv. Show/display list of all Superintendents
5. Manage exam halls’
Create a page that:
i. Take as input record of an exam hall [e.g. Building, floor, hall number, seating capacity]
ii. Update/delete record of an exam hall
iii. Show/display list of all exam halls
6. Calculate list of “eligible superintendents” for each course
For a course, “eligible superintendents” are those who have not taught that course in the
semester. Determine the list of “eligible superintendents” for each course.
7. Calculate list of “feasible exam halls” for each course
For a course, “feasible exam halls” are those whose seating capacity is greater than or equal to
the number of enrollments in that course. Determine list of “feasible exam halls” for each
course.
8. Define exam slots, and minimum number of days between two exam papers
Exam slots can be defined as the number of slots for each day of a week. An example of slots is
depicted in the following table for explanation:
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 ……
(Monday) (Tuesday) (Wednesday) (Thursday) (Friday) (Saturday) (Monday) (Tuesday)
8:00 - ……
09:30 Slot 1 Slot 1 Slot 1 Slot 1 Slot 1 Slot 1 Slot 1 Slot 1
10:00 ……
- Slot 2 Slot 2 Slot 2 Slot 2 Slot 2 Slot 2 Slot 2 Slot 2
11:30
12:00 ……
– Slot 3 Slot 3 Slot 3 Slot 3 Slot 3 Slot 3
1:30
2:00 ……
– Slot 4 Slot 4 Slot 4 Slot 4 Slot 3 Slot 4 Slot 4
3:30
4:00 ……
– Slot 5 Slot 5 Slot 5 Slot 5 Slot 4 Slot 5 Slot 5
5:30
Also, define the minimum number of days between two exam papers of a student. For example,
if the number is defined to be “1” then a student can have exam papers scheduled on
consecutive days (e.g. like on Monday and Tuesday etc.). Similarly, if the number is defined to be
“2” then a student can have exam papers scheduled on alternate days (e.g. like on Monday and
Wednesday etc.).
9. Calculate an “exam schedule”
Calculate a valid exam schedule with minimum number of days and slots utilized considering the
following constraints:
a. Two “overlapping courses” should not be scheduled in the same slot. Overlapping
courses should also follow the defined minimum number of days. For example, if CS401,
CS403 and CS504 are overlapping courses that is one or more students are enrolled in
all three of these courses, and the minimum number of days between two exam papers
of a student is defined to be “2” then if CS401 is scheduled on Tuesday then the next
one (e.g. CS403) will be schedule no early than Thursday and the last one (CS504) will be
scheduled no early than Saturday.
b. An exam course should only be assigned to an “eligible superintendent” for invigilation
(i.e. a course’s exam should not be invigilated by the faculty member (superintendent)
who has taught that course in the semester).
c. After the completion of the calculation of exam schedule, the invigilation duty should be
somewhat fair between the superintendents i.e. the difference between maximum
assigned invigilation tasks to a superintendent and the minimum assigned invigilation
tasks to a superintendent should not be more than 2. For example, if the minimum
exam invigilation tasks assigned to a superintendent is “5” then the superintendent who
has been assigned the maximum invigilation tasks should not be invigilating move than
“7” exams.
d. An exam course should only be assigned to a ”feasible exam hall”. Preference should be
given to the minimum capacity “feasible exam hall”. For example, there are 140
students whose CS301 exam has to be scheduled and we have five exam halls with
seating capacity of 150, 180, 130, 100 and 200, respectively. Now, out of three “feasible
exam halls” {150, 180, 200}, the exam hall with the seating capacity of 150 is the most
preferred, if it is already scheduled in the same time slot then consider the next
minimum (180) and so on.