Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

datacattle.net

Site institucional e de dados de mercado do DataCattle — reconstrução em Next.js (App Router, TypeScript, Tailwind) do site anterior em WordPress. Ver o spec original para o contexto completo da migração.

Desenvolvimento local

npm install
npm run dev

Abra http://localhost:3000. Sem nenhuma variável de ambiente configurada, os dados de mercado (/graficos) caem automaticamente para dados de exemplo (lib/market/fixtures.ts) e o blog (/artigos) busca o RSS real do Substack.

Outros comandos úteis:

npm run build        # build de produção
npm run lint          # eslint
npm run test           # vitest (rodada única)
npm run test:watch     # vitest em modo watch
npm run format         # prettier --write

Variáveis de ambiente

Copie .env.local.example para .env.local e preencha:

Variável Uso
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_REGION Acesso ao bucket S3 com os dados de mercado
S3_BUCKET_NAME Nome do bucket (datacattle)
SUBSTACK_URL URL do Substack usado como blog (https://datacattle.substack.com)
RESEND_API_KEY Envio do formulário de contato via Resend — requer domínio verificado
CONTACT_EMAIL_TO E-mail que recebe as mensagens do formulário de contato
CRON_SECRET Protege /api/cron/scrape-mercado contra acionamento público — deve bater com o secret configurado no Vercel Cron

Pendências conhecidas (ver comentários no código)

  • Chaves S3 dos ajustes diários: lib/market/s3.ts assume ajustes-diarios/latest.json como chave do objeto já alimentado pelo processo externo do usuário — confirmar o nome real e ajustar S3_KEYS.dailyAdjustments.
  • Mercado Físico: os preços regionais em /graficos ainda usam dado de exemplo (lib/market/fixtures.ts); falta decidir a fonte real (CEPEA regionalizado ou outra).
  • Licença de dados CEPEA: o indicador é raspado de cepea.esalq.usp.br, cuja licença de dados é CC BY-NC 4.0 (uso não comercial) — vale confirmar com o CEPEA se o uso comercial do DataCattle precisa de acordo à parte.
  • Domínio no Resend: o "from" do e-mail de contato (contato@datacattle.net) precisa de um domínio verificado na Resend antes de funcionar em produção.
  • Logo: components/ui/Logo.tsx usa um wordmark de texto provisório — trocar pelo arquivo de marca oficial quando disponível.

Deploy (Vercel)

  1. Importar o repositório na Vercel.
  2. Configurar todas as variáveis de ambiente acima no dashboard do projeto.
  3. vercel.json já define o cron diário (/api/cron/scrape-mercado às 06:00 UTC) que atualiza o Indicador CEPEA/B3 no S3.
  4. Apontar o DNS de datacattle.net para a Vercel (ação manual do usuário, fora do escopo deste repositório).

Versionamento e releases

O repositório usa Conventional Commits + release-please para automatizar versionamento semântico, CHANGELOG.md e GitHub Releases.

  • Commits em main devem seguir o padrão tipo(escopo opcional): descrição, por exemplo:
    • feat: adiciona página de artigos
    • fix: corrige scraping do indicador CEPEA
    • chore: atualiza dependências
    • feat!: ou rodapé BREAKING CHANGE: para mudanças incompatíveis
  • A cada push em main, o workflow release-please (.github/workflows/release-please.yml) mantém uma PR de release atualizada com o changelog acumulado.
  • Ao fazer merge dessa PR, o release-please cria automaticamente a tag vX.Y.Z, atualiza package.json/CHANGELOG.md e publica a GitHub Release correspondente.
  • O CI (.github/workflows/ci.yml) roda lint e testes em toda PR/push para main.

About

Site institucional e de dados de mercado do DataCattle — Next.js, TypeScript, Tailwind.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages