# lirazn7/dresscode---atualizado architecture

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

- Interactive diagram: https://gitdiagram.com/lirazn7/dresscode---atualizado
- Repository: https://github.com/lirazn7/dresscode---atualizado

## Overview

DressCode is a mobile social-fashion app: users authenticate, discover and view outfit posts, interact with creators, and manage profiles and closets; an AI stylist can suggest outfits from closet contents. The README describes Supabase, while the sampled runtime initializes Firebase, so the graph reflects Firebase-backed code rather than the README’s backend claim. Several screens are unsampled; their presence and imports are established by the source index, but uncertain internal call paths are omitted.

Main entry points: [`App.js`](https://github.com/lirazn7/dresscode---atualizado/blob/main/App.js) (App routes), [`src/database/firebase.js`](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/database/firebase.js) (Firebase client), [`src/components/StylistChat.js`](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/components/StylistChat.js) (AI stylist chat), [`src/services/postService.js`](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/postService.js) (Post interactions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_app["App routes<br/>[App.js]"]
end

subgraph group_identity["Identity"]
  node_authctx["Session context<br/>[AuthContext.js]"]
  node_login["Login<br/>[LoginScreen.js]"]
  node_register["Registration<br/>[RegisterScreen.js]"]
  node_username["Username setup"]
  node_authservice["Auth service<br/>[authService.js]"]
end

subgraph group_social["Social Fashion"]
  node_vitrine["Outfit feed<br/>[VitrineScreen.js]"]
  node_postservice["Post interactions<br/>[postService.js]"]
  node_postcard["Post card<br/>[PostCard.js]"]
  node_createpost["Create post"]
  node_profile["Profile and follows<br/>[ProfileScreen.js]"]
  node_search["User search<br/>[SearchScreen.js]"]
  node_admin["Moderation<br/>[AdminScreen.js]"]
end

subgraph group_closet["Closet and Styling"]
  node_closet["Closet screens<br/>[ClosetScreen.js]"]
  node_closetmain["Closet overview"]
  node_closetcategory["Closet categories"]
  node_closetservice["Closet service<br/>[closetService.js]"]
  node_stylist["AI stylist chat<br/>[StylistChat.js]"]
  node_aiservice["Styling suggestions<br/>[aiService.js]"]
end

subgraph group_backend["Cloud Services"]
  node_firebase["Firebase client<br/>[firebase.js]"]
  node_storage["Image upload<br/>[storageService.js]"]
end

node_user(("Fashion user"))
node_cloud[("Firebase services")]
node_openrouter{{"OpenRouter API"}}

node_user -->|"uses"| node_app
node_app -->|"provides session"| node_authctx
node_app -->|"routes to"| node_login
node_app -->|"routes to"| node_register
node_app -->|"routes to"| node_vitrine
node_app -->|"routes to"| node_profile
node_app -->|"routes to"| node_closet
node_app -->|"routes to"| node_createpost
node_app -->|"routes to"| node_admin
node_app -->|"routes to"| node_username
node_app -->|"routes to"| node_search
node_app -->|"renders"| node_stylist
node_search -->|"opens profile"| node_profile
node_vitrine -->|"loads and updates"| node_postservice
node_profile -->|"uses post service"| node_postservice
node_stylist -->|"loads closet"| node_closetservice
node_stylist -->|"requests suggestions"| node_aiservice
node_aiservice -->|"sends chat request"| node_openrouter
node_authctx -->|"reads session profile"| node_firebase
node_authservice -->|"authenticates and stores profile"| node_firebase
node_postservice -->|"reads and writes social data"| node_firebase
node_closetservice -->|"uses cloud data"| node_firebase
node_storage -->|"uploads media"| node_firebase
node_firebase -->|"connects to"| node_cloud
node_login -->|"uses authentication"| node_authservice
node_createpost -.->|"uploads image"| node_storage

click node_app "https://github.com/lirazn7/dresscode---atualizado/blob/main/App.js"
click node_authctx "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/contexts/AuthContext.js"
click node_login "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/LoginScreen.js"
click node_register "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/RegisterScreen.js"
click node_username "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/SetUsernameScreen.js"
click node_authservice "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/authService.js"
click node_vitrine "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/VitrineScreen.js"
click node_postservice "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/postService.js"
click node_postcard "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/components/PostCard.js"
click node_createpost "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/CreatePostScreen.js"
click node_profile "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/ProfileScreen.js"
click node_search "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/SearchScreen.js"
click node_admin "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/AdminScreen.js"
click node_closet "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/ClosetScreen.js"
click node_closetmain "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/ClosetMainScreen.js"
click node_closetcategory "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/ClosetCategoryScreen.js"
click node_closetservice "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/closetService.js"
click node_stylist "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/components/StylistChat.js"
click node_aiservice "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/aiService.js"
click node_firebase "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/database/firebase.js"
click node_storage "https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/storageService.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_app,node_user toneBlue
class node_authctx,node_login,node_register,node_username,node_authservice,node_cloud toneAmber
class node_vitrine,node_postservice,node_postcard,node_createpost,node_profile,node_search,node_admin,node_openrouter toneMint
class node_closet,node_closetmain,node_closetcategory,node_closetservice,node_stylist,node_aiservice toneRose
class node_firebase,node_storage toneIndigo
```

## Components

### Application

- [App routes](https://github.com/lirazn7/dresscode---atualizado/blob/main/App.js): `App.js`

### Identity

- [Session context](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/contexts/AuthContext.js): `src/contexts/AuthContext.js`
- [Login](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/LoginScreen.js): `src/screens/LoginScreen.js`
- [Registration](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/RegisterScreen.js): `src/screens/RegisterScreen.js`
- [Username setup](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/SetUsernameScreen.js): `src/screens/SetUsernameScreen.js`
- [Auth service](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/authService.js): `src/services/authService.js`

### Social Fashion

- [Outfit feed](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/VitrineScreen.js): `src/screens/VitrineScreen.js`
- [Post interactions](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/postService.js): `src/services/postService.js`
- [Post card](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/components/PostCard.js): `src/components/PostCard.js`
- [Create post](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/CreatePostScreen.js): `src/screens/CreatePostScreen.js`
- [Profile and follows](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/ProfileScreen.js): `src/screens/ProfileScreen.js`
- [User search](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/SearchScreen.js): `src/screens/SearchScreen.js`
- [Moderation](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/AdminScreen.js): `src/screens/AdminScreen.js`

### Closet and Styling

- [Closet screens](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/ClosetScreen.js): `src/screens/ClosetScreen.js`
- [Closet overview](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/ClosetMainScreen.js): `src/screens/ClosetMainScreen.js`
- [Closet categories](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/screens/ClosetCategoryScreen.js): `src/screens/ClosetCategoryScreen.js`
- [Closet service](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/closetService.js): `src/services/closetService.js`
- [AI stylist chat](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/components/StylistChat.js): `src/components/StylistChat.js`
- [Styling suggestions](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/aiService.js): `src/services/aiService.js`

### Cloud Services

- [Firebase client](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/database/firebase.js): `src/database/firebase.js`
- [Image upload](https://github.com/lirazn7/dresscode---atualizado/blob/main/src/services/storageService.js): `src/services/storageService.js`

### Other components

- **Fashion user**
- **Firebase services**
- **OpenRouter API**

## Connections

- Fashion user → App routes: uses (evidence: `App.js`)
- App routes → Session context: provides session (evidence: `App.js`)
- App routes → Login: routes to (evidence: `App.js`)
- App routes → Registration: routes to (evidence: `App.js`)
- App routes → Outfit feed: routes to (evidence: `App.js`)
- App routes → Profile and follows: routes to (evidence: `App.js`)
- App routes → Closet screens: routes to (evidence: `App.js`)
- App routes → Create post: routes to (evidence: `App.js`)
- App routes → Moderation: routes to (evidence: `App.js`)
- App routes → Username setup: routes to (evidence: `App.js`)
- App routes → User search: routes to (evidence: `App.js`)
- App routes → AI stylist chat: renders (evidence: `App.js`)
- User search → Profile and follows: opens profile (evidence: `src/screens/SearchScreen.js`)
- Outfit feed → Post interactions: loads and updates (evidence: `src/screens/VitrineScreen.js`)
- Profile and follows → Post interactions: uses post service (evidence: `src/screens/ProfileScreen.js`)
- AI stylist chat → Closet service: loads closet (evidence: `src/components/StylistChat.js`)
- AI stylist chat → Styling suggestions: requests suggestions (evidence: `src/components/StylistChat.js`)
- Styling suggestions → OpenRouter API: sends chat request (evidence: `src/services/aiService.js`)
- Session context → Firebase client: reads session profile (evidence: `src/contexts/AuthContext.js`)
- Auth service → Firebase client: authenticates and stores profile (evidence: `src/services/authService.js`)
- Post interactions → Firebase client: reads and writes social data (evidence: `src/services/postService.js`)
- Closet service → Firebase client: uses cloud data (evidence: `src/services/closetService.js`)
- Image upload → Firebase client: uploads media (evidence: `src/services/storageService.js`)
- Firebase client → Firebase services: connects to (evidence: `src/database/firebase.js`)
- Login → Auth service: uses authentication (evidence: `src/screens/LoginScreen.js`)
- Create post → Image upload: uploads image
