{"id":21343594,"url":"https://github.com/fauxtix/daisypets","last_synced_at":"2025-07-12T15:31:26.589Z","repository":{"id":178636243,"uuid":"649095678","full_name":"fauxtix/DaisyPets","owner":"fauxtix","description":"Application for managing the day to day life of your pets. Three solutions available: Desktop (DaisyPets.UI/Windows Forms), Web (DaistPets.Web.Blazor) and Mobile (MauiPetsApp)","archived":false,"fork":false,"pushed_at":"2024-10-25T12:14:55.000Z","size":203254,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-25T12:20:50.609Z","etag":null,"topics":["api-rest","blazor","c-sharp","clean-architecture","dapper","maui","sql-server","sqlite-database","syncfusion","windows-forms"],"latest_commit_sha":null,"homepage":"","language":"C#","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/fauxtix.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}},"created_at":"2023-06-03T19:03:22.000Z","updated_at":"2024-10-25T12:14:59.000Z","dependencies_parsed_at":"2023-10-27T14:42:12.295Z","dependency_job_id":"9cd35016-f8e8-40ca-aae7-71ef4eb2d918","html_url":"https://github.com/fauxtix/DaisyPets","commit_stats":null,"previous_names":["fauxtix/daisypets"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fauxtix%2FDaisyPets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fauxtix%2FDaisyPets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fauxtix%2FDaisyPets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fauxtix%2FDaisyPets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fauxtix","download_url":"https://codeload.github.com/fauxtix/DaisyPets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225824685,"owners_count":17529906,"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":["api-rest","blazor","c-sharp","clean-architecture","dapper","maui","sql-server","sqlite-database","syncfusion","windows-forms"],"created_at":"2024-11-22T01:13:54.821Z","updated_at":"2024-11-22T01:13:55.463Z","avatar_url":"https://github.com/fauxtix.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Daisy Pets 🐶🐱\n\nA project for helping busy pet owners keep track of the daily, and long-term routine care of their pets.\n\nIt uses C# as the development language, and was built using the .Net 7 platform.\nIt comprises a web api that serves a desktop application (windows forms) and a web project (Blazor Server).\n\nIt is up to the user to choose between the desktop (DaisyPets.UI), the web/blazor application (DaisyPets.Web.Blazor) or mobile app (DaisyPets.MauiPets).\nJust start/run the Api first, and choose wich of the projects to use ('set as the startup project').\n\nDue to its simplicity, the SQLite database was chosen for data storage ([Structure])(https://github.com/fauxtix/DaisyPets/blob/master/MauiPetsApp/MauiPets/PetsDB.db.sql). \n\nThe ORM chosen to work with the database was Dapper, due to its ease of use and speed, especially in queries.\n\nThe front-end screenshots presented in this Read.me file are in Portuguese, but I plan to include English, French and Spanish versions for the three projects.\n\nThe web version (Blazor) already includes the four languages.\n\nIt provides mostly CRUD (Create, Read, Update, Delete) operations for Pets and other entities related to them.\n\nFor the Blazor project, the syncfusion packages (community edition) were chosen.\n\n# Key Features\n\n- Easy to use\n- Simple to upload documents related to the pet (medical records, for instance) and others that may apply;\n\n- Record vaccinations, visits to the vet, dewormers, feed dosage and documents (examination reports, blood and urine tests, and others that may apply);\n- Alerts for vaccines and application of dewormers, that may be occurring within 15 or 30 days.\n  \n- Expenses management (with selection of categories and sub-categories);\n- Blog entries (web project) - user entries / from url's;\n- Todo lists (web project);\n- Photo gallery (desktop project, for now);\n- Contacts management;\n- Scheduler/agenda (web project).\n\n# Screenshots (Windows forms)\nFor the web project screenshots, please navigate to the DaisyPets.Web.Blazor project.\n\nFor the Maui project screenshots, navigate to 'MauiPetsApp'.\n\n![main](https://github.com/fauxtix/DaisyPets/assets/49880538/54768f18-9e6d-44f3-8a27-c4cffb7bbae7)\n![Pets](https://github.com/fauxtix/DaisyPets/assets/49880538/e9d904d9-1a33-415f-b12e-0833f17e8b85)\n![PetDocuments](https://github.com/fauxtix/DaisyPets/assets/49880538/a6eebe33-7f55-4a86-a708-3152a895f176)\n![PetVaccines](https://github.com/fauxtix/DaisyPets/assets/49880538/0e52e4e5-7350-45a8-99a5-c960c5be90ae)\n![PetAppointments](https://github.com/fauxtix/DaisyPets/assets/49880538/db77a23e-38cf-4e8f-9b35-abb008ef07f8)\n![PetFood](https://github.com/fauxtix/DaisyPets/assets/49880538/0575bf89-6340-4ecf-a3ab-f8de6d8733dc)\n![PetDewormers](https://github.com/fauxtix/DaisyPets/assets/49880538/1db1de46-f160-41db-816f-7795523d399b)\n![PetExpenses_Main](https://github.com/fauxtix/DaisyPets/assets/49880538/c15af416-de2c-40b2-8358-09a075e03a87)\n![PetExpenses_Editing](https://github.com/fauxtix/DaisyPets/assets/49880538/d1eaabf7-1b45-46eb-8f3f-4b2dbd97061b)\n![PetContacts](https://github.com/fauxtix/DaisyPets/assets/49880538/76f184ce-4087-4dc7-b698-a2739a4271bb)\n![PetAlarms](https://github.com/fauxtix/DaisyPets/assets/49880538/2e098b56-ad77-4941-b293-b9eb2fa0106f)\n![PetPhotoGallery](https://github.com/fauxtix/DaisyPets/assets/49880538/ebe49d35-2e82-4218-a629-c13d2507ac4f)\n![PetLookupTables](https://github.com/fauxtix/DaisyPets/assets/49880538/b583900e-9230-478f-bf26-593cf3064a04)\n![PetExpenseTypes](https://github.com/fauxtix/DaisyPets/assets/49880538/fa820aa0-ae98-484e-896c-5f4eda2b2ce3)\n\nFor the database structure and current data usage, please have a look to the .sql file in the webapi project\n\n## Requirements\n\nBefore running the Daisy Pets project, ensure that you have the following dependencies installed:\n\n- .NET 7 SDK: https://dotnet.microsoft.com/download/dotnet/7.0\n\n## 🥏 Getting Started\n\nTo download and run the Daisy Pets project, follow these steps:\n\n1. Clone the repository to your local machine:\n\n   ```bash\n   git clone https://github.com/fauxtix/DaisyPets.git\n   ```\n\n2. Navigate to the project directory:\n\n   ```bash\n   cd DaisyPets\n   ```\n\n3. Build the project:\n\n   ```bash\n   dotnet build\n   ```\n\n4. Apply the database migrations to create the SQLite database (if you want to use Entity Framework):\n\n   ```bash\n   dotnet ef database update --project DaisyPets\n   ```\n\n5. Run the API:\n\n   ```bash\n   dotnet run --project DaisyPets.WebApi\n   ```\n\nThe API should now be running locally on `http://localhost:[PORT]`.\n\n## 🧩 API Endpoints\n\nThe DaisyPets API provides the following endpoints:\n\nAppointment \n\n- POST /api/Appointment\n- PUT /api/Appointment/{Id}\n- DELETE /api/Appointment/{Id}\n- GET /api/Appointment/{Id}\n- GET /api/Appointment/AllAppointmentsVM\n- POST /api/Appointment/ValidateAppointment\n\nAppUtils\n\n- GET /api/AppUtils/BackupSqlite\n- GET /api/AppUtils/Settings/Language\n- POST /api/AppUtils/Settings/Language\n  \nCarousel (Photo gallery)\n- POST /api/Carousel\n- PUT /api/Carousel/{Id}\n- DELETE /api/Carousel/{Id}\n- GET /api/Carousel/{Id}\n- GET /api/Carousel/AllPhotosVM\n- GET /api/Carousel/PhotoVMById/{Id}\n- POST /api/Carousel/ValidatePhoto\n\nConsulta (Veterinary encounters)\n- POST /api/Consulta\n- PUT /api/Consulta/{Id}\n- DELETE /api/Consulta/{Id}\n- GET /api/Consulta/{Id}\n- GET /api/Consulta/AllConsultaVM\n- GET /api/Consulta/ApptVMById/{Id}\n- GET /api/Consulta/PetAppointments/{Id}\n- POST /api/Consulta/ValidateAppointment\n\nContacts\n- POST /api/Contacts\n- PUT /api/Contacts/{Id}\n- DELETE /api/Contacts/{Id}\n- GET /api/Contacts/{Id}\n- GET /api/Contacts/AllContactsVM\n- GET /api/Contacts/ContactVMById/{Id}\n- POST /api/Contacts/ValidateContacts\n\nDesparasitante (Dewormer)\n- POST /api/Desparasitante\n- PUT /api/Desparasitante/{Id}\n- DELETE /api/Desparasitante/{Id}\n- GET /api/Desparasitante/{Id}\n- GET /api/Desparasitante/AllWormersVM\n- GET /api/Desparasitante/desparasitanteVMById/{Id}\n- GET /api/Desparasitante/PetDewormers/{Id}\n- POST /api/Desparasitante/ValidateDesparasitantes\n- GET /api/Desparasitante/Desparasitante_Info_Pdf\n\nDespesa (Expense)\n- POST /api/Despesa\n- PUT /api/Despesa/{Id}\n- DELETE /api/Despesa/{Id}\n- GET /api/Despesa/{Id}\n- GET /api/Despesa/VMExpenseByIdAsync/{Id}\n- GET /api/Despesa/AllAsync\n- GET /api/Despesa/AllVMAsync\n- GET /api/Despesa/TipoDespesa_ByCategoriaDespesa/{Id}\n- GET /api/Despesa/TipoDespesas\n- GET /api/Despesa/DescricaoCategoriaDespesa/{Id}\n- POST /api/Despesa/ValidateExpense\n\nDocument\n- POST /api/Document\n- PUT /api/Document/{Id}\n- DELETE /api/Document/{Id}\n- GET /api/Document/{Id}\n- GET /api/Document/AllDocumentsVM/{Id}\n- POST /api/Document/ValidateDocument\n\nLookupTables\n- GET /api/LookupTables/GetAllRecords/{tableName}\n- GET /api/LookupTables/GetDescriptionByIdAndTable/{id}/{tableName}\n- GET /api/LookupTables/GetPKByDescriptionAndTable/{description}/{tableName}\n- GET /api/LookupTables/{id}/{tableName}\n- DELETE /api/LookupTables/{id}/{tableName}\n- GET /api/LookupTables/CheckRecordExist/{description}/{tableName}\n- POST /api/LookupTables\n- PUT /api/LookupTables/{id}\n- GET /api/LookupTables/CheckFkInUse/{idFK}/{fieldToCheck}/{tableToCheck}\n- GET /api/LookupTables/GetLastInsertedId/{tableToCheck}\n- GET /api/LookupTables/GetFirstId/{tableName}\n\nMailMerge\n- POST /api/MailMerge/MailMergeDocument\n- GET /api/MailMerge/DatabaseStructure\n\nPets\n- POST /api/Pets\n- PUT /api/Pets/{Id}\n- DELETE /api/Pets/{Id}\n- GET /api/Pets/{Id}\n- GET /api/Pets/AllPetsVM\n- GET /api/Pets/PetVMById/{Id}\n- GET /api/Pets/Pesos\n- GET /api/Pets/Idade/{tamanho}/{meses}\n- POST /api/Pets/ValidatePets\n\nRacao (Dog/Cat food)\n- POST /api/Racao\n- PUT /api/Racao/{Id}\n- DELETE /api/Racao/{Id}\n- GET /api/Racao/{Id}\n- GET /api/Racao/AllRacoesVM\n- GET /api/Racao/RacaoVMById/{Id}\n- GET /api/Racao/PetFeeds/{Id}\n- POST /api/Racao/ValidateRacao\n- GET /api/Racao/DogFood_Info_Pdf\n\nServerPdf\n- GET /api/ServerPdf/Download/{folder}/{filename}\n- GET /api/ServerPdf/GetServerPdfName/{folder}/{filename}\n\nTipoDespesas (Type of expenses)\n- POST /api/TipoDespesas\n- PUT /api/TipoDespesas/{id}\n- DELETE /api/TipoDespesas/{id}\n- GET /api/TipoDespesas/AllTipoDespesas\n- GET /api/TipoDespesas/AllTipoDespesasVM\n- GET /api/TipoDespesas/TipoDespesaById/{id}\n- GET /api/TipoDespesas/TipoDespesaByIdVM/{Id}\n- POST /api/TipoDespesas/ValidateExpenseType\n\nVacinacao (Vaccines)\n- POST /api/Vacinacao\n- PUT /api/Vacinacao/{Id}\n- DELETE /api/Vacinacao/{Id}\n- GET /api/Vacinacao/{Id}\n- GET /api/Vacinacao/AllVacinasVM\n- GET /api/Vacinacao/VacinaVMById/{Id}\n- GET /api/Vacinacao/PetVaccines/{Id}\n- POST /api/Vacinacao/ValidateVaccine\n- GET /api/Vacinacao/Vaccines_Info_Pdf\n\nToDos (To-do lists)\n- POST /api/ToDos\n- GET /api/ToDos\n- PUT /api/ToDos/{Id}\n- DELETE /api/ToDos/{Id}\n- GET /api/ToDos/{Id}\n- GET /api/ToDos/PendingTodos\n- GET /api/ToDos/CompletedTodos\n- POST /api/ToDos/ValidateToDo\n#\n\n## 🐶 Example Usage\n\nTo create a new pet, you can use a tool like cURL or a REST client of your choice:\n\n```bash\ncurl -X POST -H \"Content-Type: application/json\" -d '{\n  \"idEspecie\": 1, \n  \"idRaca\": 11,\n  \"idTamanho\": 2,\n  \"dataNascimento\": \"01/01/2020\",\n  \"idSituacao\": 1,\n  \"nome\": \"Shiva\",\n  \"foto\": \"C:\\\\Users\\\\User\\\\OneDrive\\\\Imagens\\\\dogs\\\\Shiva.jpg\",\n  \"cor\": \"Preto e castanho\",\n  \"genero\": \"F\",\n  \"idPeso\": 20,\n  \"idTemperamento\": 2,\n  \"medicacao\": \"Aluporinol (dosagem a completar)\",\n  \"chipado\": 1,\n  \"chip\": \"\",\n  \"dataChip\": \"28/06/2023\",\n  \"numeroChip\": \"112354559998493\",\n  \"esterilizado\": 1,\n  \"padrinho\": 0,\n  \"doencaCronica\": \"Leishmaniose\",\n  \"observacoes\": \"Linda\"\n}\n' http://localhost:5000/api/pets\n```\n\nThis will create a new pet named \"Shiva\".\n\n## 🌟 Contributing\n\nContributions to the Daisy Pets project are welcome! If you encounter any issues or have suggestions for improvement, please open an issue on the GitHub repository: https://github.com/fauxtix/DaisyPets/issues\n\nFork the project (https://github.com/fauxtix/DaisyPets/fork)\n\nCreate a branch for your modification (git checkout -b fauxtix/DaisyPets)\n\nCommit (git commit -am 'Add some fooBar')\n\nPush_ (git push origin fauxtix/DaisyPets)\n\nCreate a new Pull Request\n\nWhen contributing code, please follow the existing code style and submit a pull request with your changes.\n\n## ⚖ License\n\nThe DaisyPets project is licensed under the MIT License. You can find more information in the [LICENSE](https://github.com/fauxtix/daisypets/blob/main/LICENSE) file.\n\n## 📞 Contact\n\nIf you have any questions or need further assistance, you can reach out to the project maintainer:\n\n- 👨‍💻 Maintainer: Fausto Luís\n- ✉ Email: fauxtix.luix@hotmail.com\n\nFeel free to contact me with any feedback or inquiries.\n\nThank you for using Daisy Pets!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffauxtix%2Fdaisypets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffauxtix%2Fdaisypets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffauxtix%2Fdaisypets/lists"}