# wallacegustav0/excluir_projeto architecture

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

## Overview

LIGA Pra Quem? is a Next.js marketplace connecting clients and independent workers. Users sign in or register, complete a profile, then browse services, contact workers, schedule work, and manage appointments; workers can publish and manage listings. Service details also support ratings. Firebase provides authentication and Firestore persistence, with chat messages updated through a live subscription. The graph reflects the sampled calls and README description; unsampled service-form and profile behavior is represented by its exact route path, without asserting unverified interactions.

Main entry points: [`app/servicos/[id]/page.tsx`](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/servicos/%5Bid%5D/page.tsx) (Service Details), [`app/home/page.tsx`](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/home/page.tsx) (Marketplace Home), [`app/page.tsx`](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/page.tsx) (Sign In), [`app/perfil/page.tsx`](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/perfil/page.tsx) (Profile and History)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and Profiles"]
  node_signin["Sign In<br/>[page.tsx]"]
  node_register["Email Registration<br/>[page.tsx]"]
  node_completeprofile["Complete Profile<br/>[page.tsx]"]
  node_profile["Profile and History<br/>[page.tsx]"]
end

subgraph group_marketplace["Service Marketplace"]
  node_home["Marketplace Home<br/>[page.tsx]"]
  node_servicecreate["Create Service<br/>[page.tsx]"]
  node_myservices["My Services<br/>[page.tsx]"]
  node_servicedetail["Service Details<br/>[page.tsx]"]
  node_serviceedit["Edit Service<br/>[page.tsx]"]
end

subgraph group_engagement["Bookings and Messaging"]
  node_appointments["Appointment Management<br/>[page.tsx]"]
  node_conversationlist["Conversation List<br/>[page.tsx]"]
  node_chat["Live Chat<br/>[page.tsx]"]
end

subgraph group_platform["Firebase Platform"]
  node_firebaseconfig["Firebase Client<br/>[firebase.ts]"]
  node_firebaseauth["Firebase Authentication"]
  node_firestore[("Firestore")]
end

node_visitor(("Client or Worker"))

node_visitor -->|"signs in"| node_signin
node_visitor -->|"registers"| node_register
node_signin -->|"authenticates"| node_firebaseauth
node_signin -->|"checks profile"| node_firestore
node_signin -->|"routes new users"| node_completeprofile
node_register -->|"creates account"| node_firebaseauth
node_register -->|"saves profile"| node_firestore
node_completeprofile -->|"checks session"| node_firebaseauth
node_completeprofile -->|"saves profile"| node_firestore
node_profile -->|"checks session"| node_firebaseauth
node_profile -->|"reads history"| node_firestore
node_profile -->|"signs out"| node_firebaseauth
node_home -->|"checks session"| node_firebaseauth
node_home -->|"loads listings"| node_firestore
node_home -->|"loads appointments"| node_firestore
node_home -->|"creates chat"| node_firestore
node_myservices -->|"checks session"| node_firebaseauth
node_myservices -->|"manages listings"| node_firestore
node_servicedetail -->|"checks session"| node_firebaseauth
node_servicedetail -->|"loads service"| node_firestore
node_servicedetail -->|"creates appointment"| node_firestore
node_servicedetail -->|"publishes rating"| node_firestore
node_servicedetail -->|"creates chat"| node_firestore
node_appointments -->|"checks session"| node_firebaseauth
node_appointments -->|"updates bookings"| node_firestore
node_appointments -->|"creates chat"| node_firestore
node_conversationlist -->|"checks session"| node_firebaseauth
node_conversationlist -->|"loads conversations"| node_firestore
node_chat -->|"checks session"| node_firebaseauth
node_chat -->|"streams messages"| node_firestore
node_chat -->|"sends messages"| node_firestore
node_firebaseconfig -->|"initializes"| node_firebaseauth
node_firebaseconfig -->|"initializes"| node_firestore

