{"id":28840616,"url":"https://github.com/luskas8/agro-hub","last_synced_at":"2026-04-13T00:33:55.442Z","repository":{"id":298426227,"uuid":"999934738","full_name":"luskas8/agro-hub","owner":"luskas8","description":"API para gestão de produtores rurais e propriedades agrícolas, incluindo cadastro, validação de dados e dashboard analítico.","archived":false,"fork":false,"pushed_at":"2025-06-11T02:55:13.000Z","size":120,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-11T04:01:54.157Z","etag":null,"topics":["dashboard","docker-compose","nestjs","postgresql","prisma-orm","tdd"],"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/luskas8.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-11T02:52:22.000Z","updated_at":"2025-06-11T02:55:24.000Z","dependencies_parsed_at":"2025-06-11T04:04:13.861Z","dependency_job_id":"bd36ebcf-c74f-4038-b48e-34d52b412b9d","html_url":"https://github.com/luskas8/agro-hub","commit_stats":null,"previous_names":["luskas8/agro-hub"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luskas8/agro-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luskas8%2Fagro-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luskas8%2Fagro-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luskas8%2Fagro-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luskas8%2Fagro-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luskas8","download_url":"https://codeload.github.com/luskas8/agro-hub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luskas8%2Fagro-hub/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260774883,"owners_count":23060944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["dashboard","docker-compose","nestjs","postgresql","prisma-orm","tdd"],"created_at":"2025-06-19T15:09:43.736Z","updated_at":"2026-04-13T00:33:55.397Z","avatar_url":"https://github.com/luskas8.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agro-hub\n\nO Agro-hub é uma API robusta desenvolvida em NestJS, utilizando PostgreSQL como banco de dados e Prisma ORM para gerenciamento de dados. Esta aplicação foi projetada para otimizar a gestão de produtores rurais e suas propriedades agrícolas, oferecendo funcionalidades essenciais para cadastro, validação de informações e um dashboard analítico.\n\n# Menu Agro-hub\n\n*   [Acesso à API](#acesso-à-api)\n*   [Contato para Acesso à API](#contato-para-acesso-à-api)\n*   [Como Buildar e Configurar o Projeto](#como-buildar-e-configurar-o-projeto)\n*   [Como Executar Localmente](#como-executar-localmente)\n*   [Requisitos de Negócio (User Cases)](#requisitos-de-negócio-user-cases)\n*   [Documentação da API (Swagger)](#documentação-da-api-swagger)\n*   [Autenticação da API: Basic Auth](#autenticação-da-api-basic-auth)\n*   [Próximos Passos: Usuários e Autenticação JWT](#próximos-passos-usuários-e-autenticação-jwt)\n\n## Acesso à API\n\nA API do Agro-hub está disponível publicamente em:\n\n`https://api.luskas8.pro`\n\n### Contato para Acesso à API\nPara solicitar acesso à API do Agro-hub ou para qualquer dúvida e suporte, por favor, entre em contato através do e-mail:\n\n**LinkedIn:** https://www.linkedin.com/in/luskas8/\n\n**E-mail:** luskanjos@gmail.com\n\n**Assunto do E-mail:** [Agro-hub] Solicitação de Acesso à API\n\nAo enviar o e-mail, por favor, inclua uma breve descrição do seu interesse ou do projeto para o qual você precisa de acesso.\n\n## Como Buildar e Configurar o Projeto\n\nPara configurar e buildar o projeto localmente, siga os passos abaixo:\n\n1.  **Clone o repositório:**\n    ```bash\n    git clone https://github.com/luskas8/agro-hub.git\n    cd agro-hub\n    ```\n\n2.  **Crie o arquivo `.env` local:**\n    Execute o script `dev-utils.sh` para gerar o arquivo de variáveis de ambiente necessário para a execução local.\n    ```bash\n    ./scripts/dev-utils.sh setup\n    ```\n\n## Como Executar Localmente\n\nApós configurar o arquivo `.env`, você pode iniciar a aplicação e o banco de dados localmente usando Docker Compose:\n\n1.  **Inicie os serviços:**\n    ```bash\n    ./scripts/dev-utils.sh run\n    ```\n    Este comando irá construir as imagens Docker (se necessário), iniciar os contêineres do PostgreSQL e da aplicação NestJS.\n\n2.  **Acesse a aplicação:**\n    A API estará disponível em `http://localhost:3003` (ou na porta configurada no seu `.env`).\n\n3.  **Para parar e remover os contêineres:**\n    ```bash\n    ./scripts/dev-utils.sh down\n    ```\n\n## Requisitos de Negócio (User Cases)\n\nO Agro-hub atende aos seguintes requisitos de negócio, apresentados como user cases:\n\n*   **Gerenciamento de Produtores Rurais:**\n    *   Como um usuário, desejo cadastrar novos produtores rurais, fornecendo suas informações básicas.\n    *   Como um usuário, desejo editar as informações de produtores rurais existentes.\n    *   Como um usuário, desejo excluir produtores rurais do sistema.\n\n*   **Validação de Documentos:**\n    *   Como um usuário, desejo que o sistema valide automaticamente o formato do CPF ou CNPJ fornecido durante o cadastro do produtor rural.\n\n*   **Validação de Áreas da Fazenda:**\n    *   Como um usuário, desejo que o sistema garanta que a soma da área agricultável e da área de vegetação de uma fazenda não exceda a área total da fazenda.\n\n*   **Registro de Culturas por Fazenda:**\n    *   Como um usuário, desejo registrar múltiplas culturas plantadas para cada fazenda de um produtor.\n\n*   **Associação Produtor-Propriedade:**\n    *   Como um produtor rural, posso estar associado a zero, uma ou várias propriedades rurais.\n\n*   **Registro de Culturas por Safra:**\n    *   Como uma propriedade rural, posso ter zero, uma ou várias culturas plantadas por safra.\n\n*   **Dashboard Analítico:**\n    *   Como um usuário, desejo visualizar um dashboard que exiba o total de fazendas cadastradas.\n    *   Como um usuário, desejo visualizar um dashboard que exiba o total de hectares registrados (área total de todas as fazendas).\n    *   Como um usuário, desejo visualizar gráficos de pizza que mostrem a distribuição de fazendas por estado.\n    *   Como um usuário, desejo visualizar gráficos de pizza que mostrem a distribuição de culturas plantadas.\n    *   Como um usuário, desejo visualizar gráficos de pizza que mostrem a distribuição do uso do solo (área agricultável vs. área de vegetação).\n\n## Documentação da API (Swagger)\n\nA documentação completa da API está disponível através do Swagger UI. Após iniciar a aplicação localmente, você pode acessá-la em:\n\n`http://localhost:3003/docs`\n\nEsta documentação interativa permite explorar todos os endpoints disponíveis, seus parâmetros de requisição e exemplos de resposta.\n\n## Autenticação da API: Basic Auth\n\nTodas as rotas desta API são protegidas por autenticação Basic Auth. Isso significa que para acessar qualquer endpoint, você precisará fornecer um nome de usuário e uma senha válidos na requisição HTTP.\n\n### Como Autenticar\n\nPara realizar requisições autenticadas, inclua o cabeçalho `Authorization` com o tipo `Basic` seguido de uma string codificada em Base64 no formato `username:password`.\n\n## Próximos Passos: Usuários e Autenticação JWT\n\nPara garantir a segurança e o controle de acesso à API, os próximos passos incluem a implementação de um sistema de usuários e autenticação baseado em JSON Web Tokens (JWT).\n\n*   **Módulo de Usuários:**\n    *   Criar um novo módulo para gerenciar usuários, incluindo cadastro (com hash de senhas), login e gerenciamento de perfis.\n    *   Definir um esquema de banco de dados para armazenar informações de usuário (e-mail, senha, etc.).\n\n*   **Autenticação JWT:**\n    *   Implementar estratégias de autenticação JWT para proteger as rotas da API.\n    *   Gerar tokens JWT no login do usuário e validá-los em requisições subsequentes.\n    *   Utilizar `Guards` e `Decorators` do NestJS para proteger endpoints específicos, garantindo que apenas usuários autenticados e autorizados possam acessá-los.\n    *   Considerar a implementação de refresh tokens para melhorar a experiência do usuário e a segurança.\n\n*   **Autorização:**\n    *   Adicionar um sistema de roles (papéis) ou permissões para controlar o acesso a funcionalidades específicas com base no tipo de usuário (ex: administrador, produtor).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluskas8%2Fagro-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluskas8%2Fagro-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluskas8%2Fagro-hub/lists"}