Um monorepo moderno para gestão de documentos com inteligência artificial.
infinite-doc-monorepo/
├── apps/
│ └── web/ # Aplicação Next.js 16 (App Router)
│ ├── src/
│ │ ├── app/ # Rotas do App Router
│ │ │ ├── page.tsx # Landing page (/)
│ │ │ ├── pricing/ # Página de preços
│ │ │ ├── dashboard/ # Dashboard (protegido)
│ │ │ ├── portal/ # Portal do cliente (protegido)
│ │ │ └── chat/[token]/ # Chat com token dinâmico
│ │ ├── components/
│ │ │ ├── ui/ # Componentes shadcn/ui
│ │ │ ├── layout/ # Header, Footer, Sidebar
│ │ │ └── common/ # Componentes reutilizáveis
│ │ ├── lib/ # Utilitários e configurações
│ │ ├── hooks/ # Custom hooks
│ │ └── types/ # TypeScript types
│ └── public/ # Assets estáticos
├── packages/ # Pacotes compartilhados (futuro)
├── .env.example # Variáveis de ambiente
├── .prettierrc # Configuração do Prettier
└── package.json # Root package.json (workspaces)
- Framework: Next.js 16 (App Router)
- Linguagem: TypeScript (strict mode)
- Estilização: Tailwind CSS v4
- Componentes UI: shadcn/ui
- Linting: ESLint 9
- Formatação: Prettier
- Node.js 18.17 ou superior
- npm 9 ou superior
- Clone o repositório:
git clone <repository-url>
cd infinite-doc-monorepo- Copie o arquivo de variáveis de ambiente:
cp .env.example apps/web/.env.local- Instale as dependências:
npm install# Da raiz do monorepo
npm run dev
# Ou diretamente na pasta do app
cd apps/web && npm run devO projeto estará disponível em http://localhost:3000
# Build
npm run build
# Start
npm run start# Lint
npm run lint
# Formatar código
npm run format
# Verificar formatação
npm run format:check| Rota | Descrição | Proteção |
|---|---|---|
/ |
Landing page | Pública |
/pricing |
Página de preços | Pública |
/dashboard |
Dashboard administrativo | Protegida |
/portal |
Portal do cliente | Protegida |
/chat/[token] |
Interface de chat | Pública (com token) |
O projeto inclui os seguintes componentes customizados:
- Layout: Header, Footer, AppSidebar, DashboardHeader
- Common: StatsCard, DataTable, PricingCard, FeatureCard
- shadcn/ui: Button, Card, Table, Sidebar, Sheet, Badge, Avatar, etc.
O projeto inclui um sistema de autenticação mock em src/lib/auth.ts. Para produção, substitua por uma implementação real usando:
Veja .env.example para a lista completa de variáveis disponíveis:
NEXT_PUBLIC_APP_NAME=Infinite Doc
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-secret
DATABASE_URL=postgresql://...Este projeto utiliza GitHub Actions para garantir a qualidade do código e a estabilidade da Clínica Autônoma.
O workflow de CI (ci.yml) é executado automaticamente em cada Push ou Pull Request para a branch main. Ele realiza as seguintes etapas:
- Linting & Formatting: Verifica se o código segue os padrões do projeto (
npm run lintenpm run format:check). - Prisma Sync: Gera o cliente Prisma para garantir que as tipagens do banco de dados estão corretas.
- Build Validation: Compila as aplicações para detectar erros de build antecipadamente.
- Crie uma branch para sua feature:
git checkout -b feature/nova-feature - Desenvolva e teste localmente (
npm run dev). - Verifique linting e formatação:
npm run lint && npm run format. - Faça commit das mudanças:
git commit -m 'feat: adiciona nova feature' - Push para a branch e abra um Pull Request.
- Aguarde o check do GitHub Actions passar antes de realizar o merge.
MIT © 2024 Infinite Doc