# orbitai776/platform-ai-frontend architecture

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

- Interactive diagram: https://gitdiagram.com/orbitai776/platform-ai-frontend
- Repository: https://github.com/orbitai776/platform-ai-frontend

## Overview

Orbit AI is a frontend with account, profile, and admin experiences. The visible Nuxt workflow renders pages through the app and shared layouts; Google sign-in uses Firebase and exchanges an ID token through an API resource. The admin page presents dashboard metrics, charts, and a filterable user table. The tree also contains a separate Vue app entry and router. README content is absent, and several page and API implementations were not sampled, so uncertain request wiring is omitted.

Main entry points: [`app.vue`](https://github.com/orbitai776/platform-ai-frontend/blob/main/app.vue) (Nuxt app shell), [`layouts/default.vue`](https://github.com/orbitai776/platform-ai-frontend/blob/main/layouts/default.vue) (Default layout), [`src/router/router.js`](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/router/router.js) (Vue router), [`src/components/GoogleLogin.vue`](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/components/GoogleLogin.vue) (Google sign-in)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_nuxt["Nuxt experience"]
  node_nuxtapp["Nuxt app shell<br/>[app.vue]"]
  node_defaultlayout["Default layout<br/>[default.vue]"]
  node_landing["Landing page<br/>[index.vue]"]
  node_profile["Profile page<br/>[profile.vue]"]
end

subgraph group_account["Account access"]
  node_loginpage["User login<br/>[Login.vue]"]
  node_register["Registration<br/>[Register.vue]"]
  node_forgot["Password recovery<br/>[ForgotPassword.vue]"]
  node_adminlogin["Admin login<br/>[loginAdmin.vue]"]
  node_googlelogin["Google sign-in<br/>[GoogleLogin.vue]"]
  node_firebase["Firebase auth<br/>[firebase.js]"]
  node_apiresource["API resource<br/>[apiResource.js]"]
  node_serverlogin["Server login handler<br/>[login.post.ts]"]
end

subgraph group_admin["Admin dashboard"]
  node_adminpage["Admin route<br/>[index.vue]"]
  node_admindash["Admin dashboard<br/>[HomeAdmin.vue]"]
end

subgraph group_vue["Vue client"]
  node_requestwrapper["HTTP request wrapper"]
  node_vueentry["Vue entry<br/>[main.js]"]
  node_vueapp["Vue app shell<br/>[App.vue]"]
  node_vuerouter["Vue router<br/>[router.js]"]
  node_homeview["Home view<br/>[home.vue]"]
  node_profileview["Profile view<br/>[profile.vue]"]
end

node_visitor(("Visitor"))
node_gateway{{"Authentication gateway"}}
node_firebaseprovider{{"Firebase service"}}
node_httpservice{{"Remote API"}}

node_visitor -->|"opens app"| node_nuxtapp
node_nuxtapp -->|"renders layout"| node_defaultlayout
node_defaultlayout -->|"renders page"| node_landing
node_defaultlayout -->|"renders page"| node_profile
node_nuxtapp -->|"renders route"| node_adminpage
node_adminpage -->|"renders dashboard"| node_admindash
node_googlelogin -->|"uses auth"| node_firebase
node_googlelogin -->|"exchanges token"| node_apiresource
node_firebase -.->|"authenticates with"| node_firebaseprovider
node_apiresource -.->|"submits token"| node_gateway
node_requestwrapper -->|"sends requests"| node_httpservice
node_serverlogin -.->|"handles login"| node_gateway
node_vueentry -->|"mounts app"| node_vueapp
node_vueentry -->|"installs router"| node_vuerouter
node_vuerouter -->|"routes to"| node_homeview
node_vuerouter -->|"routes to"| node_profileview

click node_nuxtapp "https://github.com/orbitai776/platform-ai-frontend/blob/main/app.vue"
click node_defaultlayout "https://github.com/orbitai776/platform-ai-frontend/blob/main/layouts/default.vue"
click node_landing "https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/index.vue"
click node_profile "https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/profile.vue"
click node_adminpage "https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/admin/index.vue"
click node_admindash "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/views/admin/HomeAdmin.vue"
click node_loginpage "https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/user/Login.vue"
click node_register "https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/user/Register.vue"
click node_forgot "https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/user/ForgotPassword.vue"
click node_adminlogin "https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/loginAdmin.vue"
click node_googlelogin "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/components/GoogleLogin.vue"
click node_firebase "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/auth/firebase.js"
click node_apiresource "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/composables/apiResource.js"
click node_serverlogin "https://github.com/orbitai776/platform-ai-frontend/blob/main/server/api/auth/login.post.ts"
click node_requestwrapper "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/composables/useRequestsWrapper.js"
click node_vueentry "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/main.js"
click node_vueapp "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/App.vue"
click node_vuerouter "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/router/router.js"
click node_homeview "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/views/home.vue"
click node_profileview "https://github.com/orbitai776/platform-ai-frontend/blob/main/src/views/profile.vue"

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_nuxtapp,node_defaultlayout,node_landing,node_profile toneBlue
class node_loginpage,node_register,node_forgot,node_adminlogin,node_googlelogin,node_firebase,node_apiresource,node_serverlogin toneAmber
class node_adminpage,node_admindash,node_httpservice toneMint
class node_requestwrapper,node_vueentry,node_vueapp,node_vuerouter,node_homeview,node_profileview toneRose
class node_visitor,node_gateway,node_firebaseprovider toneIndigo
```

## Components

### Nuxt experience

- [Nuxt app shell](https://github.com/orbitai776/platform-ai-frontend/blob/main/app.vue): `app.vue`
- [Default layout](https://github.com/orbitai776/platform-ai-frontend/blob/main/layouts/default.vue): `layouts/default.vue`
- [Landing page](https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/index.vue): `pages/index.vue`
- [Profile page](https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/profile.vue): `pages/profile.vue`

### Account access

- [User login](https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/user/Login.vue): `pages/user/Login.vue`
- [Registration](https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/user/Register.vue): `pages/user/Register.vue`
- [Password recovery](https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/user/ForgotPassword.vue): `pages/user/ForgotPassword.vue`
- [Admin login](https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/loginAdmin.vue): `pages/loginAdmin.vue`
- [Google sign-in](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/components/GoogleLogin.vue): `src/components/GoogleLogin.vue`
- [Firebase auth](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/auth/firebase.js): `src/auth/firebase.js`
- [API resource](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/composables/apiResource.js): `src/composables/apiResource.js`
- [Server login handler](https://github.com/orbitai776/platform-ai-frontend/blob/main/server/api/auth/login.post.ts): `server/api/auth/login.post.ts`

### Admin dashboard

- [Admin route](https://github.com/orbitai776/platform-ai-frontend/blob/main/pages/admin/index.vue): `pages/admin/index.vue`
- [Admin dashboard](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/views/admin/HomeAdmin.vue): `src/views/admin/HomeAdmin.vue`

### Vue client

- [HTTP request wrapper](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/composables/useRequestsWrapper.js): `src/composables/useRequestsWrapper.js`
- [Vue entry](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/main.js): `src/main.js`
- [Vue app shell](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/App.vue): `src/App.vue`
- [Vue router](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/router/router.js): `src/router/router.js`
- [Home view](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/views/home.vue): `src/views/home.vue`
- [Profile view](https://github.com/orbitai776/platform-ai-frontend/blob/main/src/views/profile.vue): `src/views/profile.vue`

### Other components

- **Visitor**
- **Authentication gateway**
- **Firebase service**
- **Remote API**

## Connections

- Visitor → Nuxt app shell: opens app
- Nuxt app shell → Default layout: renders layout
- Default layout → Landing page: renders page
- Default layout → Profile page: renders page
- Nuxt app shell → Admin route: renders route
- Admin route → Admin dashboard: renders dashboard
- Google sign-in → Firebase auth: uses auth
- Google sign-in → API resource: exchanges token
- Firebase auth → Firebase service: authenticates with
- API resource → Authentication gateway: submits token
- HTTP request wrapper → Remote API: sends requests
- Server login handler → Authentication gateway: handles login
- Vue entry → Vue app shell: mounts app
- Vue entry → Vue router: installs router
- Vue router → Home view: routes to
- Vue router → Profile view: routes to
