Este diretório contém o código-fonte do frontend da aplicação Varion, construído com Next.js 15, React 19 e TypeScript. Oferece uma interface de usuário moderna e responsiva para gerenciamento de projetos, consumindo a API REST do backend Varion.
- Next.js 15 (com App Router)
- React 19 (com Server Components)
- TypeScript 5 (tipagem forte)
- Tailwind CSS 4 (estilização moderna)
- React Icons (ícones consistentes)
- ESLint + Prettier (qualidade de código)
src/
├── app/ # App Router do Next.js (rotas baseadas em arquivos)
│ ├── globals.css # Estilos globais e configuração do Tailwind
│ ├── layout.tsx # Layout global da aplicação
│ ├── page.tsx # Página inicial/dashboard
│ ├── projects/ # Páginas relacionadas a projetos
│ │ ├── layout.tsx # Layout específico para projetos
│ │ ├── page.tsx # Listagem de projetos
│ │ └── [id]/ # Rota dinâmica para projeto específico
│ │ └── page.tsx # Detalhes do projeto
│ └── states/ # Gerenciamento de estados customizáveis
│ └── page.tsx
├── components/ # Componentes React reutilizáveis
│ ├── CommentBox.tsx # Sistema de comentários
│ ├── GanttChart.tsx # Visualização Gantt (planejado)
│ ├── MainContentWrapper.tsx # Container principal
│ ├── MenuContext.tsx # Context do menu lateral
│ ├── ProjectForm.tsx # Formulário de projetos (legado)
│ ├── ProjectFormModal.tsx # Modal para criação/edição
│ ├── SideMenu.tsx # Menu lateral de navegação
│ ├── StateManager.tsx # Gerenciamento de estados
│ ├── StatusChart.tsx # Gráficos de status
│ └── Timeline.tsx # Timeline de atividades
├── hooks/ # Hooks React customizados
│ ├── useFetchData.ts # Hook genérico para fetch
│ ├── useProjects.ts # Gerenciamento de projetos
│ ├── useProjectStates.ts # Estados de projetos
│ ├── useStates.ts # Estados globais
│ └── useStatusConstants.ts # Constantes de status
├── utils/ # Funções utilitárias
│ └── helpers.ts # Helpers diversos
└── @types/ # Definições de tipo customizadas (se necessário)
- Node.js ≥18
- pnpm (gerenciador de pacotes)
- Backend Varion rodando (porta 3001)
Configure as variáveis de ambiente copiando o arquivo de exemplo:
cp .env.example .env.local
# Edite .env.local com suas configuraçõesVariáveis obrigatórias:
NEXT_PUBLIC_API_URL- URL da API backend (ex:http://localhost:3001)
Variáveis opcionais:
ANALYZE- Habilita análise de bundle (true/false)
📖 Documentação completa: ../docs/ENVIRONMENT.md
Exemplo de .env.local:
NEXT_PUBLIC_API_URL=http://localhost:3001
ANALYZE=falsepnpm installpnpm run start:devO servidor de desenvolvimento será iniciado em http://localhost:3000.
# Gerar build otimizada
pnpm run build
# Iniciar servidor de produção
pnpm run startpnpm run start:dev— Inicia servidor de desenvolvimento com hot reloadpnpm run build— Gera build otimizada para produção (.next/)pnpm run start— Inicia servidor Next.js em modo produçãopnpm run lint— Executa ESLint para análise estática do códigopnpm run type-check— Executa checagem de tipos TypeScriptpnpm run analyze— Análise de bundle com webpack-bundle-analyzer
- ✅ Listagem de projetos com informações básicas na dashboard
- ✅ Criação via modal responsivo diretamente da homepage
- ✅ Visualização detalhada (
/projects/[id]) com tarefas e comentários - ✅ Edição inline de projetos existentes
- ✅ Sistema de códigos únicos para identificação
- ✅ Listagem integrada dentro da visualização de projetos
- ✅ CRUD completo (criar, ler, atualizar, deletar)
- ✅ Sistema de comentários para colaboração
- ✅ Itens de to-do (checklist) para tarefas
- ✅ Atualização de status com histórico
- ✅ Página dedicada (
/states) para configuração - ✅ Estados customizáveis com cores personalizadas
- ✅ Aplicação dinâmica em projetos e tarefas
- ✅ Ordem configurável para fluxos de trabalho
- ✅ Modal de criação para projetos
- ✅ Design responsivo otimizado para mobile
- ✅ Navegação simplificada (removidas rotas desnecessárias)
- ✅ Feedback visual aprimorado com cores consistentes
- ✅ LoadingButton com texto adaptativo
- 🔐 Autenticação (login/registro de usuários)
- 🔒 Proteção de rotas baseada em permissões
- 📈 Dashboard avançado com métricas e gráficos
- 🔍 Busca e filtros avançados
- 📱 PWA (Progressive Web App)
- 🌙 Modo escuro configurável
SideMenu- Navegação lateral responsiva (simplificada v2.1.0)MainContentWrapper- Container principal com layout flexMenuContext- Gerenciamento de estado do menu
ProjectForm- Formulário reutilizável para projetos (legado)ProjectFormModal- Modal responsivo para criação/edição (v2.1.0)
StatusChart- Gráficos de distribuição de statusTimeline- Cronologia de atividades (planejado)
StateManager- Interface para configurar estadosGanttChart- Visualização Gantt (em desenvolvimento)
useFetchData- Hook genérico para chamadas à APIuseProjects- Gerenciamento completo de projetosuseProjectStates- Estados específicos de projetosuseStates- Gerenciamento global de estadosuseStatusConstants- Constantes de status da aplicação
- Server Components - Renderização no servidor onde apropriado
- Client Components - Interatividade otimizada no cliente
- Code Splitting - Carregamento sob demanda de componentes
- Bundle Analysis - Monitoramento do tamanho dos bundles
- 🖼️ Otimização de imagens com next/image
- 💾 Cache de dados com SWR ou React Query
- ⚡ Lazy loading de componentes pesados
- 📊 Memoização de cálculos complexos
- ✅ TypeScript para tipagem forte
- ✅ ESLint com regras Next.js
- ✅ Prettier para formatação consistente
- ✅ Estrutura organizacional clara e escalável
- 🧪 Testes unitários com Jest/Testing Library
- 🔍 Testes de integração com Playwright
- 📸 Testes de snapshot para componentes
- 📊 Coverage reports automáticos
- Next.js 15 - Migração para versão mais recente
- React 19 - Aproveitamento de novas funcionalidades
- Tailwind CSS 4 - Novo sistema de design tokens
- Hooks customizados - Centralização da lógica de estado
- Componentes modulares - Reutilização e manutenibilidade
- Type safety - Tipagem completa da aplicação
- Performance - Otimizações de renderização
Última atualização da documentação: 31 de maio de 2025
Interface moderna construída com Next.js 15 e React 19 ⚛️