Files
thrillwiki_django_no_react/specs/FULL_SPECIFICATION.md

30 KiB

ThrillWiki: Complete Feature List

1. HOMEPAGE & DISCOVERY

  • Autocomplete Search Bar: As you type, suggestions appear for parks, rides, and companies matching your query
  • Recent Searches: Previously searched items are saved and shown for quick access
  • Search Categories: Results are grouped by type (parks, rides, companies)

1.2 Content Discovery Tabs

The homepage displays curated content across 11 different discovery tabs:

  • Trending Parks: Parks with the most page views in the last 30 days
  • Trending Rides: Rides with the most page views in the last 30 days
  • New Parks: Most recently added parks to the database
  • New Rides: Most recently added rides to the database
  • Recent Changes: Latest edits and updates across all entities
  • Top Parks: Highest-rated parks by user reviews
  • Top Rides: Highest-rated rides by user reviews
  • Opening Soon: Parks and rides with upcoming opening dates
  • Recently Opened: Parks and rides that just opened
  • Closing Soon: Parks and rides announced to close
  • Recently Closed: Parks and rides that have recently closed

1.3 Recent Changes Feed

  • Shows entity type, name, change type (created/updated)
  • Displays who made the change and when
  • Links directly to the changed entity's page
  • Handles deleted entities gracefully

2. PARKS

2.1 Parks Listing Page

  • Grid and List Views: Toggle between card grid or compact list display
  • Search: Find parks by name, description, or location
  • Extensive Filtering:
    • Park type (theme park, amusement park, water park, etc.)
    • Operating status (operating, seasonal, closed, etc.)
    • Country, state/province, city
    • Operators and property owners
    • Rating range (minimum to maximum)
    • Ride count range
    • Coaster count range
    • Review count range
    • Opening year range
    • Opening date range
    • Closing soon flag
    • Closing date range
  • Sorting Options: Name, rating, ride count, opening date, etc.
  • Collapsible Sidebar: Save screen space by hiding filters
  • Pagination: Navigate through pages of results
  • Add Park Button: Opens submission form (requires sign-in)

2.2 Parks Nearby Page

  • Geolocation: Uses your device's location to find nearby parks
  • Location Search: Search for any city, postal code, or address to center search
  • Adjustable Radius: Select search radius from 25km to unlimited
  • Unit System Toggle: Switch between metric (km) and imperial (miles)
  • Interactive Map:
    • Shows all parks within radius as markers
    • Markers cluster when zoomed out
    • Click markers to see park preview
    • Your location shown with accuracy radius
  • Distance Display: Each park shows distance from your location
  • Sorting: Sort by distance or alphabetically

2.3 Park Detail Page

  • Hero Banner: Large banner image with park name and status overlay
  • Quick Stats Cards: Total rides, roller coasters, reviews, opening date
  • Status Badges: Shows operating status and park type
  • Location Display: City, state, country with formatted display
  • Closing Banner: Warning banner if park is announced to close
  • Version Indicator: Shows version number with history access
  • Breadcrumb Navigation: Hierarchical navigation back to parks list

Tabs on Park Detail:

  • Overview Tab:
    • Park description (expandable if long)
    • Contact information (phone, website, email)
    • Operating hours and seasonal dates
    • Location map (OpenStreetMap embed)
    • "Best Rated Rides" section showing top-rated rides at this park
    • Operator and property owner information with preview hover cards
  • Rides Tab: All rides at this park in a grid
  • Reviews Tab:
    • Average rating display
    • Rating distribution histogram
    • Review list with pagination
    • Write review button (opens form)
  • Photos Tab: Community-submitted photos gallery
  • History Tab: Complete edit history and timeline events

2.4 Park Rides Page

  • Dedicated page showing all rides at a specific park
  • Same filtering and sorting as main rides page
  • Shows ride cards with ratings and status

3. RIDES

