Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Buffs Frontend

Frontend web do Buffs, construído com Next.js (App Router) e TypeScript, com autenticação, i18n e módulos por perfil (proprietário, gerente, funcionário e veterinário).

Visão geral do projeto

O Buffs Frontend é uma aplicação web modular que consome APIs internas para gerenciar propriedades, rebanho, grupos, equipe e ingestão de dados. O sistema separa as telas por perfil e protege as rotas com base na sessão do usuário.

Principais tecnologias

  • Next.js 16 (App Router)
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • React Query para cache e sincronização de dados
  • Zustand para estado global (auth e contexto de propriedade)
  • Axios com interceptors e refresh token
  • next-intl para i18n
  • React Hook Form + Zod para formulários
  • Recharts para gráficos
  • Leaflet/React-Leaflet para mapas

Como rodar localmente

Pré-requisitos

  • Node.js 18+ (recomendado)
  • NPM

Instalação

npm install

Variáveis de ambiente

Configure o endpoint da API em .env:

NEXT_PUBLIC_API_URL=http://localhost:3001

Execução

npm run dev

Aplicação disponível em http://localhost:3000.

Build e produção

npm run build
npm run start

Lint

npm run lint

Arquitetura e organização de pastas

App Router e rotas

As rotas vivem em src/app. O projeto é multi-idioma e as páginas ficam dentro de src/app/[locale], com subrotas organizadas por perfil:

Rotas públicas/estado:

Middleware e i18n

Camada de API

  • Instância Axios em src/lib/apiClient.ts com:
    • Injeção automática do token Bearer.
    • Refresh token automático em caso de 401.
  • Serviços por domínio em src/services (ex.: propriedades, lotes, usuários, dashboard).

Hooks

Hooks encapsulam o consumo de serviços e o cache do React Query:

  • src/hooks
  • Padrão: useX chama x.service.ts e expõe data, isLoading, mutate.

Estado global (Zustand)

Providers

Componentes

Assets e documentação

Como o projeto funciona (fluxo de dados)

  1. As páginas do App Router chamam hooks em src/hooks.
  2. Os hooks usam serviços em src/services.
  3. Os serviços consomem a API via src/lib/apiClient.ts.
  4. O AuthProvider valida sessão e restringe acesso por cargo.
  5. O React Query mantém cache e sincronização dos dados.

Autenticação e sessão

  • A sessão é salva em localStorage com a chave @Buffs:session.
  • O token é injetado no header Authorization por src/lib/apiClient.ts.
  • Em caso de 401, o refresh token é usado para renovar a sessão.
  • O AuthProvider redireciona conforme o cargo do usuário.

Internacionalização

  • Prefixo de idioma obrigatório nas rotas: /pt e /en.
  • next-intl é responsável por navegar e carregar mensagens.

Padrões do código

  • Componentes com use client quando necessário.
  • Hooks isolam efeitos e chamadas HTTP.
  • Serviços por domínio, facilitando manutenção e testes.
  • UI com Tailwind e componentes reutilizáveis.

Suporte

Para dúvidas ou ajustes, consulte os arquivos de referência em docs e os serviços em src/services.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages