https://github.com/ahmedghaly15/shoppe
An e-commerce app crafted to deliver a seamless experience for users and admins.
https://github.com/ahmedghaly15/shoppe
clean-architecture clean-code dart ecommerce-application firebase-app-distribution flutter github-actions mobile-app-development riverpod
Last synced: 5 months ago
JSON representation
An e-commerce app crafted to deliver a seamless experience for users and admins.
- Host: GitHub
- URL: https://github.com/ahmedghaly15/shoppe
- Owner: ahmedghaly15
- Created: 2025-09-13T19:59:28.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-10-02T19:48:19.000Z (9 months ago)
- Last Synced: 2025-10-08T14:21:05.971Z (9 months ago)
- Topics: clean-architecture, clean-code, dart, ecommerce-application, firebase-app-distribution, flutter, github-actions, mobile-app-development, riverpod
- Language: Dart
- Homepage:
- Size: 20 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐๏ธ Shoppe
**Shoppe** is a Flutter demo app built to explore and experiment with the latest **Riverpod 3.0** features โ including **`Notifier`**, **`NotifierProvider`**, and **offline persistence**.
It demonstrates how to apply the newest Riverpod architecture patterns to a real-world e-commerce layout.
---
## ๐ Overview
Shoppe is a modular Flutter application that showcases the structure of a modern app powered by **Riverpod 3.0**.
The app simulates an online shopping experience and focuses on exploring state management using the newest Riverpod APIs and migration concepts.
---
## ๐ง Purpose
The goal of this project is to:
- Understand the **new unified provider system** in Riverpod 3.0
- Replace legacy providers like `StateNotifierProvider` and `ChangeNotifierProvider` with the new **`Notifier`/`AsyncNotifier`** APIs
- Experiment with **offline state persistence** in Riverpod
- Test lifecycle improvements like **pausing providers**, **delayed disposal**, and **Ref.mounted checks**
- Build a **scalable and modular architecture** suitable for production apps
---
## ๐งฉ Features
| Module | Description |
|---------|--------------|
| ๐ `cart` | Manage user cart items using Riverpod `NotifierProvider`. |
| ๐๏ธ `coupons` | Apply and validate discount coupons. |
| ๐ `login` / `register` / `reset_pass` / `forgot_password` / `otp` | Authentication flow built with modern provider patterns. |
| ๐ `home` / `layout` | Main layout and home screen navigation. |
| ๐ฆ `product_details` | Product view and detail management using async providers. |
| ๐ค `profile` | User profile data with offline persistence. |
| ๐งพ `orders` | Order list and tracking implementation. |
| โญ `reviews` | Review and rating system. |
| ๐
`onboarding` / `start` | Clean onboarding and app start logic. |
---
## ๐งฐ Tech Stack
- **Flutter** โ latest stable version
- **Riverpod 3.0** โ for state management
- **Dio / retrofit** โ for networking
- **Freezed & JsonSerializable** โ for immutable models and serialization
---
## ๐งช Riverpod 3.0 Experiments in This App
| Experiment | Description |
|-------------|-------------|
| ๐งฑ `Notifier` & `NotifierProvider` | Replaced legacy providers to use the new unified API. |
| ๐พ Offline persistence | Cached provider states and restored them on app restart. |
| ๐ Provider lifecycle | Tested pausing and delayed disposal behavior. |
| ๐งฉ `@riverpod` code generation | Used `riverpod_generator` for cleaner provider syntax. |
| ๐ง Ref safety | Implemented `ref.mounted` checks in async operations. |
---
## ๐ References
- [Riverpod 3.0 Changelog](https://pub.dev/packages/riverpod/changelog)
- [Migration Guide (2.x โ 3.0)](https://riverpod.dev/docs/3.0_migration)
- [Riverpod Generator Docs](https://pub.dev/packages/riverpod_generator)