Skip to content

Spec-to-Implementation Traceability

This page maps every V2 specification section to its implementation status in the frontend codebase. Use it to trace any spec requirement back to the code that implements it.

Legend:

  • Done — Implemented with functional UI and mock data
  • Partial — Component exists but incomplete
  • Not Started — No implementation yet
  • Backend — Backend-only requirement, no frontend work needed yet

Doc 1: Core Platform and Accounts

See Accounts guide | Privacy guide | Safety guide

FeatureStatusNotes
Login pageDoneEmail/password form
Register pageDoneEmail registration
Forgot/Reset PasswordDoneFull flow
Email verificationDoneVerify email page
Google OAuth buttonPartialButton exists, not wired
Apple Sign-In buttonDoneMock Apple SSO button on Login + Register pages
Age verification gateDoneAgeVerification.tsx — dedicated page with DOB input + tier routing
COPPA Tier 1 (school-only)DoneTier 1 flow built in RoleOnboarding (StudentTier1 sub-flow)
COPPA Tier 2 (parent-linked)DoneParentalConsent.tsx + StudentTier2 onboarding flow
Context switcherDoneContextSwitcher + AccountSwitcher components
User profile/settingsDoneAccount page
Privacy settingsPartialPage exists, no per-field granularity
Notification preferencesDoneNotificationPreferences.tsx — per-category grid (6x3), quiet hours, digest frequency
Data export requestDoneDataExportRequest.tsx — 5 data categories, export history
Account deletion flowDoneAccountDeletion.tsx — confirmation flow with type DELETE
Linked accounts managementDoneLinkedAccounts.tsx — OAuth provider cards, link/unlink, family accounts

Doc 2: Challenge System and Track Records

See Challenges guide | Track Records guide

FeatureStatusNotes
Challenge detail pageDoneFull detail with tabs
Challenge card componentDoneChallengeCard + ChallengeGrid
My Challenges pageDoneList view
My Challenges 5-tab structurePartialTabs exist but not all states
Track Record create/editDoneTR page with entry form
TR entries (text + media)DoneEntryCard, EntryForm, MediaUpload
TR gallery on challenge detailDoneTrackRecordGallery component
Milestone checklist/progressPartialBasic, no per-milestone tracking UI
Verification submission flowPartialSubmit exists, no reflection step
Verification status displayPartialBasic status, no retry flow
TR revision after rejectionDoneTrackRecordRevision.tsx — rejection banner, editable fields, revision history, resubmit
Portfolio pageDonePortfolios page + PortfolioView
Portfolio builder/exportPartialPortfolioBuilder exists, no PDF export
User-created challenge submissionDoneSubmitChallenge.tsx — 4-step form (info, details, milestones, review)
Challenge versioningDoneChallengeVersionHistory.tsx — timeline, diff view, restore, compare
Sharing settings (Pattern B)DoneSharingSettings + BatchShareModal + ShareButton + useShareStore + sharing.api.ts
Finalization flowDone5-step finalization (Experience/Provider/Reflection/Scrapbook/Review)
Challenge discussion tabDoneChallengeDiscussion component

Doc 3: Gifting and Invitations

See Gifting guide

FeatureStatusNotes
Gifts pageDoneGifts page
Gift card componentDoneGiftCard, GiftModal
Gift permission settingsDoneGiftPermissionSettings
Gift creation flowPartialModal exists, not full vendor redirect
Gift redemption flowDoneGiftRedemption.tsx — code entry, gift card UI, accept with confetti celebration
Gift status trackingPartialBasic status, no expiration
Invite flowPartialInvitationStore exists
Share/Recommend to communitiesDoneBatchShareModal.tsx — two-panel batch share to communities
School bulk gift interfaceDoneBulkGiftChallenges.tsx — 4-step wizard, class/student select, cost breakdown, discount

Doc 4: Explore and Discovery

See Explore guide

FeatureStatusNotes
Explore pageDoneMain explore with search
Search barDoneSearchFilterBar, SearchTrigger
Filter sidebar/modalDoneFilterSidebar, FilterModal, AppliedFilters
Active filters chipsDoneActiveFilters component
Curated view tabs (6 families)PartialSome views (Best Fit, Featured, Free, Popular, New) but not full 6-family structure
Category browse pageDoneExploreCategoryView
Best Fit recommendationsPartialPage exists, no real algorithm
Saved list (Bucket List + Interesting)DoneSavedList page
Dealer's ChoiceDoneDealersChoicePage.tsx — full card game (intro, deal, reveal, accept/pass, cooldown) with useDealersChoiceStore + dealersChoice.api.ts
Map viewDoneMapView.tsx — SVG map with colored pins, category filters, sidebar list
Calendar viewPartialCalendarView component exists, basic
Event registration/waitlistDoneEventDetailPanel.tsx — register/waitlist/add-to-calendar integrated into MapView

