Initial commit: raceplanner project scaffold
This commit is contained in:
Binary file not shown.
@@ -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
|
||||
Reference in New Issue
Block a user