3.1 Rides Listing Page

  • Grid and List Views: Toggle between views
  • Search: Find rides by name or description
  • Comprehensive Filtering:
    • Category (roller coaster, flat ride, water ride, dark ride, etc.)
    • Status (operating, under construction, defunct, SBNO, etc.)
    • Park selection
    • Country and location
    • Manufacturer
    • Designer
    • Ride model
    • Intensity level
    • Wetness level (dry, splash, soaking, etc.)
    • Rotation type (stationary, spinning, etc.)
    • Transport type (chain lift, launch, etc.)
    • Accessibility features
    • Rating range
    • Speed range
    • Height range
    • Length range
    • Drop range
    • Duration range
    • Inversion count range
    • Opening date range
    • Closing date range
  • Sorting: By name, rating, speed, height, length, drop, duration, inversions
  • Pagination
  • Add Ride Button: Opens submission form

3.2 Ride Detail Page

  • Hero Banner: Banner image with ride name, status, and park name overlay
  • SBNO Banner: Special alert if ride is "Standing But Not Operating"
  • Closing Banner: Warning if ride is closing
  • Quick Stats Cards: Speed, height, length, duration, capacity, inversions, drop, G-force
  • Park Link: Hover shows park preview card
  • Version Indicator

Tabs on Ride Detail:

  • Overview Tab:
    • Description
    • Ride highlights (thrill features, records, unique elements)
    • Former names history (if renamed)
    • Similar rides suggestions
    • Recent photos preview
    • Manufacturer and designer information with hover cards
    • Ride model link if applicable
    • Location map
  • Specifications Tab:
    • All technical specifications in organized sections
    • Measurements displayed in user's preferred units
    • Height requirements
    • Capacity information
    • Accessibility notes
    • Roller coaster-specific stats (track type, elements, etc.)
  • Reviews Tab: Same as parks
  • Photos Tab: Community photos
  • History Tab: Edit history and timeline

4. COMPANIES

Companies are categorized into four types with separate listing and detail pages:

4.1 Manufacturers

  • Companies that build rides
  • Listing with filtering by country, status
  • Detail page showing:
    • Company description
    • Contact information
    • Website
    • Rides they manufactured (with link to full list)
    • Ride models they produce (with link to full list)

4.2 Designers

  • Companies that design rides
  • Listing and detail pages
  • Detail page shows rides they designed

4.3 Operators

  • Companies that operate parks
  • Listing and detail pages
  • Detail page shows parks they operate

4.4 Property Owners

  • Companies or entities that own parks
  • Listing and detail pages
  • Detail page shows parks they own

4.5 Company Hover Cards

  • Throughout the app, company names show preview cards on hover
  • Preview includes logo, type, headquarters location, and key stats

5. RIDE MODELS

5.1 Manufacturer Models Page

  • Accessed from manufacturer detail page
  • Lists all ride models that manufacturer produces
  • Shows model name, description, and count of installations

5.2 Ride Model Detail Page

  • Model description and specifications
  • Template specifications that all installations share
  • List of all rides of this model worldwide
  • Photo gallery
  • History timeline

6.1 Global Search Page

  • Full-page search with larger result area
  • Type tabs: All, Parks, Rides, Companies
  • Result counts per type

6.2 Search Filtering

  • Location Filters: Country, state/province
  • Rating Range: Minimum and maximum
  • Toggle Filters Panel: Show/hide for more screen space

6.3 Search Sorting

  • Relevance
  • Name
  • Rating
  • Review count
  • Ride count (for parks)
  • Opening date

6.4 Search Results

  • Rich result cards with images, ratings, and type indicators
  • Quick actions per result
  • Empty state with suggestions

7. USER AUTHENTICATION

7.1 Sign In Options

  • Email/Password: Traditional login
  • Magic Link: Passwordless email sign-in
  • Google OAuth: Sign in with Google
  • Discord OAuth: Sign in with Discord

7.2 Sign Up

  • Email, password, username, display name
  • CAPTCHA verification (Cloudflare Turnstile)
  • Email confirmation required

7.3 Multi-Factor Authentication (MFA)

  • TOTP-based (authenticator app)
  • Required for admin and moderator accounts
  • MFA challenge modal during login
  • Session AAL (Authentication Assurance Level) tracking

7.4 Account Security Features

  • Session management (view/revoke active sessions)
  • Password change with old password verification
  • Add password to OAuth-only accounts
  • Ban detection on login (prevents banned users)
  • Storage warning (if localStorage disabled)

8. USER PROFILE

