×Full view
Back to Portfolio

// Flutter · Riverpod · Clean Architecture · Firebase

EBook E-Commerce Earning App

Full-featured Flutter ebook marketplace with browsing, purchasing, reading, and a coin-based reward system — built on Clean Architecture with Riverpod state management.

Platform: Flutter
State: Riverpod
Architecture: Clean Architecture

Overview

A complete ebook marketplace app where users can browse categories, preview books, purchase with in-app coins, and read directly in the app. A coin reward system incentivizes engagement — users earn coins by reading, reviewing, and referring friends. The codebase follows Clean Architecture strictly: Domain (entities, use cases), Data (repositories, Firebase sources), and Presentation (Riverpod providers, widgets).

Tech Stack

FlutterDartRiverpodClean ArchitectureFirebase AuthFirestoreFirebase Storage

Key Contributions

  • Implemented strict Clean Architecture — domain layer has zero Flutter/Firebase imports, making use cases fully unit-testable.
  • Riverpod StateNotifierProvider for cart, wishlist, reading progress, and coin balance — all independently reactive.
  • Built an in-app PDF/epub reader with reading progress persistence to Firestore.
  • Coin reward system with transaction ledger stored in Firestore with atomic batch writes to prevent race conditions.
  • Pagination with Firestore cursors for the book catalog — smooth infinite scroll with no visible loading jumps.

Screenshots

Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot

Results & Learnings

This is my most architecturally mature Flutter project. Clean Architecture made adding the coin system post-launch effortless — a new use case and repository method, zero changes to existing presentation code.