{"id":29193738,"url":"https://github.com/welissonarley/planshare","last_synced_at":"2026-04-30T22:35:21.218Z","repository":{"id":302172352,"uuid":"916703522","full_name":"welissonArley/PlanShare","owner":"welissonArley","description":"API .NET 9 e aplicativo multiplataforma em .NET MAUI para gestão e compartilhamento de tarefas, com login via Google, comunicação em tempo real via WebSocket. Arquitetura DDD e SOLID.","archived":false,"fork":false,"pushed_at":"2025-11-02T14:41:46.000Z","size":5756,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-30T22:34:41.092Z","etag":null,"topics":["android","csharp","ddd","entity-framework","figma","fluentmigration","fluentvalidation","google","ios","maui","mysql","netmaui","rest-api","signalr","solid","swagger","ui-design","ux-design","websocket"],"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/welissonArley.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-14T15:58:58.000Z","updated_at":"2026-04-17T14:20:07.000Z","dependencies_parsed_at":"2025-07-26T18:26:04.025Z","dependency_job_id":"0416d1bd-5e88-4359-a66c-d147f95d090b","html_url":"https://github.com/welissonArley/PlanShare","commit_stats":null,"previous_names":["welissonarley/planshare"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/welissonArley/PlanShare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welissonArley%2FPlanShare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welissonArley%2FPlanShare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welissonArley%2FPlanShare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welissonArley%2FPlanShare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/welissonArley","download_url":"https://codeload.github.com/welissonArley/PlanShare/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/welissonArley%2FPlanShare/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32479448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["android","csharp","ddd","entity-framework","figma","fluentmigration","fluentvalidation","google","ios","maui","mysql","netmaui","rest-api","signalr","solid","swagger","ui-design","ux-design","websocket"],"created_at":"2025-07-02T03:07:06.259Z","updated_at":"2026-04-30T22:35:16.210Z","avatar_url":"https://github.com/welissonArley.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Sobre o projeto\n\nEste projeto é uma solução completa para o gerenciamento de tarefas, composta por uma **API** desenvolvida em **.NET 9** o qual adota os princípios do **Domain-Driven Design (DDD)** e um aplicativo multiplataforma em **.NET MAUI**. O objetivo é oferecer uma ferramenta moderna, segura e colaborativa para criar, gerenciar e compartilhar tarefas de forma eficiente.\n\nA arquitetura da **API** baseia-se em **REST**, utilizando métodos **HTTP** padrão para uma comunicação eficiente e simplificada, com os dados sendo armazenados de forma segura em um banco de dados **MySQL**. Além disso, é complementada por uma documentação **Swagger**, que proporciona uma interface gráfica interativa para que os desenvolvedores possam explorar e testar os endpoints de maneira fácil\n\nO aplicativo foi desenvolvido com **.NET MAUI**, garantindo suporte a múltiplos dispositivos e sistemas operacionais, como Android, iOS, Windows e macOS. Isso proporciona uma experiência consistente e integrada, permitindo que os usuários acessem e gerenciem suas tarefas de qualquer lugar e a qualquer momento.\n\nDentre os pacotes NuGet utilizados na API, o **AutoMapper** desempenha um papel essencial ao simplificar o mapeamento entre objetos de domínio e objetos de requisição/resposta. Essa funcionalidade reduz drasticamente a necessidade de escrever código manual e repetitivo, promovendo maior produtividade e clareza no desenvolvimento. O **FluentValidation** também se destaca, permitindo a implementação de regras de validação de maneira simples, intuitiva e diretamente nas classes de requisição. Essa abordagem mantém o código mais limpo, organizado e facilita a manutenção, além de assegurar a consistência das validações em todo o projeto. O **EntityFramework** atua como o **ORM (Object-Relational Mapper)** principal, possibilitando interações eficientes com o banco de dados por meio de objetos .NET, eliminando a necessidade de lidar diretamente com consultas SQL e tornando o gerenciamento de dados mais intuitivo. Para o versionamento do banco de dados, o projeto utiliza o **FluentMigrator**, que oferece uma maneira estruturada de criar, alterar e gerenciar migrações de forma confiável e automatizada.\n\nNo aplicativo desenvolvido em **.NET MAUI**, a escolha dos pacotes NuGet foi direcionada para melhorar a experiência do usuário e otimizar o desenvolvimento. O **CommunityToolkit.Maui** foi incluído para estender as capacidades do framework, oferecendo controles adicionais e ferramentas que tornam a construção de interfaces mais dinâmica e responsiva. Para comunicação com a API, o **Refit** foi escolhido, permitindo a definição de interfaces fortemente tipadas que geram automaticamente as chamadas HTTP, simplificando a interação com os endpoints da API. Além disso, o **Newtonsoft.Json** é utilizado para desserializar dados no formato JSON, o que facilita o processamento de informações entre o aplicativo e a API.\n\nA integração em tempo real, um dos diferenciais do aplicativo, é garantida pelo uso do **SignalR Client**, que permite uma comunicação bidirecional eficiente entre o aplicativo e o servidor ao adicionar ou colaboradores.\n\n![hero-image]\n\n### Features\n\n- **Domain-Driven Design (DDD)**: Estrutura modular que facilita o entendimento e a manutenção do domínio da aplicação.\n- **Criação e Gerenciamento de Tarefas**: Criação de tarefas com campos personalizados como título, descrição, prazo e anexo de arquivos. Edição e exclusão de tarefas diretamente no aplicativo.\n- **Compartilhamento de Tarefas**: Convidar pessoas para colaborar em tarefas.\n- **Login com Google**: Autenticação rápida e segura por meio de Google. Experiência simplificada para novos usuários sem a necessidade de criar uma conta do zero e velocidade para o Login.\n- **Integração com Azure**: Para armazenamento seguro e escalável de arquivos e para a implementação de filas de mensagens no Azure, possibilitando a comunicação assíncrona e o processamento de tarefas em segundo plano.\n\n### Construído com\n\n![badge-dot-net] ![badge-dot-net-maui] ![badge-swagger] ![badge-windows] ![badge-mac] ![badge-android] ![badge-ios] ![badge-visual-studio] ![badge-rider] ![badge-xcode] ![badge-mysql] ![badge-figma]\n\n\n## Requisitos\n\n* Visual Studio versão 2022+ ou Rider.\n* Windows 10+ ou MacOS com [.NET SDK][dot-net-sdk] e [workload .NET MAUI][maui-workload] instalados.\n* MySql Server.\n* Dispositivo Android (para iOS vamos usar emulador visto que é pago para usar um iPhone físico)\n\n\n\u003c!-- Links --\u003e\n[dot-net-sdk]: https://dotnet.microsoft.com/en-us/download/dotnet/9.0\n[maui-workload]: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-workload-install\n\n\u003c!-- Images --\u003e\n[hero-image]: images/heroimage.png\n\n\u003c!-- Badges --\u003e\n[badge-dot-net]: https://img.shields.io/badge/.NET%209.0-512BD4?logo=dotnet\u0026logoColor=fff\u0026style=for-the-badge\n[badge-dot-net-maui]: https://img.shields.io/badge/.NET%20MAUI-512BD4?logo=dotnet\u0026logoColor=fff\u0026style=for-the-badge\n\n[badge-windows]: https://img.shields.io/badge/Windows-0078D4?logo=windows\u0026logoColor=fff\u0026style=for-the-badge\n[badge-mac]: https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\u0026logo=apple\u0026logoColor=white\n\n[badge-android]: https://img.shields.io/badge/Android-3DDC84?style=for-the-badge\u0026logo=android\u0026logoColor=white\n[badge-ios]: https://img.shields.io/badge/iOS-000000?style=for-the-badge\u0026logo=ios\u0026logoColor=white\n\n[badge-visual-studio]: https://img.shields.io/badge/Visual%20Studio-5C2D91?logo=visualstudio\u0026logoColor=fff\u0026style=for-the-badge\n[badge-xcode]: https://img.shields.io/badge/Xcode-007ACC?style=for-the-badge\u0026logo=Xcode\u0026logoColor=white\n\n[badge-mysql]: https://img.shields.io/badge/MySQL-4479A1?logo=mysql\u0026logoColor=fff\u0026style=for-the-badge\n[badge-swagger]: https://img.shields.io/badge/Swagger-85EA2D?logo=swagger\u0026logoColor=000\u0026style=for-the-badge\n[badge-rider]: https://img.shields.io/badge/Rider-000000?style=for-the-badge\u0026logo=Rider\u0026logoColor=white\n\n[badge-figma]: https://img.shields.io/badge/Figma-F24E1E?style=for-the-badge\u0026logo=figma\u0026logoColor=white","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwelissonarley%2Fplanshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwelissonarley%2Fplanshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwelissonarley%2Fplanshare/lists"}