flexible tutor-student scheduling

Hi, all. I have what I think is a high-level question about the flexibility of Gibbon and whether it can do what our small school is looking for.

We’re adding a 1-on-1 online tutoring component. So, we need a way for tutors/teachers to be able to specify their availability, and for students to be able to sign up for classes (of fixed length) with any teacher and at any time within that teacher’s availability that has not already been booked.

Is this possible within the assumptions of the GibbonEdu framework?

For example, within a term, each tutor could say that they are available for whatever time they like (e.g. one tutor could specify “MWF 6-10pm and Sat/Sun 10a-12p” and another could specify “TWR 7-11pm and Fri 12-6pm”). A tutor’s schedule could be different from one week to the next. The tutors wouldn’t necessarily have to be able to manipulate this schedule in the system themselves. They could just tell an administrator (me) their schedule, and the administrator could do all the work to create whatever is necessary in the system to support that.

So, I’m just guessing here, maybe this could be accomplished by breaking up the tutor’s schedule into 1-hour chunks and calling each of those a separate “class” (T1C1, T1C2, etc.), each class with a maximum enrollment of 1 student. Then, students could choose to enroll in these “classes” one-by-one based on the dates and times they are available.

Also, ideally, the system would have a way to enforce a maximum of N classes per week or per term, but that could also be enforced manually, since we are a very small school.

Is this reasonable? Is there a better way?

Thanks in advance for any help of advice you can offer.


Thanks for your question, and welcome to the Gibbon community. Gibbon was designed with more traditional schools in mind (as that is my background), but I know others are working on similar tutorial use cases. In terms of the underlying Gibbon structures, there is nothing that would prevent you from building a module that meets your needs. One of the design aims of Gibbon was that additional modules could be used to add functionality.

In theory, any programmer familiar with PHP and MySQL should be able to learn how to build a unit, but you could also contact @andystat of Rapid36, who is already familiar with building Gibbon modules.

The result of this would be a lot of free functionality (courtesy of the Gibbon core) allowing you to manage and authenticate users, etc, and then your paid part on top.

Hope this helps.