{"id":30936116,"url":"https://github.com/ahmedghaly15/shoppe","last_synced_at":"2026-02-14T12:36:58.540Z","repository":{"id":314788798,"uuid":"1056303331","full_name":"ahmedghaly15/Shoppe","owner":"ahmedghaly15","description":"An e-commerce app crafted to deliver a seamless experience for users and admins.","archived":false,"fork":false,"pushed_at":"2025-10-02T19:48:19.000Z","size":21007,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-08T14:21:05.971Z","etag":null,"topics":["clean-architecture","clean-code","dart","ecommerce-application","firebase-app-distribution","flutter","github-actions","mobile-app-development","riverpod"],"latest_commit_sha":null,"homepage":"","language":"Dart","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/ahmedghaly15.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-13T19:59:28.000Z","updated_at":"2025-10-02T19:48:23.000Z","dependencies_parsed_at":"2025-09-14T20:43:47.225Z","dependency_job_id":"8e38859b-a50e-47fb-a98a-c34e9bb238b9","html_url":"https://github.com/ahmedghaly15/Shoppe","commit_stats":null,"previous_names":["ahmedghaly15/shoppe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ahmedghaly15/Shoppe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedghaly15%2FShoppe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedghaly15%2FShoppe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedghaly15%2FShoppe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedghaly15%2FShoppe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahmedghaly15","download_url":"https://codeload.github.com/ahmedghaly15/Shoppe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedghaly15%2FShoppe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29443491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T10:51:12.367Z","status":"ssl_error","status_checked_at":"2026-02-14T10:50:52.088Z","response_time":53,"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":["clean-architecture","clean-code","dart","ecommerce-application","firebase-app-distribution","flutter","github-actions","mobile-app-development","riverpod"],"created_at":"2025-09-10T16:31:07.989Z","updated_at":"2026-02-14T12:36:58.535Z","avatar_url":"https://github.com/ahmedghaly15.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛍️ Shoppe\n\n**Shoppe** is a Flutter demo app built to explore and experiment with the latest **Riverpod 3.0** features — including **`Notifier`**, **`NotifierProvider`**, and **offline persistence**.  \nIt demonstrates how to apply the newest Riverpod architecture patterns to a real-world e-commerce layout.\n\n---\n\n## 🚀 Overview\n\nShoppe is a modular Flutter application that showcases the structure of a modern app powered by **Riverpod 3.0**.  \nThe app simulates an online shopping experience and focuses on exploring state management using the newest Riverpod APIs and migration concepts.\n\n---\n\n## 🧠 Purpose\n\nThe goal of this project is to:\n- Understand the **new unified provider system** in Riverpod 3.0  \n- Replace legacy providers like `StateNotifierProvider` and `ChangeNotifierProvider` with the new **`Notifier`/`AsyncNotifier`** APIs  \n- Experiment with **offline state persistence** in Riverpod  \n- Test lifecycle improvements like **pausing providers**, **delayed disposal**, and **Ref.mounted checks**  \n- Build a **scalable and modular architecture** suitable for production apps\n\n---\n\n## 🧩 Features\n\n| Module | Description |\n|---------|--------------|\n| 🛒 `cart` | Manage user cart items using Riverpod `NotifierProvider`. |\n| 🎟️ `coupons` | Apply and validate discount coupons. |\n| 🔐 `login` / `register` / `reset_pass` / `forgot_password` / `otp` | Authentication flow built with modern provider patterns. |\n| 🏠 `home` / `layout` | Main layout and home screen navigation. |\n| 📦 `product_details` | Product view and detail management using async providers. |\n| 👤 `profile` | User profile data with offline persistence. |\n| 🧾 `orders` | Order list and tracking implementation. |\n| ⭐ `reviews` | Review and rating system. |\n| 🌅 `onboarding` / `start` | Clean onboarding and app start logic. |\n\n---\n\n## 🧰 Tech Stack\n\n- **Flutter** — latest stable version  \n- **Riverpod 3.0** — for state management   \n- **Dio / retrofit** — for networking  \n- **Freezed \u0026 JsonSerializable** — for immutable models and serialization  \n\n---\n\n## 🧪 Riverpod 3.0 Experiments in This App\n\n| Experiment | Description |\n|-------------|-------------|\n| 🧱 `Notifier` \u0026 `NotifierProvider` | Replaced legacy providers to use the new unified API. |\n| 💾 Offline persistence | Cached provider states and restored them on app restart. |\n| 🕓 Provider lifecycle | Tested pausing and delayed disposal behavior. |\n| 🧩 `@riverpod` code generation | Used `riverpod_generator` for cleaner provider syntax. |\n| 🧍 Ref safety | Implemented `ref.mounted` checks in async operations. |\n\n---\n\n## 📚 References\n\n- [Riverpod 3.0 Changelog](https://pub.dev/packages/riverpod/changelog)  \n- [Migration Guide (2.x → 3.0)](https://riverpod.dev/docs/3.0_migration)  \n- [Riverpod Generator Docs](https://pub.dev/packages/riverpod_generator)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedghaly15%2Fshoppe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmedghaly15%2Fshoppe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedghaly15%2Fshoppe/lists"}