mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-27 16:47:00 -05:00
30 KiB
30 KiB
ThrillWiki: Complete Feature List
1. HOMEPAGE & DISCOVERY
1.1 Hero Search
- 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. SEARCH
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
13.2 Photo Gallery
- 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:
- User fills out form
- Submission record created
- Enters moderation queue
- Moderator claims submission
- Review and approve/reject
- If approved: entity version created, public content updated
- 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
- 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
19.2 Location Search
- 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