{"id":50639077,"url":"https://github.com/farhansadikgalib/nextcart","last_synced_at":"2026-06-07T06:31:17.642Z","repository":{"id":357280835,"uuid":"1236180807","full_name":"farhansadikgalib/nextcart","owner":"farhansadikgalib","description":"A full-featured e-commerce shopping app built with Flutter, Firebase \u0026 Riverpod","archived":false,"fork":false,"pushed_at":"2026-05-12T04:46:28.000Z","size":29867,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-12T06:27:22.603Z","etag":null,"topics":["ecommerce","firebase","flutter-ecommerce","flutter-shopping-app","online-store","order-tracking","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/farhansadikgalib.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":"2026-05-12T02:45:50.000Z","updated_at":"2026-05-12T04:49:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/farhansadikgalib/nextcart","commit_stats":null,"previous_names":["farhansadikgalib/nextcart"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/farhansadikgalib/nextcart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/farhansadikgalib%2Fnextcart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/farhansadikgalib%2Fnextcart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/farhansadikgalib%2Fnextcart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/farhansadikgalib%2Fnextcart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/farhansadikgalib","download_url":"https://codeload.github.com/farhansadikgalib/nextcart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/farhansadikgalib%2Fnextcart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34011812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ecommerce","firebase","flutter-ecommerce","flutter-shopping-app","online-store","order-tracking","riverpod"],"created_at":"2026-06-07T06:31:15.773Z","updated_at":"2026-06-07T06:31:17.637Z","avatar_url":"https://github.com/farhansadikgalib.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# NextCart - Flutter E-Commerce App\n\n**A production-ready, full-featured e-commerce mobile application built with Flutter \u0026 Firebase**\n\n*Open-source Flutter shopping app with cart, wishlist, checkout, order tracking, push notifications \u0026 more*\n\n*Clean Architecture | Riverpod | Firestore | Material Design 3*\n\n[![Flutter](https://img.shields.io/badge/Flutter-3.x-02569B?style=flat-square\u0026logo=flutter\u0026logoColor=white)](https://flutter.dev)\n[![Dart](https://img.shields.io/badge/Dart-3.8+-0175C2?style=flat-square\u0026logo=dart\u0026logoColor=white)](https://dart.dev)\n[![Firebase](https://img.shields.io/badge/Firebase-Backend-FFCA28?style=flat-square\u0026logo=firebase\u0026logoColor=black)](https://firebase.google.com)\n[![Riverpod](https://img.shields.io/badge/Riverpod-State_Management-0553B1?style=flat-square\u0026logo=riverpod\u0026logoColor=white)](https://riverpod.dev)\n[![License](https://img.shields.io/badge/License-Private-red?style=flat-square)]()\n[![Platform](https://img.shields.io/badge/Platform-Android_|_iOS_|_Web-green?style=flat-square)]()\n\n[![Download APK](https://img.shields.io/badge/Download_APK-v1.0.0-brightgreen?style=for-the-badge\u0026logo=android\u0026logoColor=white)](assets/apk/nextcart-v1.0.0.apk)\n\n\u003c/div\u003e\n\n---\n\n## Overview\n\nNextCart is an open-source e-commerce app for Android, iOS, and Web. It provides a complete online shopping experience including product browsing, search, shopping cart, wishlist, checkout with cash on delivery, real-time order tracking, and push notifications. Built with clean architecture and powered by Firebase for authentication, database, and storage.\n\n---\n\n## Screenshots\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/splash.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eSplash\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/login.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eLogin\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/home.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eHome\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/category.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eCategories\u003c/b\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/cart.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eCart\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/wishlist.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eWishlist\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/checkout.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eCheckout\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/profile.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eProfile\u003c/b\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/order_list.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eOrders\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/order_details.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eOrder Details\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"assets/screenshots/notification.png\" width=\"200\"/\u003e\u003cbr/\u003e\u003cb\u003eNotifications\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n---\n\n## Tech Stack\n\n- **Flutter** (Dart 3.8+) -- cross-platform (Android, iOS, Web)\n- **Firebase** -- Auth, Firestore, Cloud Storage, Cloud Messaging\n- **Riverpod** -- state management (with code generation)\n- **GoRouter** -- declarative routing with auth guards (StatefulShellRoute)\n- **Freezed** -- immutable data models\n- **Dio** -- HTTP networking\n- **GNav** -- modern bottom navigation bar\n- **Local Notifications** -- push notifications for order status updates\n- **Material Design 3** -- green-themed UI with responsive layout (ScreenUtil)\n\n## Features\n\n- Google Sign-In \u0026 Firebase Authentication\n- Product catalog with category filtering\n- Full-text product search\n- Shopping cart (add, remove, update quantity)\n- Wishlist (save favorite products)\n- Checkout with delivery details \u0026 cash on delivery\n- Order history with real-time status tracking (pending, confirmed, shipped, delivered)\n- Push notifications on order status changes\n- In-app notification center with unread badge\n- User profile \u0026 delivery address management\n- Dark mode / light mode / system theme\n- Onboarding flow for new users\n- Responsive UI for Android, iOS \u0026 Web\n\n## Project Structure\n\n```\nlib/\n├── app/                # Router, routes, navigation shell\n├── core/               # DI providers, theme, storage, utils, shared widgets\n├── features/           # Feature modules (Clean Architecture)\n│   ├── auth/           #   Authentication\n│   ├── home/           #   Home screen\n│   ├── categories/     #   Product categories\n│   ├── products/       #   Product listings\n│   ├── product_detail/ #   Product detail view\n│   ├── cart/           #   Shopping cart\n│   ├── checkout/       #   Checkout process\n│   ├── orders/         #   Order management\n│   ├── notifications/  #   Push \u0026 in-app notifications\n│   ├── wishlist/       #   Wishlist\n│   ├── profile/        #   User profile\n│   └── search/         #   Product search\n└── shared/             # App-wide shared widgets\n```\n\nEach feature follows the **data / domain / presentation** layer split.\n\n## Getting Started\n\n### Prerequisites\n\n- Flutter SDK (stable channel)\n- Dart 3.8+\n- Android Studio / Xcode (for emulators)\n- A Firebase project (see [Firebase setup docs](https://firebase.google.com/docs/flutter/setup))\n\n### Setup\n\n```bash\n# Clone the repo\ngit clone \u003crepo-url\u003e\ncd nextcart\n\n# Install dependencies\nflutter pub get\n\n# Run code generation (Freezed, Riverpod, JSON serialization)\ndart run build_runner build --delete-conflicting-outputs\n\n# Run the app\nflutter run\n```\n\n### Useful Commands\n\n```bash\n# Watch mode for code generation (re-runs on file changes)\ndart run build_runner watch --delete-conflicting-outputs\n\n# Run linter\nflutter analyze\n\n# Run tests\nflutter test\n\n# Build release APK\nflutter build apk\n\n# Build for iOS\nflutter build ios\n\n# Build for web\nflutter build web\n```\n\n## Firebase Setup\n\nThe app uses the following Firebase services:\n\n| Service | Purpose |\n|---------|---------|\n| Firebase Auth | User authentication (email, Google Sign-In) |\n| Cloud Firestore | Product catalog, orders, cart, notifications, user data |\n| Cloud Storage | Product images and assets |\n| Cloud Messaging | Push notification permissions and token management |\n\nFirestore security rules allow public reads for products/categories and user-scoped writes for carts, orders, and notifications. See [firestore.rules](firestore.rules) and [storage.rules](storage.rules).\n\n### Notifications\n\nWhen an order status changes in Firestore, the app:\n1. Detects the change via a real-time orders stream listener\n2. Writes a notification document to `users/{uid}/notifications/`\n3. Shows a local push notification on the device\n4. Tapping the notification navigates to the order detail screen\n\n## Architecture\n\nThe app follows **Clean Architecture** with three layers per feature:\n\n1. **Data** -- repository implementations (Firebase, API calls)\n2. **Domain** -- models (Freezed classes), repository interfaces\n3. **Presentation** -- UI widgets, ViewModels (Riverpod providers)\n\nDependency injection is handled via Riverpod providers in `core/di/`.\n\n## License\n\nThis project is private and not licensed for redistribution.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Built with Flutter \u0026 Firebase**\n\n`ecommerce` `flutter-ecommerce` `flutter-shopping-app` `shopping-cart` `online-store` `flutter-app` `flutter` `dart` `firebase` `firestore` `riverpod` `clean-architecture` `material-design-3` `go-router` `freezed` `push-notifications` `wishlist` `order-tracking` `google-sign-in` `cross-platform`\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffarhansadikgalib%2Fnextcart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffarhansadikgalib%2Fnextcart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffarhansadikgalib%2Fnextcart/lists"}