makerspace/makeradmin

Booking time slots for machines/rooms within Makeradmin

Opened this issue · 0 comments

This is a big, low priority, long term project concerning replacing (roughly) the role that Boka.se has today. If someone wants to start implementing it, great, but as of writing this, there are more important things to improve in Makeradmin. The issue is posted here for inspiration. The specification below is not final. Feel free to comment and discuss below.

The feature would be a way to book time slots for using machines. Currently, we're only using this model for the laser cutter, but it could be applicable to other machines/rooms as well, for example the Terco and Portalfräsen.

Workflow

Creating/editing a machine/room (admin)

  • The admin interface contains an interface for creating and editing a machine/room that can be booked.
  • If applicable, the interface allows adding a requirement of being in a certain member group to be able to book the machine.
  • The interface allows adding a time limit, for example in terms of how long time you're allowed to book in total per day.
  • The interface allows disabling the machine, if it's broken. During this time members can't book this machine.
  • The interface allows assigning a member group as "special access". This group of approved users can override the assigned time limit. The intention for this is that people with knowledge on how to fix/improve the machine can book a longer session for that purpose.

Booking (user)

  • The member interface contains a calendar view for booking machine time. This reservations are subject to the limitations set in the admin view described above.
  • A member can remove a reservation before it starts.
  • There's a dedicated public calendar interface for showing on the Raspberry Pi on supported machines. (Currently only the laser cutter.)
    • This interface shows all reservations for the current day, or current week.
    • This interface is optimized to look good on this particular screen.
    • Ideally, it's a self-updating AJAX interface or similar, which is resilient against temporary internet outages. (So, a simple periodic page reload that might get stuck on an error page may not be advisable.)