# GAP_ANALYSIS_MATRIX.md > Full Project Synchronization: Source Docs vs. Codebase Comparison > Generated: 2025-12-26 --- ## Summary Statistics | Category | Missing | Partial | Wrong | Complete | |----------|---------|---------|-------|----------| | Pages/Routes | 12 | 8 | 2 | 15 | | Components | 8 | 5 | 0 | 14 | | Features | 10 | 6 | 1 | 18 | | **TOTAL** | **30** | **19** | **3** | **47** | --- ## 1. PAGES GAP ANALYSIS ### 1.1 Homepage (`/`) | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | Hero Search | PAGES.md (L46-47) | ✅ Complete | None | | Discovery Tabs (11 categories) | PAGES.md (L51-53), SITE_OVERVIEW.md (L83-93) | ⚠️ Partial | CURRENT: 4 tabs only (Trending, New & Opening, Top Rated, Closing). MISSING: All, Parks, Coasters, Flat Rides, Water Rides, Dark Rides, Shows, Transport | | Content Grid per Tab | PAGES.md (L55-58) | ⚠️ Partial | Cards exist but not all categories implemented | | Recent Changes Feed | PAGES.md (L62-65) | ✅ Complete | Implemented in index.vue | ### 1.2 Parks Pages | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/parks` - Parks Listing | PAGES.md (L101-130) | ✅ Complete | Implemented | | `/parks/nearby` - Location-Based Discovery | PAGES.md (L147-188), SITE_OVERVIEW.md (L25-26) | ❌ Missing | Create new page with Leaflet map, geolocation, radius slider | | `/parks/{slug}` - Park Detail | PAGES.md (L191-256) | ⚠️ Partial | Missing: Reviews Tab, Photos Tab, History Tab, Hero "Edit" and "📷" buttons | | Park Detail - Overview Tab | PAGES.md (L233) | ⚠️ Partial | Missing: Location map embed, Contact info, Operator/Owner links | | Park Detail - Rides Tab | PAGES.md (L234) | ✅ Complete | Implemented with filters | | Park Detail - Reviews Tab | PAGES.md (L235) | ❌ Missing | No reviews tab implemented | | Park Detail - Photos Tab | PAGES.md (L236) | ❌ Missing | No photos gallery tab | | Park Detail - History Tab | PAGES.md (L237) | ❌ Missing | No version history/timeline | ### 1.3 Rides Pages | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/rides` - All Rides Listing | PAGES.md (L262-288) | ✅ Complete | Implemented | | `/parks/{park}/rides/{ride}` - Ride Detail | PAGES.md (L302-362) | ⚠️ Partial | Missing: Specifications Tab, Reviews Tab, Photos Tab, History Tab | | Ride Specifications Tab | PAGES.md (L337-361) | ❌ Missing | Need category-specific spec display (Coasters, Flat, Water, Dark) | | Ride Reviews Tab | PAGES.md (L325) | ❌ Missing | No reviews tab | | Ride Photos Tab | PAGES.md (L325) | ❌ Missing | No photos gallery | | Ride History Tab | PAGES.md (L325) | ❌ Missing | No version history | | Advanced Filters (Speed/Height sliders) | PAGES.md (L275-279) | ❌ Missing | Rides listing needs spec-based filters | ### 1.4 Company Pages | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/manufacturers` - Listing | PAGES.md (L371-393) | ✅ Complete | Implemented | | `/manufacturers/{slug}` - Detail | PAGES.md (L395-418) | ✅ Complete | Implemented | | `/designers` - Designers Listing | PAGES.md (L371), SITE_OVERVIEW.md (L45) | ❌ Missing | Create new page for ride designers | | `/operators` - Operators Listing | PAGES.md (L372), SITE_OVERVIEW.md (L46) | ❌ Missing | Create new page for park operators | | `/owners` - Property Owners | PAGES.md (L373), SITE_OVERVIEW.md (L47) | ❌ Missing | Create new page for property owners | | Company Tabs (Overview, Rides, Models, History) | PAGES.md (L412-413) | ⚠️ Partial | Missing Models Tab, History Tab | ### 1.5 Ride Models | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/ride-models/{slug}` - Model Detail | PAGES.md (L422-450) | ❌ Missing | Create page showing standard specs and all installations | ### 1.6 Search | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/search` - Global Search Page | PAGES.md (L454-497) | ✅ Complete | Implemented | | Type Tabs Filter | PAGES.md (L469-471) | ⚠️ Partial | Basic implementation exists, verify all types | | Recent Searches | PAGES.md (L496) | ❌ Missing | No recent search history | | Keyboard Navigation | PAGES.md (L495) | ⚠️ Partial | Verify arrow key / enter support | ### 1.7 Authentication | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/auth` - Sign In / Sign Up | PAGES.md (L500-551) | ⚠️ Partial | Missing: Magic Link, Google OAuth, Discord OAuth buttons | | CAPTCHA Verification | PAGES.md (L548) | ❌ Missing | No CAPTCHA on forms | | MFA Support (TOTP) | PAGES.md (L548) | ❌ Missing | No MFA setup/verification UI | | Email Confirmation Flow | PAGES.md (L549) | ⚠️ Partial | Backend exists, verify frontend flow | ### 1.8 User Profile | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/profile/{username}` - Public Profile | PAGES.md (L554-591) | ✅ Complete | Implemented at `/profiles/[username].vue` | | Profile Stats (Credits, Reviews, Photos) | PAGES.md (L567) | ⚠️ Partial | Verify all stats displayed | | Badge Display | PAGES.md (L570) | ❌ Missing | No badge system UI | | Activity Tab | PAGES.md (L587) | ⚠️ Partial | Basic implementation | | Reviews Tab | PAGES.md (L588) | ❌ Missing | No dedicated reviews tab on profile | | Lists Tab | PAGES.md (L589) | ⚠️ Partial | Lists exist but verify integration | | Ride Credits Tab | PAGES.md (L590) | ❌ Missing | Credits not shown on public profile | ### 1.9 User Settings | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/settings` - Account Settings | PAGES.md (L594-631) | ❌ Missing | Create settings page with sidebar navigation | | Account Section | PAGES.md (L625) | ❌ Missing | Email, password, delete account | | Security Section | PAGES.md (L626) | ❌ Missing | MFA, sessions, login history | | Privacy Section | PAGES.md (L627) | ❌ Missing | Profile visibility, activity sharing | | Notifications Section | PAGES.md (L628) | ❌ Missing | Email preferences, in-app alerts | | Location & Units Section | PAGES.md (L629) | ❌ Missing | Preferred units, home location | | Data Section | PAGES.md (L630) | ❌ Missing | Export data, submission history | ### 1.10 Ride Credits | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/my-credits` - Ride Credits Dashboard | PAGES.md (L634-678) | ❌ Missing | Create full credits management page | | Statistics Display | PAGES.md (L646-649) | ❌ Missing | Total, Unique, Parks, Countries | | Quick Increment (+/-) | PAGES.md (L654-662) | ❌ Missing | In-line count adjustment | | Add Credit Flow | PAGES.md (L671) | ❌ Missing | Search and log new ride | | Filter by Category/Park/Year | PAGES.md (L650) | ❌ Missing | Comprehensive filtering | ### 1.11 User Lists | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/my-lists` - Personal Rankings | PAGES.md (L681-714) | ⚠️ Partial | Basic list management exists | | Create List | PAGES.md (L689) | ✅ Complete | Exists at `/lists/create.vue` | | Drag-and-Drop Reorder | PAGES.md (L700) | ❌ Missing | No drag-and-drop | | Public/Private Toggle | PAGES.md (L694-700) | ⚠️ Partial | Verify implementation | ### 1.12 Reviews | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | Write Review Form | PAGES.md (L722-741) | ❌ Missing | Need review form component with star rating | | Review Display Card | PAGES.md (L746-756) | ❌ Missing | Need ReviewCard component | | Reply to Review | PAGES.md (L754) | ❌ Missing | No reply functionality | | Report Review | PAGES.md (L754) | ❌ Missing | No report button | | Vote (Thumbs Up/Down) | PAGES.md (L754) | ❌ Missing | No voting system | ### 1.13 Photo System | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | Upload Interface | PAGES.md (L765-793) | ⚠️ Partial | GalleryUploader exists, verify features | | Drag & Drop Upload | PAGES.md (L774-775) | ⚠️ Partial | Verify implementation | | Photo Gallery with Lightbox | PAGES.md (L797-815) | ❌ Missing | No lightbox viewer | | Edit/Crop Before Upload | PAGES.md (L511) | ❌ Missing | No image editing | ### 1.14 Content Submission | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/submit/park` - Submit New Park | PAGES.md (L823), USER_FLOWS.md (L340-436) | ❌ Missing | Multi-step wizard form | | `/submit/ride` - Submit New Ride | PAGES.md (L823) | ❌ Missing | Multi-step wizard form | | `/submit/company` - Submit Company | PAGES.md (L823) | ❌ Missing | Multi-step wizard form | | `/my-submissions` - Submission History | SITE_OVERVIEW.md (L64) | ❌ Missing | View user's past submissions | | Auto-Save Drafts | PAGES.md (L858) | ❌ Missing | No draft persistence | | Unit Toggle in Forms | PAGES.md (L864) | ❌ Missing | Metric/Imperial toggle | ### 1.15 Moderation | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/moderation` - Queue Dashboard | PAGES.md (L874-898) | ✅ Complete | Implemented | | `/moderation/{id}` - Review Interface | PAGES.md (L902-929) | ⚠️ Partial | Basic review exists, missing side-by-side diff | | Claim/Unclaim System | PAGES.md (L886-890), USER_FLOWS.md (L695-700) | ✅ Complete | Implemented with SSE | | Side-by-Side Diff Viewer | PAGES.md (L910-918), COMPONENTS.md (L872-884) | ❌ Missing | No visual diff comparison | | Approve Selected Fields | PAGES.md (L925) | ❌ Missing | Only full approve/reject | ### 1.16 Admin Pages | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/admin` - Dashboard | PAGES.md (L937-962) | ❌ Missing | Only `/admin/system` exists | | `/admin/users` - User Management | PAGES.md (L965-986), USER_FLOWS.md (L752-800) | ⚠️ Partial | Basic user list at `/moderation/users.vue` | | `/admin/monitoring` - System Health | SITE_OVERVIEW.md (L73) | ❌ Missing | No monitoring dashboard | | `/admin/errors` - Error Tracking | SITE_OVERVIEW.md (L74) | ❌ Missing | No error tracker UI | | Ban User Flow | USER_FLOWS.md (L788-797) | ❌ Missing | No ban/unban UI | ### 1.17 Static Pages | Feature Name | Source Doc File | Status | Action Required | |--------------|-----------------|--------|-----------------| | `/terms` - Terms of Service | PAGES.md (L995-997) | ❌ Missing | Create static page | | `/privacy` - Privacy Policy | PAGES.md (L999-1003) | ❌ Missing | Create static page | | `/guidelines` - Community Guidelines | PAGES.md (L1005-1009) | ❌ Missing | Create static page | | `/contact` - Contact Form | PAGES.md (L1011-1042) | ⚠️ Partial | `/support/index.vue` exists but verify full form | | `/blog` - Blog | PAGES.md (L1044-1048) | ✅ Complete | Implemented | --- ## 2. COMPONENTS GAP ANALYSIS ### 2.1 Layout Components | Component | Source Doc File | Status | Action Required | |-----------|-----------------|--------|-----------------| | Header | COMPONENTS.md (L71-93) | ✅ Complete | AppHeader.vue exists | | Footer | COMPONENTS.md (L96-120) | ❌ Missing | No dedicated footer component | | PageContainer | COMPONENTS.md (L123-152) | ⚠️ Partial | Layout exists, verify max-width | | Sidebar (Settings/Admin) | COMPONENTS.md (L155-172) | ❌ Missing | No sidebar navigation | ### 2.2 Navigation Components | Component | Source Doc File | Status | Action Required | |-----------|-----------------|--------|-----------------| | MainNav | COMPONENTS.md (L178-201) | ✅ Complete | In AppHeader | | TabNav | COMPONENTS.md (L204-221) | ✅ Complete | Using UTabs | | Breadcrumbs | COMPONENTS.md (L224-237) | ❌ Missing | No breadcrumb component | | Pagination | COMPONENTS.md (L240-256) | ⚠️ Partial | Verify existence | ### 2.3 Display Components | Component | Source Doc File | Status | Action Required | |-----------|-----------------|--------|-----------------| | Card | COMPONENTS.md (L261-289) | ✅ Complete | BentoCard and others | | Badge | COMPONENTS.md (L292-311) | ✅ Complete | EntityStatusBadge, StatusBadge | | Avatar | COMPONENTS.md (L314-331) | ⚠️ Partial | AvatarUploader exists, check display | | Image (Lazy/Blur) | COMPONENTS.md (L334-358) | ⚠️ Partial | Verify lazy loading | ### 2.4 Form Components | Component | Source Doc File | Status | Action Required | |-----------|-----------------|--------|-----------------| | Input | COMPONENTS.md (L363-388) | ✅ Complete | Using NuxtUI | | Select | COMPONENTS.md (L391-416) | ✅ Complete | Using NuxtUI | | Checkbox/Radio/Switch | COMPONENTS.md (L419-456) | ✅ Complete | Using NuxtUI | | Button | COMPONENTS.md (L459-488) | ✅ Complete | Using UButton | | DatePicker | COMPONENTS.md (L491-518) | ❌ Missing | No date picker | | Slider (Range) | COMPONENTS.md (L521-537) | ❌ Missing | No range slider | ### 2.5 Feedback Components | Component | Source Doc File | Status | Action Required | |-----------|-----------------|--------|-----------------| | Toast | COMPONENTS.md (L542-559) | ✅ Complete | Using NuxtUI | | Alert | COMPONENTS.md (L562-575) | ✅ Complete | Using NuxtUI | | Modal/Dialog | COMPONENTS.md (L578-603) | ✅ Complete | Modals exist | | Loading States | COMPONENTS.md (L606-628) | ⚠️ Partial | Spinner exists, verify skeleton | | Empty State | COMPONENTS.md (L631-647) | ⚠️ Partial | Basic empty states | ### 2.6 Data Display Components | Component | Source Doc File | Status | Action Required | |-----------|-----------------|--------|-----------------| | Table | COMPONENTS.md (L652-672) | ⚠️ Partial | Verify sortable/filterable | | Stats Card | COMPONENTS.md (L675-686) | ✅ Complete | In BentoCard | | Rating Display (Stars) | COMPONENTS.md (L689-704) | ❌ Missing | Need StarRating component | ### 2.7 Entity Components | Component | Source Doc File | Status | Action Required | |-----------|-----------------|--------|-----------------| | ParkCard | COMPONENTS.md (L709-737) | ⚠️ Partial | Verify all fields | | RideCard | COMPONENTS.md (L740-767) | ⚠️ Partial | Verify all fields | | ReviewCard | COMPONENTS.md (L770-786) | ❌ Missing | Create ReviewCard | | CreditCard | COMPONENTS.md (L789-805) | ❌ Missing | Create CreditCard for ride credits | ### 2.8 Specialty Components | Component | Source Doc File | Status | Action Required | |-----------|-----------------|--------|-----------------| | UnitDisplay | COMPONENTS.md (L811-827) | ⚠️ Partial | useUnits exists, verify display | | Map (Leaflet) | COMPONENTS.md (L829-852) | ⚠️ Partial | map.vue exists, verify features | | Timeline | COMPONENTS.md (L855-868) | ⚠️ Partial | timeline.vue exists | | Diff Viewer | COMPONENTS.md (L871-885) | ❌ Missing | Create for moderation | | ImageGallery | COMPONENTS.md (L888-906) | ❌ Missing | With lightbox | | SearchAutocomplete | COMPONENTS.md (L909-923) | ✅ Complete | GlobalSearch.vue | | Tooltip | COMPONENTS.md (L926-938) | ✅ Complete | Using NuxtUI | | HoverCard | COMPONENTS.md (L941-957) | ❌ Missing | Rich preview on hover | --- ## 3. USER FLOWS GAP ANALYSIS ### 3.1 Discovery Flows | Flow | Source Doc File | Status | Action Required | |------|-----------------|--------|-----------------| | Homepage Discovery | USER_FLOWS.md (L21-49) | ⚠️ Partial | Missing all 11 discovery tabs | | Search Flow | USER_FLOWS.md (L51-93) | ✅ Complete | Implemented | | Parks Nearby Flow | USER_FLOWS.md (L95-148) | ❌ Missing | No nearby page with geolocation | ### 3.2 Authentication Flows | Flow | Source Doc File | Status | Action Required | |------|-----------------|--------|-----------------| | Sign Up Flow | USER_FLOWS.md (L154-208) | ⚠️ Partial | Missing OAuth, Magic Link, CAPTCHA | | Sign In Flow | USER_FLOWS.md (L210-279) | ⚠️ Partial | Missing MFA check, Ban check UI | ### 3.3 Content Viewing Flows | Flow | Source Doc File | Status | Action Required | |------|-----------------|--------|-----------------| | Park Page Journey | USER_FLOWS.md (L283-334) | ⚠️ Partial | Missing Reviews/Photos/History tabs | ### 3.4 Contribution Flows | Flow | Source Doc File | Status | Action Required | |------|-----------------|--------|-----------------| | Submit New Content | USER_FLOWS.md (L340-437) | ❌ Missing | No submission forms | | Edit Content Flow | USER_FLOWS.md (L439-485) | ❌ Missing | No edit forms | | Photo Upload Flow | USER_FLOWS.md (L487-545) | ⚠️ Partial | Basic upload exists | ### 3.5 Engagement Flows | Flow | Source Doc File | Status | Action Required | |------|-----------------|--------|-----------------| | Write Review Flow | USER_FLOWS.md (L551-609) | ❌ Missing | No review writing UI | | Log Ride Credit Flow | USER_FLOWS.md (L611-660) | ❌ Missing | No credit logging UI | ### 3.6 Moderation Flows | Flow | Source Doc File | Status | Action Required | |------|-----------------|--------|-----------------| | Moderator Queue Workflow | USER_FLOWS.md (L664-746) | ⚠️ Partial | Missing diff viewer | ### 3.7 Admin Flows | Flow | Source Doc File | Status | Action Required | |------|-----------------|--------|-----------------| | User Management Flow | USER_FLOWS.md (L750-800) | ⚠️ Partial | Basic list, missing actions | --- ## 4. DESIGN SYSTEM GAP ANALYSIS | Feature | Source Doc File | Status | Action Required | |---------|-----------------|--------|-----------------| | Light/Dark Mode | DESIGN_SYSTEM.md (L23-75) | ✅ Complete | Implemented with ThemeSwitcher | | Typography (Inter) | DESIGN_SYSTEM.md (L101-150) | ✅ Complete | Inter font loaded | | Spacing System | DESIGN_SYSTEM.md (L154-172) | ✅ Complete | Using TailwindCSS | | Border Radius | DESIGN_SYSTEM.md (L175-184) | ✅ Complete | Using TailwindCSS | | Shadows | DESIGN_SYSTEM.md (L187-218) | ✅ Complete | Using TailwindCSS | | Glow Effects (Dark Mode) | DESIGN_SYSTEM.md (L220-227) | ⚠️ Partial | Verify implementation | | Animations | DESIGN_SYSTEM.md (L230-278) | ⚠️ Partial | Basic transitions | | Glass Card (Dark Mode) | DESIGN_SYSTEM.md (L335-339) | ❌ Missing | No glassmorphism cards | | Accessibility (Focus States) | DESIGN_SYSTEM.md (L468-471) | ✅ Complete | Using TailwindCSS | | Reduced Motion | DESIGN_SYSTEM.md (L473-476) | ❌ Missing | No prefers-reduced-motion | --- ## 5. PRIORITY BATCHES Based on the gaps identified above, here are the recommended implementation batches: ### BATCH 1: Critical Missing Pages (HIGH PRIORITY) 1. `/my-credits` - Ride Credits Dashboard 2. `/settings` - Full Settings Page (6 sections) 3. `/parks/nearby` - Location-based Discovery 4. `/my-submissions` - Submission History 5. Static Pages: `/terms`, `/privacy`, `/guidelines` ### BATCH 2: Missing Tabs on Existing Pages (HIGH PRIORITY) 1. Park Detail - Add Reviews, Photos, History tabs 2. Ride Detail - Add Specifications, Reviews, Photos, History tabs 3. Homepage - Expand to 11 Discovery Tabs (vs current 4) 4. Profile - Add Reviews, Ride Credits tabs ### BATCH 3: Missing Components (MEDIUM PRIORITY) 1. ReviewCard component 2. CreditCard component 3. StarRating component 4. Diff Viewer component 5. ImageGallery with Lightbox 6. Footer component 7. Breadcrumbs component 8. DatePicker component 9. Range Slider component ### BATCH 4: Submission Forms (MEDIUM PRIORITY) 1. `/submit/park` - Park submission wizard 2. `/submit/ride` - Ride submission wizard 3. `/submit/company` - Company submission wizard 4. Edit forms for existing entities ### BATCH 5: Company Pages (MEDIUM PRIORITY) 1. `/designers` - Designers listing and detail 2. `/operators` - Operators listing and detail 3. `/owners` - Property Owners listing and detail 4. `/ride-models/{slug}` - Ride Model detail page ### BATCH 6: Enhanced Features (LOW PRIORITY) 1. OAuth Authentication (Google, Discord) 2. Magic Link Login 3. CAPTCHA on forms 4. MFA Setup UI 5. Review voting (thumbs up/down) 6. Review replies 7. Recent searches history 8. Drag-and-drop list reordering 9. Glass card effects 10. Reduced motion support --- ## 6. SOURCE DOCUMENT REFERENCE | File | Lines | Primary Coverage | |------|-------|------------------| | SITE_OVERVIEW.md | 245 | Site map, user roles, key journeys | | PAGES.md | 1058 | All page specifications | | COMPONENTS.md | 967 | UI component library | | USER_FLOWS.md | 882 | User journey diagrams | | DESIGN_SYSTEM.md | 496 | Visual identity, colors, typography | --- *This matrix is the Source of Truth for synchronization. Update as gaps are addressed.*