Doc 5: Communities and Social

See Communities guide

FeatureStatusNotes
Communities browse pageDoneCommunities page
Community detail pageDoneCommunityDetail page
Community cardDoneCommunityCard, CommunityHeader
Feed postsDoneFeedPost component
Member listDoneMemberList component
3-feed structure (BL/TR/Discussion)PartialFeeds exist but not fully separated
Pattern B batch sharingDoneBatchShareModal.tsx — two-panel dialog (items + communities) + ShareButton
Community type selector (6 types)PartialSome types, not all 6
Private communitiesDonePrivateCommunities page
School communitiesDoneSchoolCommunity page
Community goalsDoneCommunityGoals page + store
Community moderation toolsDoneCommunityModTools.tsx — remove/warn/mute/ban with confirmations, action log
Join request flowDoneJoinRequestFlow.tsx — request button, pending state, admin approve/deny queue

Doc 6: School Administration

See School guide | Teacher role | School Admin role

FeatureStatusNotes
School dashboard (SA)DoneSchoolDashboard page
Roster managementDoneRoster page
CSV roster importDoneCSVRosterImport.tsx — drag-drop upload, column mapping, validation, preview
Individual student addPartialBasic form, no full validation
Class managementDoneClasses page
Grade levelsDoneGrades page
Teacher managementDoneTeachers page
Assignments pageDoneAssignments page
Assignment builderPartialModal exists (AssignChallengeModal), not full builder
Class progressDoneClassProgress page
Teacher reviews / verificationDoneTeacherReviews page
Student enrollment modalDoneStudentEnrollmentModal
SurveysDoneSurveys page
Purchase request queueDonePurchaseRequestQueue.tsx — filterable list, approve/deny, budget tracking
School analyticsPartialBasic stats, not full dashboard per spec
Parent dashboard (school)DoneParentDashboard page
SA setup wizardDoneSA onboarding flow built in RoleOnboarding.tsx (6-step SA sub-flow)
Alumni transitionDoneAlumniTransition.tsx — graduating student list, transition/archive/export actions, batch ops

Doc 7: Reflection and SEL Tracking

See Reflection guide

FeatureStatusNotes
Reflection prompts on TR submitPartialReflectionPrompts component exists, integrated in finalization flow
7 prompt typesDonereflection.types.ts extended with yes_no, mc_multi, and all 7 types
Age-appropriate defaultsDoneReflectionDefaults.tsx — 3-tier config (6-8, 9-12, 13-17), prompt types, difficulty, min length
School question bankDoneReflectionAnalyticsAdmin.tsx includes question bank management (add/edit/delete)
Teacher assignment reflection configDoneTeacherReflectionConfig.tsx — mode selector, custom prompts, SEL tags, preview
My Reflections pageDoneMyReflections.tsx — student view of past reflections
Teacher reflection analyticsDoneReflectionAnalytics.tsx — class selector, per-prompt breakdown, SEL heat map
SA reflection analyticsDoneReflectionAnalyticsAdmin.tsx — school-wide stats + question bank management
SEL competency taggingPartialSEL heat map in teacher analytics; tagging per-prompt not yet configurable
Keyword flaggingBackendDeferred to v2 per spec

Doc 8: Gamification System

See Gamification guide

FeatureStatusNotes
XP counter displayPartialLevelProgress shows XP, no animated counter
Level badge + progressDoneLevelProgress component
Badge card + gridDoneBadgeCard, BadgeGrid, BadgeCollection
Badge unlock modalDoneNewBadgeModal
XP gain toastDoneXPGainToast component
Streak displayDoneStreakDisplay component
Journey Map pageDoneJourneyMap page + component
Journey Map visualizationPartialPage exists, no interactive map canvas
XP History pageDoneXPHistory page
Badges pageDoneBadges page
Badge showcase (top 5 on profile)DoneBadgeShowcase.tsx — top 5 badges with tier-colored borders + tooltips
Learning Paths browseDoneLearningPaths page
Learning Path detailDoneLearningPathDetail page
Learning Path progressDonePathProgress, PathCard components
LeaderboardDoneLeaderboardTable component
Leaderboard opt-in controlsDoneLeaderboardOptIn.tsx — master toggle + granular controls + display name
Level-up celebration modalDoneLevelUpModal.tsx — confetti animation, gradient header, unlocked features
Community goalsDoneCommunityGoals page
Group challengesDoneGroupChallenge.tsx — team members, group progress, milestones, team chat, leader controls

Doc 9: Admin and Analytics

See Admin guide | Platform Admin role

