TLDR:
I want to simplify the matchmaking real-world users in two situations:
- trainers to trainees[1]
- hosts and guest/probationary visitors[2]
Many-to-many comparison between multiple users, with vastly differing schedules.
Calendar/event is close but I can’t find a good way to make it work smoothly - perhaps I’m doing it wrong. I suspect I have to write a whole plugin.
Longer version:
I’m helping run the community for our Makerspace[3] We technically have zero staff, just hundreds of keyholder members who get 24/7 access to the space once vetted. During Probation, new members need to be hosted by an existing member.
Trainers/Trainees
Several of our tool classes involve a combination of theory/practical. Theory can be self-directed and/or classroom trained - we have a dedicated training portal for that part. To complete the practical hands-on, it’s typically 1:1 student to teacher. I want a streamlined way for both:
- trainees looking for a practical session post their availability
- trainers with some free time able to post their availability
Optionally a way to track: - first trainee first dibs[4], and
- least abused trainer gets the first student[5]
Calendar/event seems to have some features that might work, but there aren’t quite enough ways to make posting availability broad enough (multiple broad availabilities for one trainer/trainee, etc).
Example: 8 people just took the classroom portion for the metal lathe. It’s a 1:1 hands on practical class, suddenly 8 people make a post ‘who can do my lathe practical?’. Each one will have different dates/times/days/timeframes that are useful to them. A trainer will just end up with a lot of back and forth posting on each thread ‘can you meet me on thursday?, what time, how about other time instead, etc’…Times 8. Repeat every time we have a new class, times every tool, and it becomes a mess. Many of our users are not internet savvy, so getting them to use the date-picker properly isn’t really in the cards.
Public and Hosts
We have a weekly open house for 2 hours, every week - but those 2 hours don’t work for everyone. We frequently get requests “I’m only in town Saturday, who can meet me?” or “I’m new member, want to work in the 3d printer room, who can host on Saturday?”
Right now we have a physical box in the space that allows keyholder members to push a button which posts on the discourse chat via the api “/@-membername/ is hosting until /x/ o’clock, pm them here to get their attention!” - This is very last minute and difficult to get someone to drive across town half an hour on short notice after they’ve been told the space is ‘open’.
It’s all complicated by the fact that very few things are concrete on the schedule. I could have trainers make an /event/ for each session they plan to host, then prospective trainees could ‘attend’ - but the event doesn’t allow for the loose time window(s) or attendance limits. Often times we get “I can host 3 practical sessions on Saturday”. It is a lot of clicks to set up 3 events without known times.
I really appreciate any help/advice people can suggest for this problem.
Entirely based on the overlap of random schedules ↩︎
There are limited public ‘open’ hours weekly, sometimes people try to find a host on other times. ↩︎
Think of a gym membership, but instead of exercise equipment, you get access to welders, and sewing equipment, and laser cutters, etc. (Plus all the training to run said equipment safely). ↩︎
Whoever has waited longest for their practical ↩︎
Sometimes there are more trainers, sometimes there are more students - so there will typically be an abundance of one or the other. ↩︎