Restarter
41 stories across 6 features
Dashboard
Personal dashboard
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can view my dashboard with upcoming events, my groups, and nearby groups | DashboardController::index | ✅ Covered |
Devices
Browse & search devices
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can browse all devices and view global repair impact data | DeviceController::index | ✅ Covered |
Device photos
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can delete device photos I've uploaded | DeviceController::deleteImage | ✅ Covered |
| As a Restarter, I can upload photos of devices I've worked on | DeviceController::imageUpload | ✅ Covered |
Log & edit repairs
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can log a device repair at an event I attended | DeviceController::createDevicev2 | ✅ Covered |
| As a Restarter, I can update a device repair record at an event I attended | DeviceController::updateDevicev2 | ✅ Covered |
Events
Attendance & volunteers
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can RSVP to attend an upcoming event | PartyController::getJoinEvent | ✅ Covered |
Calendar feeds
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can subscribe to my events as an iCal feed | CalendarEventsController::allEventsByUser | ✅ Covered |
Find & browse events
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can view upcoming events and events near me | PartyController::index | ✅ Covered |
Invitations
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can cancel my attendance at an event | PartyController::cancelInvite | ✅ Covered |
| As a Restarter, I can accept an event invitation | PartyController::confirmInvite | ✅ Covered |
Photos & media
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can delete my uploaded event photos | PartyController::deleteImage | ✅ Covered |
| As a Restarter, I can upload photos from an event | PartyController::imageUpload | ✅ Covered |
Groups
Create & manage groups
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can create a new repair group and become its Host | GroupController::create | ✅ Covered |
| As a Restarter, I can create a new group via the API | GroupController::createGroupv2 | ✅ Covered |
Find & browse groups
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can browse all repair groups on the platform | GroupController::all | ✅ Covered |
| As a Restarter, I can list all groups via the API | GroupController::getGroupList | ✅ Covered |
| As a Restarter, I can view the groups I belong to | GroupController::mine | ✅ Covered |
| As a Restarter, I can discover repair groups near my location | GroupController::nearby | ✅ Covered |
| As a Restarter, I can browse groups within a specific network | GroupController::network | ✅ Covered |
| As a Restarter, I can view a group's details, events, and members | GroupController::view | ✅ Covered |
Group invitations
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can accept a group invitation | GroupController::confirmInvite | ✅ Covered |
Manage volunteers
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can join a repair group | GroupController::getJoinGroup | ✅ Covered |
| As a Restarter, I can leave a group I belong to | UserGroupsController::leave | ✅ Covered |
Platform
Data exports
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can export all device records as CSV | ExportController::devices | ✅ Covered |
| As a Restarter, I can export device data from an event as CSV | ExportController::devicesEvent | ✅ Covered |
| As a Restarter, I can export device data from a group as CSV | ExportController::devicesGroup | ✅ Covered |
| As a Restarter, I can export a group's event summary as CSV | ExportController::groupEvents | ✅ Covered |
Platform impact stats
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can retrieve my own profile information via the API | ApiController::getUserInfo | ✅ Covered |
Users
Account management
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can delete my own account | UserController::postSoftDeleteUser | ✅ Covered |
Authentication
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can log out of my account | UserController::logout | ✅ Covered |
Language preferences
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can change my preferred language | UserController::storeLanguage | ✅ Covered |
Notifications
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can view my notifications | UserController::getNotifications | ✅ Covered |
Profile management
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can access the form to edit my profile | UserController::getProfileEdit | ✅ Covered |
| As a Restarter, I can view my profile or another user's profile | UserController::index | ✅ Covered |
| As a Restarter, I can update my profile information | UserController::postProfileInfoEdit | ✅ Covered |
| As a Restarter, I can change my password | UserController::postProfilePasswordEdit | ✅ Covered |
| As a Restarter, I can upload a new profile picture | UserController::postProfilePictureEdit | ✅ Covered |
| As a Restarter, I can update my notification preferences | UserController::postProfilePreferencesEdit | ✅ Covered |
| As a Restarter, I can update my repair skills | UserController::postProfileTagsEdit | ✅ Covered |
Registration & onboarding
| Story | Method | Tests |
|---|---|---|
| As a Restarter, I can complete my onboarding process | UserController::getOnboardingComplete | ✅ Covered |