{"id":27142412,"url":"https://github.com/jorgelright34/groceries-planner","last_synced_at":"2026-04-05T21:32:11.872Z","repository":{"id":278491763,"uuid":"935152390","full_name":"JorgelRight34/groceries-planner","owner":"JorgelRight34","description":"Plan your groceries, app built with Angular (frontend) and .NET (backend) with SQL Server as database. Create a grocery list for each day of the week, grouped by category , each grocery can have its own photo, url, description, costs and more. Have a receipt list for the entire weekly plan. Collaborate with others to plan together.","archived":false,"fork":false,"pushed_at":"2025-04-06T17:58:31.000Z","size":18745,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T18:35:53.092Z","etag":null,"topics":["angular","bootstrap","csharp","net","sqlserver","typescript"],"latest_commit_sha":null,"homepage":"https://jorgelorenzom.vercel.app/project/groceries-planner","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/JorgelRight34.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":"2025-02-19T01:44:20.000Z","updated_at":"2025-04-06T17:58:36.000Z","dependencies_parsed_at":"2025-02-20T04:25:53.895Z","dependency_job_id":"2285b713-3d0a-49d9-90f3-da68302220a2","html_url":"https://github.com/JorgelRight34/groceries-planner","commit_stats":null,"previous_names":["jorgelright34/groceries-planner"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorgelRight34%2Fgroceries-planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorgelRight34%2Fgroceries-planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorgelRight34%2Fgroceries-planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JorgelRight34%2Fgroceries-planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JorgelRight34","download_url":"https://codeload.github.com/JorgelRight34/groceries-planner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247801179,"owners_count":20998331,"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":["angular","bootstrap","csharp","net","sqlserver","typescript"],"created_at":"2025-04-08T07:46:32.926Z","updated_at":"2026-04-05T21:32:11.805Z","avatar_url":"https://github.com/JorgelRight34.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"##### Authentication\n\n![hero](https://jorgelorenzom.vercel.app/projects/grocery-planner/hero.jpg)\n\n- Secure authentication implementation with **Google OAuth 2.0**, using token-based authorization flow to validate the user's identity without storing sensitive credentials in the backend.\n- User data such as email, name, and profile picture are extracted and processed in the **ASP.NET Core** backend, ensuring fast and secure access to the platform.\n- Integration with Google's identity service to verify email authenticity and enhance security through the use of **JWT (JSON Web Token)** and custom claims.\n- Integration of Identity for user and role management.\n\n##### Export to PDF\n\n![pdf](https://jorgelorenzom.vercel.app/projects/grocery-planner/pdf.jpg)\n\n- Dynamic generation of **PDF** documents for the shopping list, organized by days and categories, optimizing user experience.\n- Implementation of **OpenHTMLToPDF** for HTML-to-PDF conversion with custom styles and rendering optimization.\n- The backend, developed in **ASP.NET Core**, receives a request from the frontend to export the list to PDF. It uses a specialized service, `ViewRenderer`, which utilizes **ICompositeViewEngine** to render Razor HTML templates and generate structured content.\n- Use of **Razor Templates** to dynamically define the structure and styles of the PDF, ensuring compatibility and flexibility in design.\n\n##### Share List\n\n![lista compartida](https://jorgelorenzom.vercel.app/projects/grocery-planner/index.jpg)\n\n- Implementation of a **sharing feature with unique links**, generated with secure unique identifiers (UUID), allowing real-time collaboration.\n\n##### Add Groceries\n\n![añadir compras](https://jorgelorenzom.vercel.app/projects/grocery-planner/add-grocery.jpg)\n\n- Advanced grocery creation form, with real-time validation and user experience improvements using **ReactiveFormsModule** from Angular.\n- Ability to add custom products with name, description, image, link, and category, ensuring flexibility in managing the shopping list.\n  ![editar compras](https://jorgelorenzom.vercel.app/projects/grocery-planner/edit-grocery.jpg)\n- Editing and deleting products with visual confirmations, ensuring better user interaction.\n  ![compras](https://jorgelorenzom.vercel.app/projects/grocery-planner/groceries.jpg)\n- Optimized data persistence with **Entity Framework Core** in the backend, ensuring secure and efficient transactions.\n\n##### Lists for Every Occasion\n\n![listas](https://jorgelorenzom.vercel.app/projects/grocery-planner/grocery-lists.jpg)\n\n- Creation and management of multiple categorized shopping lists for different events or needs.\n  ![añadir-lista](https://jorgelorenzom.vercel.app/projects/grocery-planner/add-new-grocery-list.jpg)\n  ![editar-lista](https://jorgelorenzom.vercel.app/projects/grocery-planner/edit-grocery-list.jpg)\n\n##### Receipt\n\n![recibo](https://jorgelorenzom.vercel.app/projects/grocery-planner/receipt.jpg)\n\n- Automatic generation of a detailed receipt with breakdown of costs for each product and total amount.\n- Advanced currency formatting and number presentation using Angular's currency pipe from CommonModule on the frontend to enhance clarity of the information.\n\nThis project is developed with an architecture based on **Angular 19 on the frontend and ASP.NET Core on the backend**, ensuring scalability, performance, and enterprise-level maintainability.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgelright34%2Fgroceries-planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjorgelright34%2Fgroceries-planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgelright34%2Fgroceries-planner/lists"}