8.1 Profile Page

  • Profile Header: Avatar, display name, username, join date
  • Profile Bio: User description
  • Location Display (if privacy allows)
  • Role Badge: Displays if moderator/admin
  • Edit Profile Button (own profile only)
  • Block User Button (other profiles)

8.2 Profile Statistics

  • Unique ride credits
  • Total rides taken
  • Parks visited
  • Coasters ridden

8.3 Profile Tabs

  • Activity Tab:
    • Recent submissions (parks, rides, photos, etc.)
    • Recent rankings/lists
    • Recent reviews
    • Recent ride credits added
    • Each activity shows status (pending, approved, rejected)
  • Reviews Tab: All user's reviews
  • Lists Tab: User's custom lists
  • Ride Credits Tab: User's ride history

8.4 Profile Editing

  • Change display name
  • Change username (with confirmation dialog - limited changes)
  • Update bio
  • Upload/change avatar photo
  • Profile shows preview in real-time

9. USER SETTINGS

9.1 Account & Profile Tab

  • View/change email address (requires verification)
  • View linked authentication providers
  • Profile picture management
  • Display name editing

9.2 Security Tab

  • Password management
    • Change existing password
    • Add password to OAuth account
  • Multi-Factor Authentication
    • Enroll new TOTP authenticator
    • View enrolled factors
    • Remove MFA factors
  • Active Sessions
    • View all logged-in devices/browsers
    • Revoke individual sessions
    • Session shows device info, location, last active

9.3 Privacy Tab

  • Profile visibility (public, registered users only, private)
  • Location visibility
  • Show/hide email on profile
  • Data deletion options

9.4 Notifications Tab

  • Email notification preferences
  • In-app notification preferences
  • Digest frequency settings
  • Notification rate limiting

9.5 Location & Info Tab

  • Personal location (displayed on profile)
  • Home park selection
  • Timezone setting
  • Biography/about text

9.6 Data & Export Tab

  • Data Export: Download all your data as JSON
    • Profile information
    • Reviews
    • Ride credits
    • Lists
    • Submissions
  • Account Deletion:
    • Request account deletion
    • 7-day grace period
    • Email verification required
    • Cancel pending deletion
    • Scheduled deletion date shown

10. RIDE CREDITS (RIDE COUNT TRACKING)

10.1 Credits Overview

  • Total ride count (sum of all rides taken)
  • Unique credits (unique rides)
  • Parks visited
  • Coasters ridden

10.2 Credit Cards

  • Each credit shows:
    • Ride name and park
    • Ride category and type icons
    • First ride date
    • Total ride count
    • User rating
    • Personal notes
    • Card/banner image

10.3 Credit Management

  • Add Credit: Search and select ride, enter date and count
  • Edit Credit: Update count, date, notes
  • Delete Credit: Remove with confirmation
  • Reorder Credits: Drag-and-drop to arrange custom order

10.4 Credit Filtering

  • By category (roller coaster, flat ride, etc.)
  • By park
  • By manufacturer
  • By country/region
  • By ride status
  • By intensity level

10.5 Credit Sorting

  • Custom order (manual arrangement)
  • Date (first ride date)
  • Count (times ridden)
  • Alphabetical

10.6 Credit Views

  • Grid view (card layout)
  • List view (compact table)
  • Edit mode (drag handles visible)

11. USER LISTS (RANKINGS)

11.1 List Creation

  • Title and description
  • List type (parks, rides, coasters, companies, or mixed)
  • Public/private visibility toggle

11.2 List Types

  • Parks only
  • Rides only
  • Coasters only
  • Companies only
  • Mixed (any combination)

11.3 List Item Management

  • Search and add items
  • Add personal notes per item
  • Reorder items by dragging
  • Remove items
  • Automatic position numbering

11.4 List Display

  • Numbered ranking display
  • Entity images and basic info
  • Notes visible
  • Links to entity pages

11.5 List Visibility

  • Toggle public/private per list
  • Eye icon indicates current visibility
  • Private lists only visible to owner

12. REVIEWS & RATINGS

12.1 Review Creation

  • Star rating (1-5 stars, half-star precision)
  • Review title
  • Review content (text body)
  • Submit for moderation

12.2 Reviews Display

  • Star rating visualization
  • Reviewer info (username, avatar)
  • Review date
  • Review content
  • Helpful vote count

