Frontend

Visão Geral

O frontend da aplicação foi desenvolvido com Next.js, aproveitando suas funcionalidades de Server-Side Rendering (SSR) e Static Site Generation (SSG) para melhor performance e SEO. A interface do usuário é construída com React e estilizada com TailwindCSS em conjunto com a biblioteca de componentes shadcn/ui, garantindo consistência visual, rapidez no desenvolvimento e uma experiência moderna e responsiva.

Tecnologias Utilizadas

  • Next.js: Framework React utilizado para criação das páginas, rotas e otimizações de performance.
  • React: Biblioteca para construção da interface do usuário.
  • TailwindCSS + tailwind-merge + tailwindcss-animate: Framework utilitário para estilização, com suporte a animações e composição de classes.
  • shadcn/ui (Radix UI + Lucide Icons): Conjunto de componentes acessíveis e prontos para uso, como diálogos, formulários e ícones.
  • Axios: Cliente HTTP para comunicação com o backend.
  • Framer Motion: Biblioteca para animações fluidas e interativas.
  • Recharts: Gráficos para visualização de dados.
  • React Day Picker + date-fns: Manipulação e seleção de datas.
  • React Dropzone + @files-ui/react: Upload de arquivos e manipulação de inputs.
  • File Saver: Download de arquivos direto pelo navegador.

Páginas

  • Login (/): Tela para autenticação de usuários.
  • Cadastro (/): Registro de novos usuários na plataforma.
  • Home (/home): Página principal com acesso centralizado às funcionalidades do sistema.
  • Tabelas (/home): Exibição de entidades do laboratório (bolsistas, professores, documentos).
  • Inserção (/home): Formulário para adicionar novas entidades.
  • Dashboard Processo Seletivo (/home): Exibição dos processos seletivos ativos e finalizados.
  • Detalhes do Processo Seletivo (/home): Lista de participantes e submissões, com possibilidade de apagar dados sensíveis após finalização.
  • Detalhes do Projeto (/home): Mostra os integrantes do projeto, com opção de inserir ou remover membros.
  • Detalhes de Entidade (/home): Exibição detalhada de uma entidade.
  • Edição de Entidade (/home): Formulário para edição, restrito a administradores.
  • Processo Seletivo (/processoseletivo): Tela para submissão de candidaturas pelos participantes.

CI/CD

O pipeline de Integração Contínua (CI) e Entrega Contínua (CD) do frontend garante qualidade e estabilidade a cada commit ou pull request:

  • Execução de testes automatizados (ex.: Jest, Cypress).
  • Validação de lint com ESLint.
  • Checagem de build com Next.js para prevenir erros de configuração ou dependências.

Esse processo assegura que a aplicação seja confiável, seguindo padrões de código e pronta para deploy em produção.

Scripts Principais (package.json)

  • pnpm dev → Inicia o servidor de desenvolvimento Next.js.
  • pnpm build → Gera o build otimizado para produção.
  • pnpm start → Inicia a aplicação em modo de produção.
  • pnpm lint → Roda o ESLint para verificação de estilo e boas práticas.
  • pnpm prod → Cria a imagem Docker e roda o container localmente.

Estrutura de Qualidade e Usabilidade

  • UI consistente: shadcn/ui + TailwindCSS garantem padronização visual.
  • Acessibilidade: Radix UI assegura que os componentes sigam boas práticas de acessibilidade.
  • Responsividade: Layouts otimizados para diferentes dispositivos.
  • Experiência do Usuário: Animações com Framer Motion e feedback visual imediato.
Última modificação September 19, 2025: Issue #372: FIX input warning from phone input (c85e616)