Portal intro
Documentation-style landing for the Customer App under `/customer`. Explains product scope, feature groups, tech stack, and routes users into the real app via CTA. Other portals (Consultant, Admin, B2B, Website) remain separate stubs from the hub.
User journey
- 1Arrive from `/` portal hub by tapping Customer App.
- 2Skim left-menu feature docs or search for a topic.
- 3Tap Go to Customer App in the header to continue.
Brand splash
Short branded splash (`/customer/start`) that sets tone before auth. Routing is smart: logged-in users skip login and go to Astrology home; new users continue to login. Includes a skip control to move ahead without waiting the full animation.
User journey
- 1CTA opens splash and plays brand animation (~2–3s).
- 2If auth flag exists → redirect to `/customer/astrology`.
- 3Otherwise → `/customer/login` (or skip to login immediately).
Phone login (+91)
Primary India-focused login collects a 10-digit mobile number with +91 context. Pending contact is held in session storage so the OTP screen knows which number is being verified. Invalid lengths are blocked before navigation.
User journey
- 1Enter 10-digit mobile number on login screen.
- 2Submit to store pending contact and open OTP page.
- 3Optionally switch to Apple/Google social buttons instead.
OTP verification
4-digit OTP UI with resend timer. Local `POST /api/otp` accepts any 4-digit code (no SMS gateway yet). On success, sets local auth logged-in flag and continues into the customer shell.
User journey
- 1Enter 4-digit code (any valid code works for local testing).
- 2Wait for resend timer if needed, then retry.
- 3On success, auth flag is saved and user enters Astrology home.
Social login
Apple and Google buttons provide one-tap local entry. They do not call real OAuth providers yet; they immediately mark the user authenticated so product flows can be tested without phone OTP.
User journey
- 1Tap Apple or Google on login.
- 2Local auth session is created instantly.
- 3User is routed into the customer app home.
Auth session
Auth is client-side (`localStorage` flag via auth helpers). Middleware redirects legacy roots into `/customer/*`, but there is no server session cookie yet. Logout clears the local flag from profile.
User journey
- 1Successful login writes `os1_auth_logged_in` style flag.
- 2Subsequent visits skip login when splash detects the flag.
- 3Profile → Logout clears auth and returns user to signed-out entry.