Skip to content

Public shift schedule, self-claim, drop shift #45

Description

@hpdang

Description

The system should have a schedule where accepted applicants (members) can browse open shifts and claim the ones they want

Where it lives

Public event page

  • URL?
    Visible only to accepted volunteers who are logged in.

The shift schedule page

A grid showing all shifts for the event:

  1. Columns — locations (e.g Main Hall, Foyer, Room 100)
  2. Rows — time slots
  3. Each shift card shows — shift name, role, how many slots filled vs needed (e.g. 2/3), a colour badge (open = red, partial = amber, full = green)

Sample Shift Card (as reference only)

Including restricted and non-restricted shifts

Image

Claiming a shift

  • Open non-restricted shifts show a "Sign Up" button
  • Clicking "Sign Up" assigns the volunteer to that shift immediately
  • Capacity is enforced.
  • After claiming, the card updates to show their name

Restricted shift

  • Appear on the grid so volunteers can see the full picture
  • No Sign-Up button
  • Volunteers cannot claim these, only an organiser or permitted user can assign them

Dropping a shift

  • A person who can no longer do a shift they claimed can drop it
  • Click the Drop button on their claimed shift card
  • A confirmation prompt appears: "Are you sure you want to drop this shift?"
  • Confirming removes the assignment and frees the slot for someone else
  • The organiser receives a notification that a slot opened up

Note: In Engelsystem, to drop a shift a volunteer clicks on the shift name, which opens a dedicated shift detail page, and from there clicks "Withdraw from shift." We can also follow this same approach as it is simpler to build and prevents accidental drops from a misclick on the grid.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or user-facing functionality

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions