ishgroup / onCourse-roadmap

Planning for the future of onCourse
2 stars 0 forks source link

Student generated class timetable #60

Closed ari closed 3 years ago

ari commented 4 years ago

Sometimes it is useful to allow students to select their own timetable, room or tutor choices in the checkout process. Today onCourse forces the college to create a large number of classes with every combination (eg. hourly blocks, five days a week 9am to 5pm). This doesn't scale well, for example:

This is a very broad ranging feature which takes onCourse into very different types of bookings to what it allows today and very different types of use cases to classes of students.

Student UI

During enrolment the student will be prompted to choose the start time, tutor (optional), room (optional) for their booking. A calendar widget and other modern UI elements to make it easy to find available slots is needed.

Class stamping

A template class would define many common elements. Budget, tutor pay, tutor (optional), room (optional), session(s), notes, attachments, VET, etc. Then the student would be allowed to duplicate the class during enrolment and shift it to any allowed parameters according the rules below.

Duplication rules

A rule engine will be applied to the course to define how the student is allowed to create the class. So a tennis court booking rule would not allow students to choose a tutor, but they would choose a court (room). Other class bookings would be taken into account with normal collision detection.

Private music lessons might allow tutor selection but not rooms.

Tutors

Are students allowed to change the tutor (or set one) and if so, what is the set of tutors available.

Rooms

Are students allowed to change the room (or set one) and if so, what is the set of room available.

Timetable

Students will be allowed to shift the session from the class template but not change its duration. So to allow both 1 hour and 30 minute bookings, you would create two templates. That way each could have different pricing. The rule engine would define what hours were available (and site/room/tutor availability rules would be applied as well) on which days.

The rule would define how the start time could be shifted (eg. starting on the hour, on 15/40/45 past)

When students select a time for the first session, we anticipate any future sessions are adjusted in time with the same offset. So if the class template has the first session 9am-10am and further sessions every week at the same time, then the student chooses the first session at 12pm, all future sessions are at that same time.

simonestockl commented 3 years ago

Moved to https://oncourse.discourse.group/t/student-generated-class-timetable/202