# sho-tiii/kusinapp architecture

> Architecture diagram of the GitHub repository sho-tiii/kusinapp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sho-tiii/kusinapp
- Repository: https://github.com/sho-tiii/kusinapp

## Overview

KusinApp is documented as a cross-platform Filipino meal-planning and pantry app, but the supplied tree contains implementation for authentication, health onboarding, and admin access rather than pantry tracking or meal planning. The main flows are web and mobile sign-in/registration, profile onboarding, and role-governed admin access. Firebase provides authentication and shared profile storage; the web also dispatches email. The README describes broader planning capabilities, but no corresponding source modules appear in this tree, so they are not mapped as implemented components.

Main entry points: [`web/src/App.jsx`](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/App.jsx) (Web flow and portals), [`mobile/App.js`](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/App.js) (Mobile route flow), [`web/src/services/authService.js`](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/authService.js) (Web auth service), [`mobile/src/services/authService.js`](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/services/authService.js) (Mobile auth service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_web_app["Web flow and portals<br/>[App.jsx]"]
  node_web_login["Member login<br/>[Login.jsx]"]
  node_web_register["Member registration<br/>[Register.jsx]"]
  node_web_recovery["Password recovery<br/>[ForgotPassword.jsx]"]
  node_web_onboarding["Health onboarding<br/>[Onboarding.jsx]"]
  node_admin_login["Admin sign-in<br/>[AdminLogin.jsx]"]
  node_admin_profile["Admin profile<br/>[AdminProfile.jsx]"]
end

subgraph group_mobile["Mobile application"]
  node_mobile_app["Mobile route flow<br/>[App.js]"]
  node_mobile_signup["Mobile signup<br/>[SignupScreen.js]"]
  node_mobile_login["Mobile login<br/>[LoginScreen.js]"]
  node_mobile_verify["Email verification<br/>[VerifyScreen.js]"]
  node_mobile_setup["Setup introduction"]
  node_mobile_onboarding["Health onboarding"]
  node_mobile_home["Home screen<br/>[HomeScreen.js]"]
  node_mobile_google["Google sign-in UI"]
end

subgraph group_services["Identity and services"]
  node_web_auth["Web auth service<br/>[authService.js]"]
  node_admin_service["Admin service<br/>[adminService.js]"]
  node_email_service["Email dispatcher<br/>[emailService.js]"]
  node_email_templates["Email templates<br/>[emailTemplates.js]"]
  node_mobile_auth["Mobile auth service<br/>[authService.js]"]
end

subgraph group_shared["Shared backend"]
  node_web_firebase["Web Firebase config<br/>[firebase.js]"]
  node_mobile_firebase["Mobile Firebase config<br/>[firebase.js]"]
  node_firebase_auth["Firebase Authentication"]
  node_firebase_db[("Firebase Realtime Database")]
end

node_web_user(("Web user"))
node_mobile_user(("Mobile user"))
node_email_provider["Email delivery APIs"]

node_web_user -->|"uses"| node_web_app
node_web_app -->|"routes to"| node_web_login
node_web_app -->|"routes to"| node_web_register
node_web_app -->|"routes to"| node_web_recovery
node_web_app -->|"routes to"| node_web_onboarding
node_web_app -->|"routes to"| node_admin_login
node_web_app -->|"routes to"| node_admin_profile
node_web_login -->|"calls"| node_web_auth
node_web_register -->|"calls"| node_web_auth
node_web_recovery -->|"calls"| node_web_auth
node_web_onboarding -->|"saves through"| node_web_auth
node_admin_login -->|"calls"| node_admin_service
node_admin_profile -->|"calls"| node_admin_service
node_admin_service -->|"authenticates via"| node_web_auth
node_web_auth -->|"uses"| node_web_firebase
node_web_auth -->|"sends welcome email"| node_email_service
node_email_service -->|"renders"| node_email_templates
node_email_service -->|"dispatches to"| node_email_provider
node_web_firebase -->|"configures"| node_firebase_auth
node_web_firebase -->|"configures"| node_firebase_db
node_mobile_user -->|"uses"| node_mobile_app
node_mobile_app -->|"routes to"| node_mobile_signup
node_mobile_app -->|"routes to"| node_mobile_login
node_mobile_app -->|"routes to"| node_mobile_verify
node_mobile_app -->|"routes to"| node_mobile_setup
node_mobile_app -->|"routes to"| node_mobile_onboarding
node_mobile_app -->|"routes to"| node_mobile_home
node_mobile_signup -->|"calls"| node_mobile_auth
node_mobile_login -->|"calls"| node_mobile_auth
node_mobile_verify -->|"calls"| node_mobile_auth
node_mobile_onboarding -->|"saves through"| node_mobile_auth
node_mobile_google -->|"calls"| node_mobile_auth
node_mobile_home -->|"uses"| node_mobile_auth
node_mobile_auth -->|"uses"| node_mobile_firebase
node_mobile_firebase -->|"configures"| node_firebase_auth
node_mobile_firebase -->|"configures"| node_firebase_db

click node_web_app "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/App.jsx"
click node_web_login "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/auth/Login.jsx"
click node_web_register "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/auth/Register.jsx"
click node_web_recovery "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/auth/ForgotPassword.jsx"
click node_web_onboarding "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/onboarding/Onboarding.jsx"
click node_admin_login "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/admin/AdminLogin.jsx"
click node_admin_profile "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/admin/AdminProfile.jsx"
click node_mobile_app "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/App.js"
click node_mobile_signup "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/SignupScreen.js"
click node_mobile_login "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/LoginScreen.js"
click node_mobile_verify "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/VerifyScreen.js"
click node_mobile_setup "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/SetupIntroScreen.js"
click node_mobile_onboarding "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/OnboardingScreen.js"
click node_mobile_home "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/HomeScreen.js"
click node_web_auth "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/authService.js"
click node_admin_service "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/adminService.js"
click node_email_service "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/emailService.js"
click node_email_templates "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/emailTemplates.js"
click node_mobile_auth "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/services/authService.js"
click node_mobile_google "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/components/GoogleSignInButton.js"
click node_web_firebase "https://github.com/sho-tiii/kusinapp/blob/dev/web/src/config/firebase.js"
click node_mobile_firebase "https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/config/firebase.js"

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_web_app,node_web_login,node_web_register,node_web_recovery,node_web_onboarding,node_admin_login,node_admin_profile,node_web_user,node_mobile_user toneBlue
class node_mobile_app,node_mobile_signup,node_mobile_login,node_mobile_verify,node_mobile_setup,node_mobile_onboarding,node_mobile_home,node_mobile_google toneAmber
class node_web_auth,node_admin_service,node_email_service,node_email_templates,node_mobile_auth,node_email_provider toneMint
class node_web_firebase,node_mobile_firebase,node_firebase_auth,node_firebase_db toneRose
```

## Components

### Web application

- [Web flow and portals](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/App.jsx): `web/src/App.jsx`
- [Member login](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/auth/Login.jsx): `web/src/components/auth/Login.jsx`
- [Member registration](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/auth/Register.jsx): `web/src/components/auth/Register.jsx`
- [Password recovery](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/auth/ForgotPassword.jsx): `web/src/components/auth/ForgotPassword.jsx`
- [Health onboarding](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/onboarding/Onboarding.jsx): `web/src/components/onboarding/Onboarding.jsx`
- [Admin sign-in](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/admin/AdminLogin.jsx): `web/src/components/admin/AdminLogin.jsx`
- [Admin profile](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/components/admin/AdminProfile.jsx): `web/src/components/admin/AdminProfile.jsx`

### Mobile application

- [Mobile route flow](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/App.js): `mobile/App.js`
- [Mobile signup](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/SignupScreen.js): `mobile/src/screens/SignupScreen.js`
- [Mobile login](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/LoginScreen.js): `mobile/src/screens/LoginScreen.js`
- [Email verification](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/VerifyScreen.js): `mobile/src/screens/VerifyScreen.js`
- [Setup introduction](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/SetupIntroScreen.js): `mobile/src/screens/SetupIntroScreen.js`
- [Health onboarding](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/OnboardingScreen.js): `mobile/src/screens/OnboardingScreen.js`
- [Home screen](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/screens/HomeScreen.js): `mobile/src/screens/HomeScreen.js`
- [Google sign-in UI](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/components/GoogleSignInButton.js): `mobile/src/components/GoogleSignInButton.js`

### Identity and services

- [Web auth service](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/authService.js): `web/src/services/authService.js`
- [Admin service](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/adminService.js): `web/src/services/adminService.js`
- [Email dispatcher](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/emailService.js): `web/src/services/emailService.js`
- [Email templates](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/services/emailTemplates.js): `web/src/services/emailTemplates.js`
- [Mobile auth service](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/services/authService.js): `mobile/src/services/authService.js`

### Shared backend

- [Web Firebase config](https://github.com/sho-tiii/kusinapp/blob/dev/web/src/config/firebase.js): `web/src/config/firebase.js`
- [Mobile Firebase config](https://github.com/sho-tiii/kusinapp/blob/dev/mobile/src/config/firebase.js): `mobile/src/config/firebase.js`
- **Firebase Authentication**
- **Firebase Realtime Database**

### Other components

- **Web user**
- **Mobile user**
- **Email delivery APIs**

## Connections

- Web user → Web flow and portals: uses (evidence: `README.md`)
- Web flow and portals → Member login: routes to (evidence: `web/src/App.jsx`)
- Web flow and portals → Member registration: routes to (evidence: `web/src/App.jsx`)
- Web flow and portals → Password recovery: routes to (evidence: `web/src/App.jsx`)
- Web flow and portals → Health onboarding: routes to (evidence: `web/src/App.jsx`)
- Web flow and portals → Admin sign-in: routes to (evidence: `web/src/App.jsx`)
- Web flow and portals → Admin profile: routes to (evidence: `web/src/App.jsx`)
- Member login → Web auth service: calls (evidence: `web/src/components/auth/Login.jsx`)
- Member registration → Web auth service: calls (evidence: `web/src/components/auth/Register.jsx`)
- Password recovery → Web auth service: calls (evidence: `web/src/components/auth/Login.jsx`)
- Health onboarding → Web auth service: saves through (evidence: `web/src/components/onboarding/Onboarding.jsx`)
- Admin sign-in → Admin service: calls (evidence: `web/src/components/admin/AdminLogin.jsx`)
- Admin profile → Admin service: calls (evidence: `web/src/components/admin/AdminProfile.jsx`)
- Admin service → Web auth service: authenticates via (evidence: `web/src/services/adminService.js`)
- Web auth service → Web Firebase config: uses (evidence: `web/src/services/authService.js`)
- Web auth service → Email dispatcher: sends welcome email (evidence: `web/src/services/authService.js`)
- Email dispatcher → Email templates: renders (evidence: `web/src/services/emailService.js`)
- Email dispatcher → Email delivery APIs: dispatches to (evidence: `web/src/services/emailService.js`)
- Web Firebase config → Firebase Authentication: configures (evidence: `README.md`)
- Web Firebase config → Firebase Realtime Database: configures (evidence: `README.md`)
- Mobile user → Mobile route flow: uses (evidence: `README.md`)
- Mobile route flow → Mobile signup: routes to (evidence: `mobile/App.js`)
- Mobile route flow → Mobile login: routes to (evidence: `mobile/App.js`)
- Mobile route flow → Email verification: routes to (evidence: `mobile/App.js`)
- Mobile route flow → Setup introduction: routes to (evidence: `mobile/App.js`)
- Mobile route flow → Health onboarding: routes to (evidence: `mobile/App.js`)
- Mobile route flow → Home screen: routes to (evidence: `mobile/App.js`)
- Mobile signup → Mobile auth service: calls (evidence: `mobile/src/screens/SignupScreen.js`)
- Mobile login → Mobile auth service: calls (evidence: `mobile/src/screens/LoginScreen.js`)
- Email verification → Mobile auth service: calls (evidence: `mobile/src/screens/VerifyScreen.js`)
- Health onboarding → Mobile auth service: saves through (evidence: `mobile/src/screens/OnboardingScreen.js`)
- Google sign-in UI → Mobile auth service: calls (evidence: `mobile/src/components/GoogleSignInButton.js`)
- Home screen → Mobile auth service: uses (evidence: `mobile/src/screens/HomeScreen.js`)
- Mobile auth service → Mobile Firebase config: uses (evidence: `mobile/src/services/authService.js`)
- Mobile Firebase config → Firebase Authentication: configures (evidence: `mobile/src/config/firebase.js`)
- Mobile Firebase config → Firebase Realtime Database: configures (evidence: `mobile/src/config/firebase.js`)
