# Customer Dashboard (the member-facing app) > The logged-in **student / customer experience** — where a buyer lands after > login to consume what they paid for. This is the **Customer Vue 3 SPA** at > `app.loveatfirstfight.com` (see > [deployment-topology.md](../03-architecture/deployment-topology.md) and > [proposed-architecture.md](../03-architecture/proposed-architecture.md)). > > **Framing:** unlike the other modules, this is **not a new Laravel domain** — > it's the *front-end surface* that composes Courses, Quizzes, Gamification, > Identity and Commerce into one place for the student. The back-end logic lives > in those modules; this doc is about **what the student sees and does.** --- ## What it does today Thrive Apprentice provides a member area: a course list, a lesson player, drip locks, and a basic "my account." It's tangled into WordPress, styling is limited, quiz results live in a separate tool (Thrive Quiz Builder), and there's no real sense of progress, cohort, or partner. The student experience is fragmented across plugins. ## What the owned version is One coherent member app the customer logs into and stays in: - **Home / "Continue"** — pick up where they left off, next unlock (in their local time), progress at a glance. - **My Courses** — every product they have access to (via the `product_user` pivot from [Identity](./README.md)); switch between courses cleanly. This is the "manage their courses / go between courses" Berner asked for. - **Course & lesson player** — video on **BunnyStream**, lesson list, drip-locked lessons shown as locked-until (local time), mark-complete. - **Quizzes → answers → results** — take a quiz, see the result, and **review past attempts and answers**. (Back-end = the Quizzes module.) - **Progress & gamification** — progress bars, badges/streaks, **cohort visibility** (first-names-only "others in your group are here"), and **couple/partner progress** ("how the two of you are doing"). From [business-requirements #3](./business-requirements-from-bruce-kb.md). - **My account / billing** — their payments, invoices, the pricing option they're on, partner details, timezone override. - **Notifications** — live (sockets) for unlocks, replies, cohort nudges. ## Key design questions (need decisions) 1. **One dashboard across all courses, or a per-course home?** Recommendation: a single member home that aggregates progress + a "current course" context switcher — matches "go between courses." 2. **Quiz review depth** — can students retake quizzes? See correct answers, or only their own answers + score? Does this differ for graded vs reflective quizzes (a relationship program likely has *reflective* quizzes)? 3. **Couple / partner progress** — how do two accounts link (invite? shared purchase?), and what is each partner allowed to see of the other (privacy)? 4. **How much gamification surfaces to the student** vs staying an internal retention metric? Cohort visibility is first-names-only by requirement — confirm. 5. **Mobile / future Flutter app** — the same API serves a future Flutter app, so the dashboard's data contract should be app-ready from day one (no web-only assumptions). 6. **Self-service scope** — can students change their own pricing/plan, request refunds, update partner details, or are those staff-only? ## Data it reads / writes (mostly composed from other modules) ``` enrollments = product_user pivot # what courses they can see (Identity) lesson_progress user_id · lesson_id · completed_at · seconds_watched quiz_attempts user_id · quiz_id · score · submitted_at quiz_answers attempt_id · question_id · answer · correct partner_links user_id · partner_user_id · visibility # couple progress badges_user user_id · badge_id · earned_at # gamification ``` > Most of these tables are *owned by other modules*; the dashboard is the read/UX > layer. The only dashboard-specific concern is composing them into student views. ## Depends on / feeds - **Identity** — auth (Sanctum), the `product_user` access pivot. - **Courses / LMS** — course/lesson content, drip timing (local-time unlocks). - **Quizzes** — attempts, answers, results. - **Gamification** — progress, badges, cohort, couple progress. - **Commerce** — billing/invoice view. - **Messaging / real-time** — notifications via sockets. ## Priority **P0** — without a member area, students can't consume what they bought. It's the front-end half of the Courses/LMS P0 work; ships alongside it.