click node_signin "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/page.tsx"
click node_register "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/cadastro/page.tsx"
click node_completeprofile "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/completar-cadastro/page.tsx"
click node_profile "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/perfil/page.tsx"
click node_home "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/home/page.tsx"
click node_servicecreate "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/servicos/novo-servico/page.tsx"
click node_myservices "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/meus-servicos/page.tsx"
click node_servicedetail "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/servicos/%5Bid%5D/page.tsx"
click node_serviceedit "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/servicos/%5Bid%5D/editar/page.tsx"
click node_appointments "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/agenda/page.tsx"
click node_conversationlist "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/mensagens/page.tsx"
click node_chat "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/chat/%5Bid%5D/page.tsx"
click node_firebaseconfig "https://github.com/wallacegustav0/excluir_projeto/blob/main/app/firebase.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_signin,node_register,node_completeprofile,node_profile toneBlue
class node_home,node_servicecreate,node_myservices,node_servicedetail,node_serviceedit toneAmber
class node_appointments,node_conversationlist,node_chat toneMint
class node_firebaseconfig,node_firebaseauth,node_firestore,node_visitor toneRose
```

## Components

### Identity and Profiles

- [Sign In](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/page.tsx): `app/page.tsx`
- [Email Registration](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/cadastro/page.tsx): `app/cadastro/page.tsx`
- [Complete Profile](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/completar-cadastro/page.tsx): `app/completar-cadastro/page.tsx`
- [Profile and History](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/perfil/page.tsx): `app/perfil/page.tsx`

### Service Marketplace

- [Marketplace Home](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/home/page.tsx): `app/home/page.tsx`
- [Create Service](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/servicos/novo-servico/page.tsx): `app/servicos/novo-servico/page.tsx`
- [My Services](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/meus-servicos/page.tsx): `app/meus-servicos/page.tsx`
- [Service Details](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/servicos/%5Bid%5D/page.tsx): `app/servicos/[id]/page.tsx`
- [Edit Service](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/servicos/%5Bid%5D/editar/page.tsx): `app/servicos/[id]/editar/page.tsx`

### Bookings and Messaging

- [Appointment Management](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/agenda/page.tsx): `app/agenda/page.tsx`
- [Conversation List](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/mensagens/page.tsx): `app/mensagens/page.tsx`
- [Live Chat](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/chat/%5Bid%5D/page.tsx): `app/chat/[id]/page.tsx`

### Firebase Platform

- [Firebase Client](https://github.com/wallacegustav0/excluir_projeto/blob/main/app/firebase.ts): `app/firebase.ts`
- **Firebase Authentication**
- **Firestore**

### Other components

- **Client or Worker**

## Connections

- Client or Worker → Sign In: signs in (evidence: `app/page.tsx`)
- Client or Worker → Email Registration: registers (evidence: `app/cadastro/page.tsx`)
- Sign In → Firebase Authentication: authenticates (evidence: `app/page.tsx`)
- Sign In → Firestore: checks profile (evidence: `app/page.tsx`)
- Sign In → Complete Profile: routes new users (evidence: `app/page.tsx`)
- Email Registration → Firebase Authentication: creates account (evidence: `app/cadastro/page.tsx`)
- Email Registration → Firestore: saves profile (evidence: `app/cadastro/page.tsx`)
- Complete Profile → Firebase Authentication: checks session (evidence: `app/completar-cadastro/page.tsx`)
- Complete Profile → Firestore: saves profile (evidence: `app/completar-cadastro/page.tsx`)
- Profile and History → Firebase Authentication: checks session (evidence: `app/perfil/page.tsx`)
- Profile and History → Firestore: reads history (evidence: `app/perfil/page.tsx`)
- Profile and History → Firebase Authentication: signs out (evidence: `app/perfil/page.tsx`)
- Marketplace Home → Firebase Authentication: checks session (evidence: `app/home/page.tsx`)
- Marketplace Home → Firestore: loads listings (evidence: `app/home/page.tsx`)
- Marketplace Home → Firestore: loads appointments (evidence: `app/home/page.tsx`)
- Marketplace Home → Firestore: creates chat (evidence: `app/home/page.tsx`)
- My Services → Firebase Authentication: checks session (evidence: `app/meus-servicos/page.tsx`)
- My Services → Firestore: manages listings (evidence: `app/meus-servicos/page.tsx`)
- Service Details → Firebase Authentication: checks session (evidence: `app/servicos/[id]/page.tsx`)
- Service Details → Firestore: loads service (evidence: `app/servicos/[id]/page.tsx`)
- Service Details → Firestore: creates appointment (evidence: `app/servicos/[id]/page.tsx`)
- Service Details → Firestore: publishes rating (evidence: `app/servicos/[id]/page.tsx`)
- Service Details → Firestore: creates chat (evidence: `app/servicos/[id]/page.tsx`)
- Appointment Management → Firebase Authentication: checks session (evidence: `app/agenda/page.tsx`)
- Appointment Management → Firestore: updates bookings (evidence: `app/agenda/page.tsx`)
- Appointment Management → Firestore: creates chat (evidence: `app/agenda/page.tsx`)
- Conversation List → Firebase Authentication: checks session (evidence: `app/mensagens/page.tsx`)
- Conversation List → Firestore: loads conversations (evidence: `app/mensagens/page.tsx`)
- Live Chat → Firebase Authentication: checks session (evidence: `app/chat/[id]/page.tsx`)
- Live Chat → Firestore: streams messages (evidence: `app/chat/[id]/page.tsx`)
- Live Chat → Firestore: sends messages (evidence: `app/chat/[id]/page.tsx`)
- Firebase Client → Firebase Authentication: initializes (evidence: `app/firebase.ts`)
- Firebase Client → Firestore: initializes (evidence: `app/firebase.ts`)
