Events
Community repair event management
35 stories across 6 personas | Coverage: 35/35 (100%)
Overview
Events
Community repair events are the core activity of Restarters. Groups organise events where volunteers come together to repair broken items brought in by the public. Events can be physical (at a venue) or online.
What Hosts can do
Hosts manage the full lifecycle of events for their groups. They create events with a date, time, and location (or mark them as online), edit details, duplicate past events as templates, and delete events when needed. Hosts invite volunteers by email, manage RSVPs, update participant and volunteer counts, and record walk-in attendees. After an event, Hosts can request that attendees log the devices they repaired.
What NetworkCoordinators can do
NetworkCoordinators have oversight of events across all groups in their network. They can edit events, moderate events pending approval, and list events across their network via the API.
What Admins can do
Admins can moderate all events pending approval across the entire platform and perform any action a Host or NetworkCoordinator can.
What Restarters can do
Restarters browse upcoming events, view events near them, RSVP to attend, accept or cancel invitations, and upload photos from events they attended. They can also subscribe to event calendars via iCal feeds.
What Guests can do
Guests (unauthenticated visitors) can view public event details and repair impact statistics, subscribe to iCal calendar feeds for groups, networks, or geographic areas, and join events using shareable invite codes.
What ThirdParties can do
External organisations can retrieve event details, volunteer data, and event listings for networks and groups via the public API to display on their own platforms.
Attendance & volunteers
| Persona | Story | Method | Tests |
|---|---|---|---|
| Guest | As a Guest, I can view confirmed volunteers for an event | EventController::listVolunteers | ✅ Covered |
| Host | As a Host, I can add a volunteer to my event | EventController::addVolunteer | ✅ Covered |
| Host | As a Host, I can remove a volunteer from my event | PartyController::removeVolunteer | ✅ Covered |
| Host | As a Host, I can update the participant count for my event | PartyController::updateQuantity | ✅ Covered |
| Host | As a Host, I can update the volunteer count for my event | PartyController::updateVolunteerQuantity | ✅ Covered |
| Restarter | As a Restarter, I can RSVP to attend an upcoming event | PartyController::getJoinEvent | ✅ Covered |
| ThirdParty | As a ThirdParty, I can retrieve volunteer data for an event via the API | EventController::listVolunteers | ✅ Covered |
Calendar feeds
| Persona | Story | Method | Tests |
|---|---|---|---|
| Guest | As a Guest, I can subscribe to events in my area as an iCal feed | CalendarEventsController::allEventsByArea | ✅ Covered |
| Guest | As a Guest, I can subscribe to a group's events as an iCal feed | CalendarEventsController::allEventsByGroup | ✅ Covered |
| Guest | As a Guest, I can subscribe to a network's events as an iCal feed | CalendarEventsController::allEventsByNetwork | ✅ Covered |
| Restarter | As a Restarter, I can subscribe to my events as an iCal feed | CalendarEventsController::allEventsByUser | ✅ Covered |
Create & manage events
| Persona | Story | Method | Tests |
|---|---|---|---|
| Admin | As an Admin, I can view all events pending moderation | EventController::moderateEventsv2 | ✅ Covered |
| Host | As a Host, I can create an event via the API | EventController::createEventv2 | ✅ Covered |
| Host | As a Host, I can update my event via the API | EventController::updateEventv2 | ✅ Covered |
| Host | As a Host, I can access the form to create a new event for my group | PartyController::create | ✅ Covered |
| Host | As a Host, I can create an online event without a physical location | PartyController::create | ✅ Covered |
| Host | As a Host, I can delete an event from my group | PartyController::deleteEvent | ✅ Covered |
| Host | As a Host, I can duplicate an existing event to create a new one | PartyController::duplicate | ✅ Covered |
| Host | As a Host, I can edit my group's event details | PartyController::edit | ✅ Covered |
| NetworkCoordinator | As a NetworkCoordinator, I can view events pending moderation in my networks | EventController::moderateEventsv2 | ✅ Covered |
| NetworkCoordinator | As a NetworkCoordinator, I can edit events for groups in my network | PartyController::edit | ✅ Covered |
Devices & repairs
| Persona | Story | Method | Tests |
|---|---|---|---|
| Host | As a Host, I can request attendees log their repair contributions | PartyController::getContributions | ✅ Covered |
Find & browse events
| Persona | Story | Method | Tests |
|---|---|---|---|
| Guest | As a Guest, I can view event details via the API | EventController::getEventv2 | ✅ Covered |
| Guest | As a Guest, I can view a public event's details and repair statistics | PartyController::view | ✅ Covered |
| NetworkCoordinator | As a NetworkCoordinator, I can list events across my networks | EventController::getEventsByUsersNetworks | ✅ Covered |
| Restarter | As a Restarter, I can view upcoming events and events near me | PartyController::index | ✅ Covered |
| ThirdParty | As a ThirdParty, I can retrieve event details to display on my platform | EventController::getEventv2 | ✅ Covered |
Invitations
| Persona | Story | Method | Tests |
|---|---|---|---|
| Guest | As a Guest, I can join an event using a shareable invite code | PartyController::confirmCodeInvite | ✅ Covered |
| Host | As a Host, I can retrieve group member emails to invite them to an event | PartyController::getGroupEmailsWithNames | ✅ Covered |
| Host | As a Host, I can send email invitations for an event | PartyController::postSendInvite | ✅ Covered |
| Restarter | As a Restarter, I can cancel my attendance at an event | PartyController::cancelInvite | ✅ Covered |
| Restarter | As a Restarter, I can accept an event invitation | PartyController::confirmInvite | ✅ Covered |
Photos & media
| Persona | Story | Method | Tests |
|---|---|---|---|
| Restarter | As a Restarter, I can delete my uploaded event photos | PartyController::deleteImage | ✅ Covered |
| Restarter | As a Restarter, I can upload photos from an event | PartyController::imageUpload | ✅ Covered |
Stats & data
| Persona | Story | Method | Tests |
|---|---|---|---|
| Guest | As a Guest, I can view an event's repair impact statistics | PartyController::stats | ✅ Covered |