{"id":21420076,"url":"https://github.com/vitor-galache/ecomanage","last_synced_at":"2025-07-14T06:31:49.501Z","repository":{"id":253188978,"uuid":"842751732","full_name":"vitor-galache/EcoManage","owner":"vitor-galache","description":"Projeto de Implantação de um sistema de controle para uma fazenda urbana (PIM-UNIP)","archived":false,"fork":false,"pushed_at":"2024-11-22T17:08:25.000Z","size":1213,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-22T18:20:53.182Z","etag":null,"topics":["blazor","domain-driven-design","dotnet"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vitor-galache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-08-15T02:21:10.000Z","updated_at":"2024-11-22T17:08:29.000Z","dependencies_parsed_at":"2024-11-06T16:30:16.334Z","dependency_job_id":null,"html_url":"https://github.com/vitor-galache/EcoManage","commit_stats":null,"previous_names":["vitor-galache/ecomanage"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitor-galache%2FEcoManage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitor-galache%2FEcoManage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitor-galache%2FEcoManage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vitor-galache%2FEcoManage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vitor-galache","download_url":"https://codeload.github.com/vitor-galache/EcoManage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225958010,"owners_count":17551331,"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":["blazor","domain-driven-design","dotnet"],"created_at":"2024-11-22T20:11:16.474Z","updated_at":"2025-07-14T06:31:49.491Z","avatar_url":"https://github.com/vitor-galache.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EcoManage\n![Logo](https://github.com/user-attachments/assets/3d0442e7-5a17-441d-bbea-3adee8627213)\n\n\u003cb\u003eO EcoManage é um sistema integrado para controle de operações de uma fazenda urbana. \u003c/b\u003e\n\nO projeto foi desenvolvido com o objetivo de proporcionar uma solução completa para gestão de fornecedores, produtos,produção e relatórios. \n\nEste sistema foi concebido como parte de um Projeto Integrado Multidisciplinar para o curso de Análise e Desenvolvimento de Sistemas.\n\n## Principais Funcionalidades\n\n- Controle de Acesso de Funcionário: Implementado sistema de login para que apenas pessoas autorizadas acessem determinadas funcionalidades do sistema.\n  \n- Gestão de Fornecedores : Cadastro e controle de registros de fornecedores que possuem vinculo com a fazenda urbana.\n\n- Gestão de Produtos: Cadastro dos produtos que são produzidos dentro da fazenda urbana, incluindo edição de produtos e inativação caso necessário.\n\n- Gestão de Produção: Controle completo da produção agrícola da fazenda incluindo data de inicio, tipo de colheita, status de progresso da produção e quantidade do produto que será produzido.\n\n## Arquitetura e Implementação\n  ### Domínio (EcoManage.Domain)\n  O núcleo do projeto é composto por uma Class Library que encapsula toda a lógica de domínio e modelo de dados. \n  \n  Esta classlib serve como base para todos os outros projetos promovendo a reutilização de código e separação de   responsabilidades atráves de interfaces como os Handlers.\n\n- Modelos(Entidades): Contém todas entidades principais como Produto,Fornecedor e Produção.\n\n- Regras de Negócio: Implementa a lógica de negócio, validando e processando as regras de produção e fornecedores, como validar um CNPJ quando um objeto da classe Fornecedor for instanciado por exemplo.\n\n### Persistência de Dados (EcoManage.Persistence)\nO projeto EcoManage.Persistence foi criado para isolar a camada de acesso a dados, alinhado às boas práticas de organização de código e separação de responsabilidades. Ele serve como um ponto centralizado para gerenciar interações com o banco de dados, garantindo maior flexibilidade e manutenção.\n\n- O projeto tem referência ao domínio (EcoManage.Domain)\n- Segurança: Apenas o projeto de persistência gerencia a conexão direta com o banco de dados, minimizando o risco de acesso não autorizado ou não intencional a dados críticos.\n- ORM Entity Framework Core: Utilizado como ferramenta principal para mapear os dados entre as entidades do domínio e o banco de dados relacional, simplificando operações CRUD e garantindo robustez no acesso aos dados.\n  \n### API (EcoManage.API)\n\nA API foi desenvolvida utilizando ASP.NET Core (Minimal API), sendo ela responsável por expor os dados e serviços da aplicação. Ela possuí referencia ao projeto EcoManage.Domain e ao projeto EcoManage.Persistence para processar e fornecer os dados de forma padronizada.\n  \n- Arquitetura REST: A API segue princípios RESTful, garantindo fácil integração e consumo dos dados.\n\n- Validação dos Dados: A API garante que apenas dados que estiverem de acordo com as regras de negócio definidas pelo dominio sejam persistidos na base de dados.\n\n- Segurança: A API utiliza autenticação baseada em cookies através do AspNet Identity.\n\n- Apenas o projeto da API interage com a camada de persistência de dados, garantindo assim a segurança de todos dados de produção e de fornecedores.\n\n#### EndPoints\n\nA API expõe diversos endpoints para manipulação de dados relacionados a autenticação, controle de produtos,fornecedores e produção.\n\n**Detalhes dos Endpoints**\n\nPara ver a documentação completa da API com todos os detalhes e exemplos de uso, [clique aqui](https://github.com/vitor-galache/EcoManage/wiki/EcoManage.API).\n\n### Aplicação Web (EcoManage.Web)\n\nA camada de front-end foi implementada utilizando Blazor WebAssembly (WASM). A aplicação Blazor consome a API, sendo responsável pela interação do usuário com os dados.\n\nVale ressaltar que foi utilizada a biblioteca MudBlazor, que possui suporte a diversos componentes e customização que possibilitaram que a aplicação web ficasse atrativa e agradavel ao olhos. \n\nhttps://github.com/user-attachments/assets/95704589-4de2-44ff-a98c-061a457559b6\n\n### Aplicação Mobile (EcoManage.Mobile)\nSegue um vídeo do projeto mobile feito com .NET MAUI que consome a API\n\nhttps://github.com/user-attachments/assets/37306c29-46c4-4df0-85c7-6b4c8260bd5f\n\n### Aplicação Desktop (EcoManage.Desktop)\nSegue um vídeo do projeto mobile feito com Windows Forms que também consome a API\n\nhttps://github.com/user-attachments/assets/8585cbcc-ddfb-4311-bb30-8c3a2431fc5c\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitor-galache%2Fecomanage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvitor-galache%2Fecomanage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvitor-galache%2Fecomanage/lists"}