FeatureStatusNotes
User managementDoneUserManagement page
Verification queueDoneVerificationQueue page
Vendor managementDoneVendorManagement page
Challenge managementDoneChallengeManagement page
Challenge series managementDoneChallengeSeriesManagement page
Coupon managementDoneCouponManagement page
Order managementDoneOrderManagement page
Review moderationDoneReviewModeration page
Schools managementDoneSchoolsManagement page
Platform settingsDonePlatformSettings page
Analytics dashboardDoneAnalyticsDashboard page
7 admin roles with permissionsDoneAdminRoles.tsx — permission matrix + user assignment; AdminRoleGuard component; useAdminStore + admin.types.ts
User detail view + moderationDoneUserDetail.tsx — profile, moderation actions, activity log
Challenge approval queueDoneChallengeApprovalQueue.tsx — filterable queue, approve/reject/request changes, assign reviewer
Featured content managementDoneFeaturedContent.tsx — 3-tab ordered list, reorder buttons, add/remove, preview mode
School health dashboardDoneSchoolHealthDashboard.tsx — health indicators, engagement rates, expandable details
Flagged content moderation queueDoneFlaggedContentQueue.tsx — card-based queue with approve/reject/escalate
Audit log viewerDoneAuditLog.tsx — filterable table with date range, user, and action filters
Executive analytics dashboardPartialAnalyticsDashboard is basic, not role-specific
Product analytics (funnels, cohorts)DoneProductAnalytics.tsx — conversion funnel, cohort retention, key metrics, top content
Engineering analytics (system health)DoneEngineeringAnalytics.tsx — uptime, API response times, error log, infra status, deployments
Content analyticsDoneContentAnalytics.tsx — content performance, category breakdown, content gaps, trending
Custom report builderDoneReportBuilder.tsx — 4-step wizard, data sources, metrics, filters, preview, saved reports
Scheduled report deliveryDoneIntegrated into ReportBuilder — schedule toggle (Daily/Weekly/Monthly) on saved reports

Doc 10: Data Security and Privacy

See Privacy guide | Safety guide

FeatureStatusNotes
Column-level encryptionBackendBackend infrastructure
JWT RS256 authBackendBackend (mock JWT in FE)
Rate limitingBackendBackend infrastructure
RBAC enforcementDoneRoleGuard + AuthGuard + AdminRoleGuard with 7-role granularity
CSRF protectionBackendBackend infrastructure
EXIF stripping on uploadBackendBackend/media pipeline
Data subject access request UIDoneDataAccessRequest.tsx — GDPR/CCPA form, 4 request types, conditional details, history
Privacy consent tracking UIDoneConsentGuard + CookieConsentBanner + useLegalStore

Doc 11: Notifications and Communications

See Notifications guide

FeatureStatusNotes
Notification center (in-app)DoneNotificationCenter component
Notifications pageDoneNotifications page
Badge/counter in headerPartialHeader exists, basic badge
Notification preferences UIDoneNotificationPreferences component on Account page
Per-category notification settingsDone6 categories x 3 channels (In-App/Email/Push) grid
Quiet hours settingDoneTime range selector in NotificationPreferences
Digest preferenceDoneReal-time/Daily/Weekly frequency selector
Email templatesBackendBackend infrastructure
Push notificationsBackendBackend + service worker

Doc 12: Onboarding and Empty States

See Onboarding guide

FeatureStatusNotes
General user onboarding wizardDoneOnboarding page + OnboardingWizard + RoleOnboardingWizard component
Student Tier 1 onboardingDoneRoleOnboarding.tsx — StudentTier1 flow (school-only, age-appropriate)
Student Tier 2 onboardingDoneRoleOnboarding.tsx — StudentTier2 flow (parent-linked with consent)
Teacher onboarding (guided tour)DoneRoleOnboarding.tsx — Teacher flow + GuidedTour component
Parent onboardingDoneRoleOnboarding.tsx — Parent flow
SA setup wizard (6 steps)DoneRoleOnboarding.tsx — SA flow (6-step setup)
Vendor onboardingDoneRoleOnboarding.tsx — Vendor flow
Empty states (per screen)DoneEmptyState.tsx reusable component integrated into AppLayout
Progressive disclosure tooltipsPartialGuidedTour component built; not yet wired to every screen

Doc 13: Performance and Scalability

See Performance guide