12.3 Review Interaction

  • Helpful Vote: Mark reviews as helpful
  • Edit: Edit your own reviews
  • Delete: Delete your own reviews
  • Vote count display per review

12.4 Rating Statistics

  • Average rating (displayed on entity pages)
  • Review count
  • Rating distribution chart (1-5 stars histogram)
  • Rating shown on cards throughout app

12.5 Review Moderation

  • All reviews go through moderation queue
  • Approved reviews become visible
  • Rejected reviews with reason sent to user

13. PHOTOS

13.1 Photo Upload

  • Drag and Drop: Drop files onto upload zone
  • File Browser: Click to select files
  • Multiple Upload: Upload up to 10 photos at once
  • Image Editor: Crop, rotate, adjust before upload
  • Caption Editor: Add captions to each photo
  • Progress Indicator: Shows upload progress
  • Grid layout with thumbnails
  • Click to view full-size in modal
  • Navigation between photos (prev/next)
  • Photo credits shown
  • Captions displayed
  • "Set as Banner/Card" option for entity owners

13.3 Photo Management (Entity Pages)

  • Add Photos Button: Opens upload dialog
  • Photo Management Dialog:
    • Delete photos
    • Update captions
    • Set as banner image
    • Set as card image

13.4 Photo Submissions

  • All photos go through moderation
  • Submission preview shows thumbnails
  • Batch approval/rejection
  • Reviewer notes for rejections

14. CONTENT SUBMISSION SYSTEM

14.1 The Sacred Pipeline

Every piece of user content follows this flow:

  1. User fills out form
  2. Submission record created
  3. Enters moderation queue
  4. Moderator claims submission
  5. Review and approve/reject
  6. If approved: entity version created, public content updated
  7. Visible on site

14.2 Park Submission Form

  • Basic Info Section:
    • Name (required)
    • Slug (auto-generated, editable)
    • Description
    • Park type dropdown
    • Status dropdown
  • Location Section:
    • Location search (autocomplete)
    • Or create new location inline
    • Country, state, city, postal code
    • Coordinates (latitude/longitude)
    • Timezone
  • Dates Section:
    • Opening date (with precision: exact, month, year)
    • Closing date (with precision)
    • Is closing flag
  • Media Section:
    • Banner image upload
    • Card image upload
  • Contact Section:
    • Phone
    • Email
    • Website
  • Relationships Section:
    • Operator (select or create new)
    • Property owner (select or create new)
  • Moderation Section:
    • Submission notes (explain changes)
    • Test data flag (for testing)

14.3 Ride Submission Form

  • Basic Info:
    • Name
    • Slug
    • Description
    • Category dropdown
    • Status dropdown
  • Park Selection:
    • Search existing parks
    • Or create new park inline
  • Specifications (all with unit conversion):
    • Maximum speed
    • Height
    • Length
    • Drop height
    • Duration
    • Capacity per hour
    • Inversions count
    • G-force
    • Minimum height requirement
  • Ride Attributes:
    • Intensity level
    • Wetness level
    • Rotation type
    • Transport type (lift type)
    • Accessibility features
  • Roller Coaster Specific (if category is coaster):
    • Coaster type (steel, wood, hybrid)
    • Seating type (sit-down, inverted, flying, etc.)
    • Track layout (out and back, twister, etc.)
    • Additional technical specs
  • Relationships:
    • Manufacturer (select or create)
    • Designer (select or create)
    • Ride model (select or create)
  • Dates:
    • Opening date with precision
    • Closing date with precision
  • Media:
    • Banner and card images
  • Former Names:
    • Add name history with date ranges
  • Technical Specifications Editor:
    • Add custom specs (name, value, unit)
    • Organized by categories

14.4 Company Submission Forms

Separate forms for each company type:

  • Manufacturer form
  • Designer form
  • Operator form
  • Property owner form

Each includes:

  • Name and slug
  • Description
  • Company type
  • Headquarters location
  • Website
  • Logo image

14.5 Ride Model Submission Form

  • Model name
  • Description
  • Associated manufacturer
  • Template specifications
  • Photos

14.6 Composite Submissions

When creating a new entity that references another non-existent entity:

  • Create new park inline while submitting ride
  • Create new manufacturer inline while submitting ride
  • Create new operator inline while submitting park
  • All linked entities bundled into single submission
  • Moderator can approve/reject individual parts

