A cross-platform Flutter mobile app for the Ecomly e-commerce platform.
Built with Provider state management, a clean modular architecture, and full integration with the Grocery Node.js API.
This app demonstrates how to build a scalable and maintainable Flutter client for an e-commerce system.
It consumes a RESTful API, manages authentication and cart state, and provides a clean shopping experience with reusable components.
Ideal as a portfolio project to showcase mobile development skills.
- 📦 State Management with Provider
- Global providers for cart, products, and authentication
- 🌐 API Integration
- Connects with the Grocery Node.js backend (products, users, cart, orders)
- 🛒 Core E-Commerce Features
- Browse grocery items
- View product details
- Manage shopping cart
- Handle user login/register
- 🧩 Modular Architecture
api/→ REST API servicesapplication/→ App logic layermodels/→ Dart data modelsproviders/→ State management with Providerpages/→ Screens (login, home, product, cart, etc.)widgets/→ Reusable UI componentscomponents/→ Shared UI building blocksutils/→ Helper utilities (formatting, constants)config.dart→ Centralized app configurationmain.dart→ Entry point
- 🎨 UI/UX
- Clean, responsive design
- Reusable custom widgets
- ⚙️ Extensible Setup
- Easy to plug into other APIs or extend with new pages
- Flutter (Dart)
- Provider (state management)
- Dio / http (API requests)
- Shared Preferences / Secure Storage (auth persistence)
- Material Design (UI components)
- Clone the repository
git clone https://github.com/Schandroid243/Grocery_Flutter_App.git cd Grocery_Flutter_App git checkout dev - Install dependencies
flutter pub get
- Set up config
- Open lib/config.dart
- Add your API base URL (from Grocery_NodeJs_Api):
const String apiBaseUrl = "http://localhost:3000/api";
- Run the app
flutter run
- Add payment integration (Stripe, PayPal, etc.)
- Offline mode with local caching
- Push notifications for offers/orders
- Dark mode support