An open API service indexing awesome lists of open source software.

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.

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)