14.7 Form Features

  • Auto-save Drafts: Work saved locally
  • JSON Import: Import sample data or paste JSON
  • Sample Data Loading: Pre-fill with example data
  • Unit System Toggle: Switch between metric/imperial while editing
  • Unit Conversion Preview: See both units in real-time
  • Field Validation: Real-time error highlighting
  • Error Summary: Collapsible list of all validation errors
  • Help Tooltips: Explanations for complex fields
  • Submission Help Dialog: Explains moderation process

15. VERSIONING & HISTORY

15.1 Version Indicator

  • Displayed on entity pages
  • Shows version number
  • Indicates last change date
  • Click opens history panel

15.2 Entity History Tabs

  • Edit History Tab:
    • Chronological list of all versions
    • Each version shows:
      • Version number
      • Change type (created, updated, deleted)
      • User who made change
      • Change timestamp
      • Change reason
    • Select two versions to compare
    • "Restore" button (moderators only)
  • Timeline Tab:
    • Historical events for the entity
    • Events like "renamed", "relocated", "record broken"
    • Each event has date and description

15.3 Version Comparison

  • Side-by-side field comparison
  • Visual diff highlighting:
    • Green: Added fields
    • Red: Removed fields
    • Yellow: Modified fields
  • Old value vs new value display
  • Handles complex fields (locations, specs)

15.4 Rollback/Restore

  • Moderators can restore previous versions
  • Creates new submission for review
  • Audit trail maintained

16. MODERATION SYSTEM

16.1 Moderation Queue

  • Queue Statistics Cards:
    • Pending submissions count
    • Pending reports count
    • Flagged content count
  • Queue Tabs:
    • Moderation (submissions)
    • Reports (user reports)
    • Activity (recent actions)

16.2 Queue Filtering

  • Entity type (all, parks, rides, companies, etc.)
  • Status (pending, approved, rejected)
  • Date range
  • Submitter

16.3 Queue Sorting

  • Created date
  • Priority
  • Submitter
  • Type

16.4 Queue Items Display

Each item shows:

  • Submitter username and avatar
  • Submission type badge
  • Entity name
  • Action type (create/edit)
  • Created timestamp
  • Status badge
  • Lock indicator (if claimed)
  • Preview of changes

16.5 Claim System

  • Moderator must claim submission before acting
  • Claim lock shown to other moderators
  • Lock expires after 30 minutes
  • Force release available for admins
  • Prevents conflicts between moderators

16.6 Submission Review

  • Full Data Preview: See all submitted data
  • Change Diffs: For edits, shows what changed
  • Field Comparison: Side-by-side old/new values
  • Photo Preview: Thumbnails of submitted photos
  • Location Preview: Map for location changes
  • Validation Status: Shows any validation warnings

16.7 Approval Actions

  • Approve All: Approve entire submission
  • Selective Approval: Approve specific items only
  • Reject All: Reject entire submission
  • Selective Rejection: Reject specific items
  • Request Changes: Ask user for modifications
  • Reviewer Notes: Add notes for decision

16.8 Bulk Operations

  • Select multiple submissions
  • Bulk approve selected
  • Bulk reject selected
  • Results dialog shows success/failure per item

16.9 Conversion Tool

  • Convert "create" submission to "edit"
  • When duplicate entity found
  • Links to existing entity
  • Preserves submitted data

16.10 Rejection Dialog

  • Select rejection reason from presets
  • Add custom notes
  • Notification sent to submitter

16.11 Reports Queue

  • User-submitted reports of content issues
  • Report type (inaccurate, inappropriate, etc.)
  • Report description
  • Link to reported entity
  • Actions: Dismiss, Take action, Escalate

16.12 Recent Activity

  • Log of recent moderation actions
  • Shows moderator, action, entity, timestamp
  • Filterable by action type

16.13 Moderation Audit Log

  • Complete audit trail
  • All approval/rejection decisions
  • Moderator identification
  • Timestamps
  • Notes and reasons

17. ADMIN FEATURES

17.1 User Management

  • User List: All users with search
  • User Details: Profile, activity, roles
  • Role Management:
    • Assign roles: user, moderator, admin
    • Role requires confirmation
    • MFA requirement enforcement
  • User Actions:
    • Ban user (with reason)
    • Unban user
    • Delete user (with confirmation)
    • View user's submissions

