Seeking advice: Host/Guest and Trainer/Trainee matchmaking

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.


  1. Entirely based on the overlap of random schedules ↩︎

  2. There are limited public ‘open’ hours weekly, sometimes people try to find a host on other times. ↩︎

  3. 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). ↩︎

  4. Whoever has waited longest for their practical ↩︎

  5. Sometimes there are more trainers, sometimes there are more students - so there will typically be an abundance of one or the other. ↩︎

1 Like

A widget-like component, such as the voting feature, would be useful. Perhaps you could start using public voting to show which people are in need of lessons and which people offer lessons.

We aim to use voting in this way. At least, people can change their vote without causing further noise in a channel.

It would be beneficial if the voting plugin had an option to not sort the results for this kind of use case.


Different thought: You could experiment with the easily extendable oneboxing feature to include external tooling into the site.


Brainstorming, how a tooling may look like:

Available time for users seems to be independent of topics, lessons, or machines. Users could be able to announce time slots in their user profiles. Perhaps they can paint in a week overview to show their repetitive usual available time slots and add dedicated time slots to their own calendar. These announcements could have different statuses, such as “will be there” or “might be there.”

This general information could be used together with information about skills (who is able to provide which skill, who is in need of which skill) and maybe also available time slots for machines in a second stage.

1 Like