Archive completed openspec change new-raceplanner-app

This commit is contained in:
Denis Urs Rudolph
2026-04-03 21:53:22 +02:00
parent 79b41a3650
commit 88aa6d72b1
13 changed files with 0 additions and 0 deletions
@@ -0,0 +1,39 @@
## ADDED Requirements
### Requirement: Event announcements
The system SHALL allow organizers to post announcements for their events.
#### Scenario: Create announcement
- **WHEN** organizer creates announcement with title and content
- **THEN** system saves announcement with timestamp
- **AND** associates with specific event
#### Scenario: Announcement visibility
- **WHEN** participant views event page
- **THEN** system displays all published announcements
- **AND** sorts by newest first
### Requirement: Announcement notifications
The system SHALL notify registered participants of new announcements.
#### Scenario: New announcement notification
- **WHEN** organizer publishes announcement
- **THEN** system sends notification to all registered participants
- **AND** includes announcement title and link
#### Scenario: Mark as read
- **WHEN** participant views announcement
- **THEN** system marks notification as read
### Requirement: Announcement management
The system SHALL allow organizers to edit and delete announcements.
#### Scenario: Edit announcement
- **WHEN** organizer edits existing announcement
- **THEN** system updates content
- **AND** shows edit timestamp
#### Scenario: Delete announcement
- **WHEN** organizer deletes announcement
- **THEN** system removes from event
- **AND** does not notify participants of deletion
@@ -0,0 +1,38 @@
## ADDED Requirements
### Requirement: Organizer dashboard
The system SHALL provide organizers with a dashboard showing event metrics.
#### Scenario: View event statistics
- **WHEN** organizer accesses dashboard
- **THEN** system displays total events, registrations, and revenue
- **AND** shows upcoming events list
#### Scenario: View registration trends
- **WHEN** organizer views dashboard
- **THEN** system displays registration counts over time
- **AND** highlights events nearing capacity
### Requirement: Participant dashboard
The system SHALL provide participants with a dashboard of their registrations.
#### Scenario: View my registrations
- **WHEN** participant accesses dashboard
- **THEN** system displays all their registrations
- **AND** shows status for each
#### Scenario: Upcoming events
- **WHEN** participant views dashboard
- **THEN** system displays registered upcoming events
- **AND** sorts by event date
### Requirement: Quick actions
The system SHALL provide quick access to common actions from the dashboard.
#### Scenario: Organizer quick actions
- **WHEN** organizer views dashboard
- **THEN** system provides links to create event, view reports, and send announcements
#### Scenario: Participant quick actions
- **WHEN** participant views dashboard
- **THEN** system provides links to browse events and view registration history
@@ -0,0 +1,63 @@
## ADDED Requirements
### Requirement: Event categories
The system SHALL allow organizers to assign categories to events.
#### Scenario: Assign category on event creation
- **WHEN** organizer creates event with category
- **THEN** system stores category with event
- **AND** displays category on event details
#### Scenario: Assign category to existing event
- **WHEN** organizer edits event to add category
- **THEN** system updates event with category
#### Scenario: Clear category
- **WHEN** organizer removes category from event
- **THEN** system removes category from event record
### Requirement: Event tags
The system SHALL allow organizers to add multiple tags to events.
#### Scenario: Add tags on event creation
- **WHEN** organizer creates event with multiple tags
- **THEN** system stores all tags with event
- **AND** displays tags on event details
#### Scenario: Modify tags
- **WHEN** organizer edits event tags
- **THEN** system updates tags to new set
### Requirement: Category filtering
The system SHALL allow users to filter events by category.
#### Scenario: Filter by single category
- **WHEN** user filters events by specific category
- **THEN** system returns only events with that category
#### Scenario: Filter with no results
- **WHEN** user filters to category with no events
- **THEN** system returns empty list
- **AND** displays message "No events found"
### Requirement: Tag filtering
The system SHALL allow users to filter events by tags.
#### Scenario: Filter by tag
- **WHEN** user selects tag to filter
- **THEN** system returns events with that tag
#### Scenario: Multi-tag filter
- **WHEN** user selects multiple tags
- **THEN** system returns events matching ANY selected tag
### Requirement: Category management
The system SHALL provide predefined categories for organizers to choose from.
#### Scenario: List available categories
- **WHEN** organizer views category options
- **THEN** system displays predefined list (e.g., Running, Cycling, Triathlon, Trail, Road)
#### Scenario: Category selection
- **WHEN** organizer assigns category to event
- **THEN** system validates against available categories
@@ -0,0 +1,39 @@
## ADDED Requirements
### Requirement: Event creation
The system SHALL allow organizers to create new race events with required details.
#### Scenario: Create event with all details
- **WHEN** organizer provides event name, date, location, and description
- **THEN** system creates event with unique identifier
- **AND** sets event status to "draft"
#### Scenario: Missing required fields
- **WHEN** organizer attempts to create event without name
- **THEN** system returns validation error
- **AND** does not create event
### Requirement: Event editing
The system SHALL allow organizers to modify existing event details.
#### Scenario: Update event date
- **WHEN** organizer changes event date
- **THEN** system updates event date
- **AND** notifies registered participants of change
#### Scenario: Publish event
- **WHEN** organizer publishes draft event
- **THEN** system changes status to "published"
- **AND** makes event visible to participants
### Requirement: Event listing
The system SHALL display events with filtering and sorting options.
#### Scenario: List upcoming events
- **WHEN** user requests upcoming events
- **THEN** system returns events with future dates
- **AND** sorts by date ascending
#### Scenario: Filter by organizer
- **WHEN** user filters events by specific organizer
- **THEN** system returns only events created by that organizer
@@ -0,0 +1,38 @@
## ADDED Requirements
### Requirement: Payment recording
The system SHALL record payment details for event registrations.
#### Scenario: Record cash payment
- **WHEN** organizer records cash payment for registration
- **THEN** system stores payment amount, date, and method
- **AND** updates registration payment status
#### Scenario: Record online payment
- **WHEN** system receives payment confirmation from payment processor
- **THEN** system records transaction ID, amount, and timestamp
- **AND** marks registration as paid
### Requirement: Payment status tracking
The system SHALL track payment status for each registration.
#### Scenario: Unpaid registration
- **WHEN** registration has no recorded payment
- **THEN** system displays status "unpaid"
#### Scenario: Partial payment
- **WHEN** registration has payment less than required amount
- **THEN** system displays status "partial"
- **AND** shows remaining balance
#### Scenario: Fully paid
- **WHEN** registration payment equals or exceeds required amount
- **THEN** system displays status "paid"
### Requirement: Payment reporting
The system SHALL generate payment reports for organizers.
#### Scenario: Event payment summary
- **WHEN** organizer requests payment report for event
- **THEN** system displays total collected, pending, and outstanding amounts
- **AND** lists all registrations with payment status
@@ -0,0 +1,42 @@
## ADDED Requirements
### Requirement: Event registration
The system SHALL allow participants to register for published events.
#### Scenario: Successful registration
- **WHEN** participant submits registration for published event
- **THEN** system creates registration with "pending" status
- **AND** reserves participant spot
#### Scenario: Registration closed
- **WHEN** participant attempts to register for full event
- **THEN** system returns error "Event is full"
#### Scenario: Duplicate registration
- **WHEN** participant attempts to register twice for same event
- **THEN** system returns error "Already registered"
### Requirement: Registration form
The system SHALL collect required participant information during registration.
#### Scenario: Collect participant details
- **WHEN** participant registers for event
- **THEN** system collects name, email, emergency contact, and category
- **AND** stores with registration record
#### Scenario: Missing required fields
- **WHEN** participant submits incomplete form
- **THEN** system displays validation errors
- **AND** prevents submission
### Requirement: Registration status
The system SHALL track and display registration status.
#### Scenario: View registration status
- **WHEN** participant views their registrations
- **THEN** system displays status (pending, confirmed, cancelled, completed)
#### Scenario: Cancel registration
- **WHEN** participant cancels their registration
- **THEN** system updates status to "cancelled"
- **AND** releases reserved spot
@@ -0,0 +1,37 @@
## ADDED Requirements
### Requirement: User registration
The system SHALL allow new users to create accounts with email and password.
#### Scenario: Successful registration
- **WHEN** user provides valid email, password, and confirms password
- **THEN** system creates a new user account
- **AND** system sends email verification
#### Scenario: Duplicate email
- **WHEN** user attempts to register with an existing email
- **THEN** system returns error "Email already registered"
### Requirement: User login
The system SHALL authenticate users with email and password credentials.
#### Scenario: Successful login
- **WHEN** user provides correct email and password
- **THEN** system creates authenticated session
- **AND** redirects to dashboard
#### Scenario: Invalid credentials
- **WHEN** user provides incorrect password
- **THEN** system returns error "Invalid credentials"
- **AND** does not create session
### Requirement: Role-based access control
The system SHALL support organizer and participant roles with different permissions.
#### Scenario: Organizer access
- **WHEN** user with organizer role accesses event management
- **THEN** system allows full event CRUD operations
#### Scenario: Participant access
- **WHEN** user with participant role accesses event management
- **THEN** system restricts to read-only and registration only