17.2 Admin Dashboard

  • Overview statistics
  • Pending queue counts
  • System health indicators
  • Quick access cards to sections

17.3 Admin Settings

  • Moderation Settings:
    • Auto-refresh mode (on/off)
    • Polling interval
    • Default sort order
  • Notification Settings:
    • Admin alert thresholds
    • Email notification toggles
  • System Settings:
    • Maintenance mode toggle
    • Feature flags

17.4 Blog Management

  • Create blog posts
  • Edit existing posts
  • Publish/unpublish
  • SEO settings per post

17.5 Support/Contact

  • View contact form submissions
  • Reply to messages
  • Merge duplicate tickets
  • Mark as resolved

17.6 Monitoring Hub

  • Overview: System health dashboard
  • Database Stats:
    • Table sizes
    • Row counts
    • Growth trends
    • Entity comparisons
    • Top contributors
    • Data quality metrics
  • Approval History:
    • Historical approval data
    • Date range filtering
    • Export functionality
  • Edge Function Logs:
    • Live logs from backend functions
    • Filter by function name
    • Search log content
    • Error highlighting

17.7 Error Monitoring

  • Error Lookup: Search errors by ID
  • Error List: Recent errors with details
  • Error Details Modal:
    • Error message
    • Stack trace
    • User context
    • Request metadata
    • Submission links

17.8 Trace Viewer

  • View distributed traces
  • Span hierarchy visualization
  • Timing breakdown
  • Debug backend operations

17.9 Database Maintenance

  • Location Deduplication: Find and merge duplicate locations
  • Orphaned Image Cleanup: Remove unused uploaded images
  • Quick Undo Merge: Rollback recent location merges
  • Data Retention Panel: Manage data cleanup schedules

17.10 Database Manager

  • Direct entity management (emergency use)
  • Create entities bypassing moderation (emergency)
  • Delete entities with cascade
  • Reserved for critical fixes only

17.11 SEO Audit

  • Check all entities for SEO issues
  • Missing titles, descriptions
  • Image alt text verification
  • Slug validation

17.12 OG Tag Preview

  • Preview Open Graph tags for any page
  • Social media share previews
  • Twitter card preview
  • Debug missing data

17.13 OpenStreetMap Usage

  • Track API usage
  • Rate limit monitoring
  • Quota tracking

18. ERROR HANDLING

18.1 User Error Experience

  • Generic error messages only
  • "Something went wrong. Please try again."
  • Reference ID provided for support
  • No technical details exposed

18.2 Admin/Moderator Error Experience

  • Comprehensive Error Modal:
    • Full error message
    • Stack trace
    • Error classification
    • Request context
    • User information
    • Submission IDs
    • Suggested actions

18.3 Error Logging

  • All errors logged to database
  • Error monitoring dashboard
  • Searchable by ID
  • Context preservation

19. MAPS & LOCATION

19.1 OpenStreetMap Integration

  • Embedded maps on entity pages
  • Interactive maps for nearby parks
  • Map markers with popups
  • Autocomplete location search
  • Results from OpenStreetMap Nominatim
  • City, state, country extraction
  • Coordinate extraction

19.3 Geolocation

  • Browser geolocation support
  • Accuracy display
  • Permission handling
  • Fallback for denied permission

19.4 Interactive Parks Map

  • Leaflet-based interactive map
  • Marker clustering
  • Park preview popups
  • User location marker
  • Radius circle overlay
  • Zoom controls

19.5 Location Enrichment

  • Automatic timezone detection
  • Country/state parsing
  • Coordinate validation

20. MEASUREMENT UNITS

20.1 Unit Preferences

  • Metric: km/h, meters, centimeters, kilograms
  • Imperial: mph, feet, inches, pounds
  • Preference stored per-user
  • Anonymous users: auto-detect by location

20.2 Unit Display

  • All measurements shown in user's preferred units
  • Automatic conversion from stored metric values
  • Unit labels included

20.3 Form Unit Handling

  • Input in either unit system
  • Live conversion preview
  • Stored always in metric
  • Unit toggle in forms

