# lorainnediaz/rotato-app architecture

> Architecture diagram of the GitHub repository lorainnediaz/rotato-app, 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/lorainnediaz/rotato-app
- Repository: https://github.com/lorainnediaz/rotato-app

## Overview

Rotato coordinates shared household spaces: users authenticate, create or join a server, then coordinate recurring or reported chores, shared expenses, and member profiles. The sampled screens show server creation/join/leave and pinning through Firebase, server/member reads, task creation, and profile updates. README capabilities such as payment splitting and invitations are retained, but their detailed wiring is not inferred where source excerpts do not show it.

Main entry points: [`app/server/index.tsx`](https://github.com/lorainnediaz/rotato-app/blob/main/app/server/index.tsx) (Server Dashboard), [`app/index.tsx`](https://github.com/lorainnediaz/rotato-app/blob/main/app/index.tsx) (Server List), [`app/server/members.tsx`](https://github.com/lorainnediaz/rotato-app/blob/main/app/server/members.tsx) (Member Profiles), [`app/_layout.tsx`](https://github.com/lorainnediaz/rotato-app/blob/main/app/_layout.tsx) (Auth Routing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access &amp; Navigation"]
  node_root["Auth Routing<br/>[_layout.tsx]"]
  node_login["Sign In<br/>[login.tsx]"]
end

subgraph group_spaces["Shared Spaces"]
  node_spaces_home["Server List<br/>[index.tsx]"]
  node_invite["Join Invitation<br/>[invite.tsx]"]
  node_server_home["Server Dashboard<br/>[index.tsx]"]
  node_server_layout["Server Navigation<br/>[_layout.tsx]"]
end

subgraph group_coordination["Tasks &amp; Payments"]
  node_task_modal["Create Task"]
  node_payment_modal["Create Payment"]
end

subgraph group_profiles["Member Profiles"]
  node_members["Member Profiles<br/>[members.tsx]"]
  node_avatars["Potato Avatars<br/>[PotatoAvatars.tsx]"]
end

subgraph group_services["Backend Services"]
  node_firebase_config["Firebase Setup<br/>[firebaseConfig.js]"]
  node_firebase_auth{{"Firebase Auth"}}
  node_realtime_db[("Firebase Database")]
end

node_resident(("Resident"))

node_resident -->|"opens app"| node_root
node_root -->|"routes unauthenticated"| node_login
node_login -->|"uses config"| node_firebase_config
node_firebase_config -->|"initializes"| node_firebase_auth
node_spaces_home -->|"opens server"| node_server_home
node_resident -->|"manages spaces"| node_spaces_home
node_resident -->|"joins space"| node_invite
node_spaces_home -->|"writes server data"| node_realtime_db
node_server_home -->|"reads members"| node_realtime_db
node_server_home -->|"uses navigation"| node_server_layout
node_server_home -->|"opens task form"| node_task_modal
node_task_modal -->|"writes task"| node_realtime_db
node_resident -->|"records expense"| node_payment_modal
node_payment_modal -.->|"stores payment"| node_realtime_db
node_server_home -.->|"opens member view"| node_members
node_members -->|"reads and updates profiles"| node_realtime_db
node_members -->|"renders avatar"| node_avatars

click node_root "https://github.com/lorainnediaz/rotato-app/blob/main/app/_layout.tsx"
click node_login "https://github.com/lorainnediaz/rotato-app/blob/main/app/login.tsx"
click node_spaces_home "https://github.com/lorainnediaz/rotato-app/blob/main/app/index.tsx"
click node_invite "https://github.com/lorainnediaz/rotato-app/blob/main/app/invite.tsx"
click node_server_home "https://github.com/lorainnediaz/rotato-app/blob/main/app/server/index.tsx"
click node_server_layout "https://github.com/lorainnediaz/rotato-app/blob/main/app/server/_layout.tsx"
click node_members "https://github.com/lorainnediaz/rotato-app/blob/main/app/server/members.tsx"
click node_avatars "https://github.com/lorainnediaz/rotato-app/blob/main/components/PotatoAvatars.tsx"
click node_task_modal "https://github.com/lorainnediaz/rotato-app/blob/main/app/createTaskModal.tsx"
click node_payment_modal "https://github.com/lorainnediaz/rotato-app/blob/main/app/createPaymentModal.tsx"
click node_firebase_config "https://github.com/lorainnediaz/rotato-app/blob/main/constants/firebaseConfig.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_root,node_login toneBlue
class node_spaces_home,node_invite,node_server_home,node_server_layout toneAmber
class node_task_modal,node_payment_modal toneMint
class node_members,node_avatars toneRose
class node_firebase_config,node_firebase_auth,node_realtime_db,node_resident toneIndigo
```

## Components

### Access & Navigation

- [Auth Routing](https://github.com/lorainnediaz/rotato-app/blob/main/app/_layout.tsx): `app/_layout.tsx`
- [Sign In](https://github.com/lorainnediaz/rotato-app/blob/main/app/login.tsx): `app/login.tsx`

### Shared Spaces

- [Server List](https://github.com/lorainnediaz/rotato-app/blob/main/app/index.tsx): `app/index.tsx`
- [Join Invitation](https://github.com/lorainnediaz/rotato-app/blob/main/app/invite.tsx): `app/invite.tsx`
- [Server Dashboard](https://github.com/lorainnediaz/rotato-app/blob/main/app/server/index.tsx): `app/server/index.tsx`
- [Server Navigation](https://github.com/lorainnediaz/rotato-app/blob/main/app/server/_layout.tsx): `app/server/_layout.tsx`

### Tasks & Payments

- [Create Task](https://github.com/lorainnediaz/rotato-app/blob/main/app/createTaskModal.tsx): `app/createTaskModal.tsx`
- [Create Payment](https://github.com/lorainnediaz/rotato-app/blob/main/app/createPaymentModal.tsx): `app/createPaymentModal.tsx`

### Member Profiles

- [Member Profiles](https://github.com/lorainnediaz/rotato-app/blob/main/app/server/members.tsx): `app/server/members.tsx`
- [Potato Avatars](https://github.com/lorainnediaz/rotato-app/blob/main/components/PotatoAvatars.tsx): `components/PotatoAvatars.tsx`

### Backend Services

- [Firebase Setup](https://github.com/lorainnediaz/rotato-app/blob/main/constants/firebaseConfig.js): `constants/firebaseConfig.js`
- **Firebase Auth**
- **Firebase Database**

### Other components

- **Resident**

## Connections

- Resident → Auth Routing: opens app
- Auth Routing → Sign In: routes unauthenticated
- Sign In → Firebase Setup: uses config
- Firebase Setup → Firebase Auth: initializes
- Server List → Server Dashboard: opens server
- Resident → Server List: manages spaces
- Resident → Join Invitation: joins space
- Server List → Firebase Database: writes server data
- Server Dashboard → Firebase Database: reads members
- Server Dashboard → Server Navigation: uses navigation
- Server Dashboard → Create Task: opens task form
- Create Task → Firebase Database: writes task
- Resident → Create Payment: records expense
- Create Payment → Firebase Database: stores payment
- Server Dashboard → Member Profiles: opens member view
- Member Profiles → Firebase Database: reads and updates profiles
- Member Profiles → Potato Avatars: renders avatar
