{"id":28810289,"url":"https://github.com/jdgabriel/brain-farm","last_synced_at":"2026-04-19T19:33:33.375Z","repository":{"id":299184281,"uuid":"1001242332","full_name":"jdgabriel/brain-farm","owner":"jdgabriel","description":"Sistema de gestão agrícola que organiza dados de produtores, propriedades, tipos de culturas e etapas do ciclo produtivo, promovendo eficiência e estrutura na produção.","archived":false,"fork":false,"pushed_at":"2025-06-15T06:49:33.000Z","size":550,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-15T07:27:55.841Z","etag":null,"topics":["api","backend","fetch-api","frontend","jest","knex","nestjs","nextjs","shadcn-ui"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdgabriel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-13T04:03:55.000Z","updated_at":"2025-06-15T06:49:36.000Z","dependencies_parsed_at":"2025-06-15T07:42:05.397Z","dependency_job_id":null,"html_url":"https://github.com/jdgabriel/brain-farm","commit_stats":null,"previous_names":["jdgabriel/brain-farm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jdgabriel/brain-farm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdgabriel%2Fbrain-farm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdgabriel%2Fbrain-farm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdgabriel%2Fbrain-farm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdgabriel%2Fbrain-farm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdgabriel","download_url":"https://codeload.github.com/jdgabriel/brain-farm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdgabriel%2Fbrain-farm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32020669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","backend","fetch-api","frontend","jest","knex","nestjs","nextjs","shadcn-ui"],"created_at":"2025-06-18T14:00:58.203Z","updated_at":"2026-04-19T19:33:33.364Z","avatar_url":"https://github.com/jdgabriel.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Brain Farm\n\nEste projeto é um sistema de gestão agrícola que permite organizar dados sobre os produtores, registrar informações das propriedades rurais, padronizar os tipos de culturas e acompanhar cada etapa do ciclo produtivo das colheitas, desde o plantio até a colheita, promovendo uma gestão mais eficiente e estruturada da produção.\n\n![image](./.github/images/web-print.png)\n\n## Sumário\n- [Requisitos](#requisitos)\n- [Tecnologias](#tecnologias)\n- [Estrutura do Projeto](#estrutura-do-projeto)\n- [Configuração do Ambiente](#configuração-do-ambiente)\n- [Utilizando Docker](#utilizando-docker)\n- [Rodando o Projeto](#rodando-o-projeto)\n  - [Bran Farm Client](#frontend)\n  - [Bran Farm Server](#backend)\n\n---\n\n## Requisitos\n\n- Node.js \u003e= 20.x\n- [pnpm](https://pnpm.io/) \u003e= 9.x\n- Docker (opcional, recomendado para banco de dados)\n\n## Tecnologias\n\n- **Backend**: [NestJS](https://nestjs.com/) | [TypeORM](https://typeorm.io/) | [PostgreSQL](https://www.postgresql.org/) | [Jest](https://jestjs.io/pt-BR/) | [Swagger](https://swagger.io/)\n- **Frontend**: [NextJS](https://nextjs.org/) | [Shadcn/UI](https://ui.shadcn.com/) | [React Query](https://tanstack.com/query/latest/docs/framework/react/overview)\n- [Docker \u0026 Docker Compose](https://www.docker.com/)\n\n## Estrutura do Projeto\n\n- `apps/server`: Brain Farm - Backend (📃 [Documentação](./apps/server/README.md))\n- `apps/client`: Brain Farm - Frontend (📃 [Documentação](./apps/client/README.md))\n\n## Configuração do Ambiente\n\n1. Copie o arquivo `.env.example` para `.env` e configure as variáveis de ambiente necessárias. \n\n2. Instalando todas as dependências do projeto (PNPM Workspace):\n\n```sh\npnpm install\n```\n\n## Utilizando Docker\nO projeto inclui um arquivo `docker-compose.yaml` para facilitar o uso do banco PostgreSQL.\n\n### Subir o banco de dados\n\n```sh\ndocker-compose up -d\n```\nCertifique-se de que a variável `DATABASE_URL` no `.env` está apontando para o banco do Docker.\n\n## Rodando o Projeto\n\n\u003e [!TIP]\n\u003e Todos os comandos podem ser rodados na pasta raiz, seguindo os scripts do `package.json`\n\n### Desenvolvimento\nLembre-se de estar com o banco de dados rodando. Veja em: [Utilizando Docker](#utilizando-docker)\n\n#### Executando o backend\n\n```sh\npnpm server:dev\n```\n\nTodas `migrations` necessárias serão adicionadas ao banco de dados, e a aplicação estará disponível na porta definida em `PORT` (https://localhost:3000/v1/) .\n\n#### Executando frontend\n\n```sh\npnpm client:dev\n```\nA aplicação rodará na porta 3001 (https://localhost:3001/)\n\n## Scripts de Banco de Dados\n\nO projeto utiliza TypeORM para gerenciamento de migrations.\n\n### Executa e aplica todas as migration pendentes\n\n```sh\npnpm server:database\n```\n## Pontos de melhoria\n\n### BACKEND\n- Implementar Authentication e Authorization ( [Keycloak](http://keycloak.org/) | [Auth0](https://auth0.com/) | SSO );\n- Implementar `camada de cache` para os recursos do sistema ( [Redis](https://redis.io/) | [NestJS Caching](https://docs.nestjs.com/techniques/caching) );\n- Implementar regras de negócios às entidades;\n- Implementar configurações de logs para endpoints;\n- Implementar métricas e monitoramento do sistema ( [OpenTelemetry](https://opentelemetry.io/) | [Jaeger](https://www.jaegertracing.io/) | [Grafana](https://grafana.com/) | [Prometheus](https://prometheus.io/) )\n- Melhoria da documentação da aplicação em `Swagger`;\n- Proteger o endpoint da documentação em produção;\n\n### FRONTEND\n- Implementar `Authentication` e `Authorization` ( [Keycloak](http://keycloak.org/) | [Auth0](https://auth0.com/) | [Auth.js (NextAuth.js)](https://authjs.dev/) );\n- Implementar responsividade para a interface;\n- Melhorar a exibição de erros customizados da API;\n- Implementar [Server Actions](https://nextjs.org/docs/14/app/building-your-application/data-fetching/server-actions-and-mutations);\n- Implementar controlo de estado global ( [Zustand](https://zustand-demo.pmnd.rs/) | [Redux](https://redux.js.org/) | [Immer](https://immerjs.github.io/immer/) ) \n- Criar testes em componentes ( [React Testing LIbrary](https://testing-library.com/) | [Playwright](https://playwright.dev/) );\n- Implementar componentes genéricos para uso geral do sistema ( Header, DataTable, Pagination, Modal, Alerts )\n- Padronização de toda a interface e componentes ( Cores, Tamanhos e Ícones )\n\n## PROJETO\n- Implementar pipeline de CI/CD ( [Github Actions](https://github.com/features/actions) )\n- Implementar configurações de build em [Docker](https://www.docker.com/) com imagens base da [Chainguard](https://images.chainguard.dev/directory/image/node/versions): __Imagens leves com menor superfície de acesso externo e menor número de [vulnerabilidades - CVE's](https://images.chainguard.dev/directory/image/node/vulnerabilities)__\n---\n\n## Contato\n**Gabriel Januario Duarte de Souza**\u003cbr/\u003e\njds.gabrielduarte@gmail.com - [LinkedIn](https://www.linkedin.com/in/jdsgabriel/) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdgabriel%2Fbrain-farm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdgabriel%2Fbrain-farm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdgabriel%2Fbrain-farm/lists"}