20.4 Unit Types

  • Speed (km/h ↔ mph)
  • Distance (m ↔ ft)
  • Large distance (km ↔ mi)
  • Height/short (cm ↔ in)
  • Weight (kg ↔ lbs)

21. NOTIFICATIONS

21.1 In-App Notifications

  • Notification bell in header
  • Unread count badge
  • Notification feed
  • Mark as read/unread
  • Click to navigate

21.2 Email Notifications

  • Submission status updates
  • Review responses
  • Admin alerts
  • System announcements

21.3 Notification Types

  • Submission approved/rejected
  • New review on your entity
  • Role changes
  • System alerts

21.4 Notification Preferences

  • Per-notification-type toggles
  • Email on/off
  • In-app on/off
  • Digest frequency

22. BLOG

22.1 Blog Index

  • List of published posts
  • Featured image
  • Excerpt
  • Author and date
  • Categories/tags

22.2 Blog Post Page

  • Full content
  • Author information
  • Related posts
  • Social sharing

22.3 Blog Admin

  • Create/edit posts
  • Draft/publish status
  • Scheduled publishing
  • SEO settings

23. STATIC PAGES

23.1 Terms of Service

  • Legal terms
  • Formatted content

23.2 Privacy Policy

  • Data handling explanation
  • Cookie policy
  • User rights

23.3 Submission Guidelines

  • How to contribute
  • Quality standards
  • Moderation process explanation
  • Tips for approval

23.4 Contact Page

  • Contact form
  • Support information
  • Response time expectations

24. REPORTING SYSTEM

24.1 Report Button

  • Available on entities and reviews
  • Opens report dialog

24.2 Report Types

  • Inaccurate information
  • Inappropriate content
  • Duplicate entry
  • Spam
  • Other

24.3 Report Form

  • Report type selection
  • Description field
  • Submit button

24.4 Report Processing

  • Appears in admin reports queue
  • Review and action
  • Close report

25. THEME & UI

25.1 Light/Dark Mode

  • System preference detection
  • Manual toggle
  • Persisted preference
  • Smooth transition

25.2 Responsive Design

  • Mobile-optimized layouts
  • Touch-friendly interactions
  • Collapsible sidebars on mobile
  • Swipeable tab content
  • Mobile-specific navigation

25.3 Loading States

  • Skeleton loaders for content
  • Loading spinners for actions
  • Progress indicators for uploads
  • Shimmer effects

25.4 Empty States

  • Friendly illustrations
  • Helpful messages
  • Action suggestions

26. SEO & SHARING

26.1 Open Graph Tags

  • Dynamic OG images
  • Page-specific titles
  • Descriptions
  • Type metadata

26.2 URL Structure

  • /parks - Parks listing
  • /parks/{slug} - Park detail
  • /parks/{slug}/rides - Park's rides
  • /parks/{slug}/rides/{slug} - Ride at park
  • /parks/nearby - Nearby parks
  • /rides - Rides listing
  • /manufacturers - Manufacturer listing
  • /manufacturers/{slug} - Manufacturer detail
  • /manufacturers/{slug}/rides - Manufacturer's rides
  • /manufacturers/{slug}/models - Manufacturer's models
  • /manufacturers/{slug}/models/{slug} - Model detail
  • /designers, /owners, /operators - Similar patterns
  • /profile/{username} - User profile
  • /settings - User settings
  • /admin - Admin dashboard
  • /search - Search page
  • /blog - Blog

26.3 Sitemap

  • Dynamic sitemap generation
  • All entities included
  • Priority settings

27. PERFORMANCE

27.1 Lazy Loading

  • Pages lazy loaded on navigation
  • Images lazy loaded on scroll
  • Tabs load content on activation

27.2 Caching

  • React Query data caching
  • Stale-while-revalidate
  • Optimistic updates

27.3 Prefetching

  • Route prefetching on hover
  • Related data prefetching
  • Search result preloading

28. ACCESSIBILITY

28.1 Keyboard Navigation

  • Full keyboard support
  • Focus indicators
  • Tab order management

28.2 Screen Reader Support

  • Semantic HTML
  • ARIA labels
  • Alt text for images
  • Announcements for updates

28.3 Visual Accessibility

  • High contrast modes
  • Scalable text
  • Color not sole indicator