evo-ai-frontend-community

TypeScript / React 19 / Vite · porta 5173 (dev), servido via Nginx em produção

Dashboard web — chat, gerenciamento de contatos e agentes.

Estrutura por feature + camadas

src/
├── components/base/         # componentes base (Button, Card, Input)
├── components/[domain]/     # componentes por feature
├── pages/                   # páginas
├── services/core/           # cliente HTTP base
├── services/[domain]/       # APIs por feature
├── contexts/                 # React Context (Auth, Org, Theme...)
├── hooks/                     # hooks customizados (useDarkMode, useLanguage)
├── types/                     # interfaces TypeScript
├── utils/, constants/
├── store/                     # Zustand (state management leve)
├── i18n/                      # i18next (EN, PT-BR)
└── styles/                    # config Tailwind

e2e/                            # testes Playwright

Padrões

  • Formulários controlados com React Hook Form + Zod.

  • Design system compartilhado: @evoapi/design-system.

  • Estado global via Context + hooks.

  • CSS utility-first (Tailwind), sem CSS custom paralelo.

  • "strict": true no tsconfig.json.

Build & testes

cd evo-ai-frontend-community
pnpm install
pnpm run dev      # http://localhost:5173
pnpm run build    # produção → dist/
pnpm run lint
pnpm run test     # Vitest
pnpm run e2e      # Playwright

Produção

A imagem é agnóstica de ambiente — builda com placeholders VITE_*_PLACEHOLDER fixos, e um docker-entrypoint.sh substitui pelos valores reais via sed no boot do container, evitando rebuild por domínio.