Documento interno
Arquitetura Tecnica

Estrutura do Prototipo (web/)

Como as rotas e componentes estao organizados no diretorio web/ do projeto Romeo.

Versao
1.0
Atualizado
junho/2026
Status
pronto
1

Visao geral

O diretorio web/ contem o front-end do Romeo, construido com Next.js 15 e App Router. E um prototipo funcional que demonstra todas as telas do sistema, com dados mockados em lib/mock/.

Stack
Next.js 15 · React 19 · TypeScript · Tailwind CSS · shadcn/ui · Radix UI
2

Estrutura de pastas

web/
├── app/                    # App Router (rotas)
│   ├── (public)/           # Rotas publicas (marketplace)
│   ├── app/                # Painel do corretor (/app/*)
│   ├── docs/               # Documentacao (/docs/*)
│   ├── inquilino/          # Portal do inquilino
│   ├── proprietario/       # Portal do proprietario
│   └── layout.tsx          # Layout raiz
├── components/             # Componentes React
│   ├── app/                # Componentes do painel
│   ├── docs/               # Componentes de documentacao
│   ├── layout/             # Header, sidebar, footer
│   ├── marketing/          # Landing pages
│   └── ui/                 # shadcn/ui + customizados
├── lib/                    # Utilitarios
│   ├── mock/               # Dados mockados
│   └── utils.ts            # Helpers gerais
├── public/                 # Assets estaticos
└── styles/                 # CSS global
3

App Router (rotas)

O Next.js App Router organiza rotas por pastas. Cada pasta com page.tsx vira uma rota.

RotaDescricaoLayout
/Marketplace publicoPublico
/imovel/[id]Detalhe do imovelPublico
/c/[slug]Microsite do corretorMicrosite
/appDashboard do corretorApp (sidebar)
/app/imoveisLista de imoveisApp
/app/carteiraCarteira de clientesApp
/docsPortal de documentacaoDocs
/inquilinoCentral do inquilinoPortal
/proprietarioPortal do proprietarioPortal

Rotas com parenteses como (public) sao grupos de layout — nao aparecem na URL.

4

Organizacao de componentes

components/ui/

Componentes base do shadcn/ui e extensoes customizadas. Sao atomicos e reutilizaveis.

components/app/

Componentes especificos do painel do corretor: cards de imovel, timeline de atividades, graficos, etc. Podem conter logica de negocio.

components/layout/

Estrutura de pagina: header, sidebar, breadcrumbs. Usados nos layouts do App Router.

components/docs/

Primitivos tipograficos para documentacao: Section, Table, Callout, etc. Usados em todas as paginas /docs.

5

Utilitarios e lib/

ArquivoProposito
lib/utils.tsHelpers gerais (cn, formatters)
lib/docs.tsRegistro de paginas de documentacao
lib/docs-md.tsParser de arquivos .md para /docs/tech
lib/mock/*.tsDados mockados para prototipo
lib/rbac.tsDefinicoes de papeis e permissoes
Regra
Arquivos em lib/ sao utilitarios puros — sem dependencia de React. Hooks ficam em hooks/.
6

Convencoes adotadas

  • Arquivos em kebab-casemeu-componente.tsx, nao MeuComponente.tsx
  • Exports nomeados — evitar export default exceto em pages
  • Colocation — componentes usados em uma so pagina ficam junto dela
  • Server Components por padrao"use client" so quando necessario

Para detalhes completos de estilo, veja /docs/convencoes.