FeatureStatusNotes
Code splitting (React.lazy)DoneRoute-level lazy loading
Image optimization pipelineNot StartedNo image variants or WebP
Skeleton loadingDoneSkeleton component exists
Error boundaryDoneErrorBoundary component
Virtual scrolling for long listsNot StartedNot built
Service worker / PWANot StartedNot built
Performance monitoringBackendBackend/infrastructure
FeatureStatusNotes
Terms of Service pageDoneTermsOfService page
Privacy Policy pageDonePrivacyPolicy page
Accessibility Statement pageDoneAccessibilityStatement page
Cookie consent bannerDoneCookieConsentBanner.tsx — integrated into AppLayout; useLegalStore for state
Acceptable Use Policy pageDoneAcceptableUsePolicy.tsx
Community Guidelines pageDoneCommunityGuidelines.tsx
Vendor Terms pageDoneVendorTerms.tsx

Doc 15: Reporting and Flagging

FeatureStatusNotes
Report buttonDoneReportButton component
Report modalDoneReportModal component
Block userDoneBlockUserButton.tsx — block + mute with confirmation + undo
Mute in communityDoneCommunityModTools.tsx — mute with duration selector
Appeals flowDoneAppealForm.tsx — select action, appeal reason, evidence, existing appeals list
Safety resources displayDoneSafetyResources.tsx — emergency contacts, safety tips, report guidance, compact mode
Automated flaggingBackendBackend infrastructure

Doc 16: Internationalization

See i18n guide

FeatureStatusNotes
i18n framework setupDonereact-i18next configured
English localeDoneen.json
Spanish localeDonees.json
French localeDonefr.json
Language switcherDoneLanguageSwitcher component
Zero hardcoded stringsPartialMost UI translated, some strings may be hardcoded
ICU MessageFormat (plurals)Not StartedNot implemented
CSS logical propertiesNot StartedNot verified
RTL layout supportNot StartedNot built
Pseudolocalization testingNot StartedNot set up

Doc 17: CI/CD and Deployment

FeatureStatusNotes
ESLint configDoneConfigured
Prettier configDoneConfigured
TypeScript strict modeDonetsconfig
Vitest setupDone1 test file
CI pipelinePartialGitHub Actions for docs validation (.github/workflows/docs.yml); no app build/test/deploy pipeline
Feature flags systemDoneuseFeatureFlagStore + useFeatureFlag hook + FeatureGate component + admin toggle page

Doc 18: Accessibility and Testing

FeatureStatusNotes
eslint-plugin-jsx-a11yNot StartedNot configured
axe-core in testsNot StartedNot configured
Lighthouse CINot StartedNot configured
Keyboard navigationPartialChakra provides some; SkipNavLink component added
Screen reader testingNot StartedNot done
Reduced motion supportDoneprefers-reduced-motion CSS in index.css
Breadcrumb navigationDoneBreadcrumb component

Doc 20: Vendor Portal

See Vendor guide | Vendor role

FeatureStatusNotes
Vendor dashboardDoneVendorDashboard page
Vendor registration/applicationDoneVendorApplication.tsx — multi-step application form
Vendor onboarding flowDoneVendor sub-flow in RoleOnboarding.tsx
Vendor challenge creationDoneVendorChallengeCreate.tsx — tabbed form (details, requirements, media, pricing)
Vendor event managementDoneVendorEvents.tsx — event table + create event form
Vendor analyticsDoneVendorAnalytics.tsx — stats cards + bar charts
Vendor profile managementDoneVendorSettings.tsx — profile form + logo upload

Summary

CategoryDonePartialNot StartedBackend
Accounts and Auth (Doc 1)12100
Challenges and TRs (Doc 2)12400
Gifting (Doc 3)6300
Explore and Discovery (Doc 4)9200
Communities (Doc 5)8300
School Admin (Doc 6)14100
Reflection and SEL (Doc 7)7201
Gamification (Doc 8)14110
Admin and Analytics (Doc 9)21100
Security (Doc 10)3005
Notifications (Doc 11)6002
Onboarding (Doc 12)8100
Performance (Doc 13)3021
Legal (Doc 14)7000
Reporting (Doc 15)6001
i18n (Doc 16)4140
CI/CD (Doc 17)4100
Accessibility (Doc 18)2130
Vendor Portal (Doc 20)7000
Totals144211010

Remaining Gaps

Most remaining gaps are infrastructure/tooling rather than feature UI:

  • Automated a11y testing (Doc 18) — no eslint-plugin-jsx-a11y, axe-core, or Lighthouse CI
  • Screen reader testing (Doc 18) — not done
  • Virtual scrolling for long lists (Doc 13) — not built
  • Image optimization pipeline (Doc 13) — no WebP/variants
  • Service worker / PWA (Doc 13) — not built
  • ICU MessageFormat / RTL / CSS logical properties (Doc 16) — i18n gaps
  • Pseudolocalization testing (Doc 16) — not set up
  • Gamification: animated XP counter (Doc 8) — partial, no animation

For a full prioritized breakdown, see Project Status & Gaps.

DoCurious Platform Documentation