# sharzilzofi/my-daily-life architecture

> Architecture diagram of the GitHub repository sharzilzofi/my-daily-life, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sharzilzofi/my-daily-life
- Repository: https://github.com/sharzilzofi/my-daily-life

## Overview

Personal Life Dashboard is a user-scoped personal tracking application. Users authenticate, enter the protected app, record activity across nutrition, finance, workouts, time, and daily logs, then review dashboard and analytics views. Settings manage preferences, integrations, and data backup; an AI assistant can read or update supported areas through tools. Shared storage persists user data locally and synchronizes selected keys with Firestore. The README describes several sections as placeholders in the initial phase; their detailed behavior is not established by the sampled source.

Main entry points: [`src/lib/userStorage.ts`](https://github.com/sharzilzofi/my-daily-life/blob/main/src/lib/userStorage.ts) (User Storage Sync), [`src/components/layout/Sidebar.tsx`](https://github.com/sharzilzofi/my-daily-life/blob/main/src/components/layout/Sidebar.tsx) (Navigation Shell), [`src/app/(app)/layout.tsx`](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/layout.tsx) (Protected App Shell), [`src/components/ai/GeminiAssistant.tsx`](https://github.com/sharzilzofi/my-daily-life/blob/main/src/components/ai/GeminiAssistant.tsx) (AI Assistant)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and Shell"]
  node_login["Login and Registration"]
  node_authapi["Email Authentication<br/>[auth.ts]"]
  node_authcontext["Auth Context<br/>[AuthContext.tsx]"]
  node_appshell["Protected App Shell<br/>[layout.tsx]"]
  node_nav["Navigation Shell<br/>[Sidebar.tsx]"]
end

subgraph group_tracking["Life Tracking"]
  node_nutrition["Nutrition Tracking<br/>[page.tsx]"]
  node_finance["Finance Tracking<br/>[page.tsx]"]
  node_workout["Workout Tracking<br/>[page.tsx]"]
  node_time["Time Tracking<br/>[page.tsx]"]
  node_daily["Daily Log<br/>[page.tsx]"]
end

subgraph group_insights["Review and Assistance"]
  node_dashboard["Dashboard<br/>[page.tsx]"]
  node_analytics["Analytics<br/>[page.tsx]"]
  node_assistant["AI Assistant"]
  node_aitools["AI Tool Actions<br/>[aiActions.ts]"]
end

subgraph group_data["Settings and Storage"]
  node_settings["Settings and Backup<br/>[page.tsx]"]
  node_storage["User Storage Sync<br/>[userStorage.ts]"]
end

node_person(("User"))
node_firebaseauth[("Firebase Authentication")]
node_gemini{{"Gemini API"}}
node_localdata[("Browser Storage")]
node_firestore[("Cloud Firestore")]

node_person -->|"signs in"| node_login
node_login -->|"submits credentials"| node_authapi
node_authapi -->|"authenticates"| node_firebaseauth
node_firebaseauth -->|"reports auth state"| node_authcontext
node_authcontext -->|"starts user sync"| node_storage
node_person -->|"uses app"| node_appshell
node_appshell -->|"checks access"| node_authcontext
node_appshell -->|"renders shell"| node_nav
node_nav -->|"navigates"| node_nutrition
node_nav -->|"navigates"| node_finance
node_nav -->|"navigates"| node_workout
node_nav -->|"navigates"| node_time
node_nav -->|"navigates"| node_daily
node_nav -->|"navigates"| node_dashboard
node_nav -->|"navigates"| node_analytics
node_nutrition -->|"reads and writes"| node_storage
node_finance -->|"reads and writes"| node_storage
node_workout -->|"reads and writes"| node_storage
node_time -->|"reads and writes"| node_storage
node_dashboard -->|"reads data"| node_storage
node_settings -->|"manages data"| node_storage
node_storage -->|"reads and writes"| node_localdata
node_storage -.->|"syncs user data"| node_firestore
node_person -->|"asks for help"| node_assistant
node_assistant -.->|"sends requests"| node_gemini
node_assistant -->|"executes tools"| node_aitools
node_aitools -->|"accesses user data"| node_storage
node_settings -.->|"tests integration"| node_gemini

click node_login "https://github.com/sharzilzofi/my-daily-life/tree/main/src/app/(auth)"
click node_authapi "https://github.com/sharzilzofi/my-daily-life/blob/main/src/lib/firebase/auth.ts"
click node_authcontext "https://github.com/sharzilzofi/my-daily-life/blob/main/src/context/AuthContext.tsx"
click node_appshell "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/layout.tsx"
click node_nav "https://github.com/sharzilzofi/my-daily-life/blob/main/src/components/layout/Sidebar.tsx"
click node_nutrition "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/nutrition/page.tsx"
click node_finance "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/finance/page.tsx"
click node_workout "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/workout/page.tsx"
click node_time "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/time/page.tsx"
click node_daily "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/daily-log/page.tsx"
click node_dashboard "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/dashboard/page.tsx"
click node_analytics "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/analytics/page.tsx"
click node_assistant "https://github.com/sharzilzofi/my-daily-life/blob/main/src/components/ai/GeminiAssistant.tsx"
click node_aitools "https://github.com/sharzilzofi/my-daily-life/blob/main/src/lib/aiActions.ts"
click node_settings "https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/settings/page.tsx"
click node_storage "https://github.com/sharzilzofi/my-daily-life/blob/main/src/lib/userStorage.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_login,node_authapi,node_authcontext,node_appshell,node_nav,node_person toneBlue
class node_nutrition,node_finance,node_workout,node_time,node_daily,node_firebaseauth,node_localdata,node_firestore toneAmber
class node_dashboard,node_analytics,node_assistant,node_aitools,node_gemini toneMint
class node_settings,node_storage toneRose
```

## Components

### Access and Shell

- [Login and Registration](https://github.com/sharzilzofi/my-daily-life/tree/main/src/app/(auth)): `src/app/(auth)`
- [Email Authentication](https://github.com/sharzilzofi/my-daily-life/blob/main/src/lib/firebase/auth.ts): `src/lib/firebase/auth.ts`
- [Auth Context](https://github.com/sharzilzofi/my-daily-life/blob/main/src/context/AuthContext.tsx): `src/context/AuthContext.tsx`
- [Protected App Shell](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/layout.tsx): `src/app/(app)/layout.tsx`
- [Navigation Shell](https://github.com/sharzilzofi/my-daily-life/blob/main/src/components/layout/Sidebar.tsx): `src/components/layout/Sidebar.tsx`

### Life Tracking

- [Nutrition Tracking](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/nutrition/page.tsx): `src/app/(app)/nutrition/page.tsx`
- [Finance Tracking](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/finance/page.tsx): `src/app/(app)/finance/page.tsx`
- [Workout Tracking](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/workout/page.tsx): `src/app/(app)/workout/page.tsx`
- [Time Tracking](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/time/page.tsx): `src/app/(app)/time/page.tsx`
- [Daily Log](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/daily-log/page.tsx): `src/app/(app)/daily-log/page.tsx`

### Review and Assistance

- [Dashboard](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/dashboard/page.tsx): `src/app/(app)/dashboard/page.tsx`
- [Analytics](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/analytics/page.tsx): `src/app/(app)/analytics/page.tsx`
- [AI Assistant](https://github.com/sharzilzofi/my-daily-life/blob/main/src/components/ai/GeminiAssistant.tsx): `src/components/ai/GeminiAssistant.tsx`
- [AI Tool Actions](https://github.com/sharzilzofi/my-daily-life/blob/main/src/lib/aiActions.ts): `src/lib/aiActions.ts`

### Settings and Storage

- [Settings and Backup](https://github.com/sharzilzofi/my-daily-life/blob/main/src/app/(app)/settings/page.tsx): `src/app/(app)/settings/page.tsx`
- [User Storage Sync](https://github.com/sharzilzofi/my-daily-life/blob/main/src/lib/userStorage.ts): `src/lib/userStorage.ts`

### Other components

- **User**
- **Firebase Authentication**
- **Gemini API**
- **Browser Storage**
- **Cloud Firestore**

## Connections

- User → Login and Registration: signs in
- Login and Registration → Email Authentication: submits credentials
- Email Authentication → Firebase Authentication: authenticates
- Firebase Authentication → Auth Context: reports auth state
- Auth Context → User Storage Sync: starts user sync
- User → Protected App Shell: uses app
- Protected App Shell → Auth Context: checks access
- Protected App Shell → Navigation Shell: renders shell
- Navigation Shell → Nutrition Tracking: navigates
- Navigation Shell → Finance Tracking: navigates
- Navigation Shell → Workout Tracking: navigates
- Navigation Shell → Time Tracking: navigates
- Navigation Shell → Daily Log: navigates
- Navigation Shell → Dashboard: navigates
- Navigation Shell → Analytics: navigates
- Nutrition Tracking → User Storage Sync: reads and writes
- Finance Tracking → User Storage Sync: reads and writes
- Workout Tracking → User Storage Sync: reads and writes
- Time Tracking → User Storage Sync: reads and writes
- Dashboard → User Storage Sync: reads data
- Settings and Backup → User Storage Sync: manages data
- User Storage Sync → Browser Storage: reads and writes
- User Storage Sync → Cloud Firestore: syncs user data
- User → AI Assistant: asks for help
- AI Assistant → Gemini API: sends requests
- AI Assistant → AI Tool Actions: executes tools
- AI Tool Actions → User Storage Sync: accesses user data
- Settings and Backup → Gemini API: tests integration
