Files
1356/navigation-and-user-flows.md
T
2026-01-03 18:35:35 +01:00

191 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LifeTimer — Navigation and User Flows
This document describes the main screens, navigation, and user journeys for the LifeTimer app.
---
## 1. Screen map and navigation
### 1.1 Global structure
- **Splash / Launch**
- Lightweight loading and environment check.
- Determines whether to show onboarding or go directly to the app.
- **Onboarding flow**
- `OnboardingIntro` — explain the 1356day challenge concept.
- `OnboardingHowItWorks` — steps: set 120 goals → lock list → 1356day countdown.
- `OnboardingMotivation` — motivational examples, visuals.
- Final screen leads to authentication.
- **Authentication**
- `AuthChoice` — sign up / log in buttons, Google and Apple options.
- `SignUpEmail` — email + password registration.
- `SignInEmail` — email + password login.
- `OAuthRedirect` — transient screen while completing Google / Apple signin.
- After auth, go to profile or home depending on completion state.
- **Profile setup (first time)**
- `CreateProfile` — avatar, username (unique), short bio.
- Once done, proceed to bucket list intro.
- **Main app shell**
- Bottom navigation with 45 tabs:
- **Home** — countdown and highlevel summary.
- **Goals** — bucket list and goal management.
- **Social** — feed, leaderboards (Phase 2+).
- **Profile** — own profile, stats, settings entry.
- **Insights (optional)** — charts and analytics (Phase 3).
The bottom nav is persistent after login; individual flows push screens on top of the tab stacks.
---
## 2. Core journey: new user to active countdown
### 2.1 First session flow
1. **Launch → Onboarding**
- `Splash``OnboardingIntro`.
- User swipes or taps Next through 23 explanatory screens.
- Final onboarding screen CTA: **Get started**`AuthChoice`.
2. **Authentication**
- Choose **Sign up with email**, **Google**, or **Apple**.
- On success, navigate to `CreateProfile`.
3. **Profile setup**
- Enter avatar (optional), username (required, uniqueness validated), and short bio.
- CTA **Continue**`BucketListIntro`.
4. **Bucket list introduction**
- `BucketListIntro` explains rules:
- You can create between 1 and 20 goals.
- Countdown only starts when your list is finalized and you have at least one goal.
- Once started, cannot be paused or reset.
- CTA **Start creating my list**`GoalsListEdit` (empty state).
5. **Creating goals**
- `GoalsListEdit` (tab: Goals) shows empty state card: “No goals yet. Add your first goal”.
- Tap **Add goal**`GoalEdit` screen.
6. **Goal edit flow**
- Fields: Title (required), Description, Location, Image, Milestones.
- User can add milestones / steps.
- CTA **Save goal** returns to `GoalsListEdit`.
- User repeats Add goal until satisfied (up to 20; UI shows **x / 20 goals created**; the countdown start action becomes available once x ≥ 1).
7. **Confirming the bucket list**
- When user has created at least one goal, a prominent CTA appears: **Finalize list and start 1356day challenge**.
- Tapping CTA opens `ConfirmBucketListDialog`:
- Summary: number of goals, explanation of irreversible start.
- Options:
- **Start countdown** — sets `countdown_start_date` and `countdown_end_date`, navigates to `HomeCountdown`.
- **Review goals** — returns to `GoalsListEdit`.
8. **First countdown view**
- `HomeCountdown` shows:
- Very large remaining days (worldclock inspired layout).
- Smaller breakdown: days, hours, minutes, seconds.
- Progress ring or bar showing percentage of time elapsed.
- Short motivational message.
- Primary CTA: **View my goals** (to Goals tab).
### 2.2 If bucket list is not finalized
- If a user leaves the app before finalizing:
- On next login, `Home` shows “Your challenge hasnt started yet” with progress in creating goals (e.g., 5 / 20 goals completed) and a CTA to **Finish my list**`GoalsListEdit`.
---
## 3. Daily usage: updating progress
1. User opens app.
2. `Splash` quickly forwards to last state; for active users this is `HomeCountdown`.
3. On `HomeCountdown`:
- User sees remaining time and highlevel completion percentage across all goals.
- CTA **Update progress**`GoalsList`.
4. In `GoalsList`:
- Each goal card shows title, image, small progress bar, and possibly remaining time highlight.
- Tap a goal → `GoalDetail`.
5. In `GoalDetail`:
- User marks milestones as done or adjusts progress slider.
- Optional note field for journalstyle comments.
- CTA **Mark goal as completed** when all steps are done.
6. On completion:
- Show lightweight celebration overlay.
- Offer **Share to community** if social features are enabled.
---
## 4. Social and community flows (Phase 2+)
### 4.1 Opting into sharing
- From `Profile` or `Settings > Privacy`:
- Global toggle **Make my profile public** (account visibility: Public / Private).
- Optional privacy explanation sheet before first activation, explaining which data becomes visible.
### 4.2 Browsing the feed
1. Tap **Social** tab.
2. `SocialFeed` shows a list of public milestones and completed goals.
- Cards: user avatar + name, goal title, completion date, days remaining.
3. Tap a card → `PublicMilestoneDetail`.
4. From `PublicMilestoneDetail`:
- CTA **Follow user** → adds follower row.
- View **User profile**`PublicProfile`.
Only users with Public accounts appear in the social feed or can be followed.
### 4.3 Leaderboards
- From `SocialFeed`, user can switch tabs:
- `Feed`, `Leaderboards`.
- `Leaderboards` shows rankings (goals completed, streaks, etc.).
- Tap an entry → `PublicProfile`.
Only users with Public accounts appear on leaderboards.
---
## 5. Settings and notifications
### 5.1 Accessing settings
- From **Profile** tab, button **Settings**`SettingsHome`.
### 5.2 Settings subsections
- `AccountSettings` — email, password, delete account.
- `AppearanceSettings` — light/dark, time format (12/24h).
- `NotificationSettings` — reminder frequency, categories.
- `PrivacySettings` — global public/private account visibility toggle and blocking.
- `AboutChallenge` — reexplain rules and philosophy.
### 5.3 Notification flows
- When user taps a push notification:
- Reminder about time remaining → deep link to `HomeCountdown`.
- Goal progress reminder → deep link to `GoalDetail` for that goal.
- Social notification → deep link to `SocialFeed` or `PublicMilestoneDetail`.
---
## 6. Edge cases and empty states
- **No internet connection**
- Show cached countdown and goals with offline banner.
- Disable actions that require network or queue them.
- **No goals yet (new user)**
- `GoalsList` shows illustrative empty state with CTA **Add your first goal**.
- **Countdown finished**
- `HomeCountdown` switches to a summary view:
- “1356 days completed”
- Stats: goals completed, streaks, favorite milestones.
- CTA to review journey or share a reflection.
This document should be kept in sync with the UI spec and roadmap as features are added or removed.