Zipkart Zipkart Docs v1.0.0
Getting Started

Project Structure

What is in the download, which folder builds which app, and the few files you will edit yourself.

The download at a glance#

Zipkart/
├── customer/          Customer app (Android, iOS) and the customer website
├── store/             Store app (Android, iOS) and the store panel website
├── driver/            Delivery boy app (Android, iOS)
├── admin/             Admin panel (web)
├── functions/         Cloud Functions: the secure server logic (Node.js 22)
├── firebase_setup/    Setup tool: rules, indexes, starter data, one-click deploy
└── documentation/     This documentation (open index.html)

One Firebase project for everything#

All apps and panels share one Firebase project: the same database, the same sign-in, the same storage. A product added in the admin panel appears in the customer app at once. An order placed in the customer app rings in the store app straight away.

Do not create a Firebase project per app

Create one project and connect all four apps to it. Separate projects would not share orders, products or users.

Inside each app folder#

Every Flutter app uses the same layout, so once you know one, you know them all.

customer/
├── lib/
│   ├── main.dart                 Starts Firebase and the app
│   ├── firebase_options.dart     Your Firebase settings (written by FlutterFire)
│   └── app/
│       ├── modules/              One folder per screen group (home, checkout, profile…)
│       ├── services/             Shared logic: sign-in, cart, location, languages
│       ├── repositories/         Reading and writing Firestore
│       ├── models/               Data classes
│       ├── components/           Reusable widgets
│       ├── routes/               Screen addresses
│       └── utils/                Helpers
├── android/                      Android project (package name, icon, signing)
├── ios/                          iPhone project (bundle ID, icon, permissions)
├── web/                          Website files (title, favicon, push worker)
├── assets/                       Images, icons and sounds
└── pubspec.yaml                  Packages and app version

The only files you edit yourself#

Almost everything is a setting in the admin panel. These are the exceptions, because a phone or browser needs them when the app is built:

What File(s) Guide
Firebase connection lib/firebase_options.dart, android/app/google-services.json (written for you) Connect the Apps
Web push settings web/firebase-messaging-sw.js in customer, store and admin Connect the Apps
Package name / bundle ID android/app/build.gradle.kts, Xcode project Package Name
App name under the icon AndroidManifest.xml, Info.plist App Name & Icon
Launcher icon android/app/src/main/res/mipmap-*, ios/Runner/Assets.xcassets App Name & Icon
Google Maps key (optional) android/local.properties, ios/Flutter/Secrets.xcconfig Google Maps Key
Android signing android/key.properties + your .jks file Android Release
Website names web/index.html, web/manifest.json Websites Overview
iPhone sign-in values (customer app) ios/Runner/Info.plist Customer Sign-In

Changed from the admin panel, no code

Shop logo and colours, fonts, display titles, currency, languages and translations, payment gateways, delivery charges, zones, taxes, invoice details, policies, home screen layout, notification and email texts, maintenance mode. See First-Time Setup.