Requirements
The computer, software and accounts you need before you start. Install everything once and every later step goes smoothly.
Your computer#
| You want to build | You need |
|---|---|
| Android apps, the admin panel, the restaurant panel and the customer website | Windows 10/11 (64-bit), macOS or Linux, 8 GB RAM (16 GB recommended), 20 GB free disk |
| iPhone apps | A Mac with a recent macOS and the latest Xcode. Apple allows iOS builds only on a Mac. |
No Mac?
You can do everything else on Windows or Linux and build the iPhone apps later, or on a borrowed or rented Mac. Nothing in the backend depends on it.
Software to install#
| Software | Version | What it is for | Get it |
|---|---|---|---|
| Flutter SDK | Latest stable (includes Dart) | Builds the three mobile apps, the admin panel, the restaurant panel and the customer website | flutter.dev |
| Android Studio | Latest | Android SDK, emulator and Java (JDK 17 is used by the Android builds) | developer.android.com |
| Xcode (Mac only) | Latest | iPhone builds, simulator and App Store upload | Mac App Store |
| CocoaPods (Mac only) | Latest | iOS libraries | sudo gem install cocoapods or brew install cocoapods |
| Node.js | 20 or newer, 24 LTS recommended | Runs the Firebase setup tool (firebase_setup). The Cloud Functions themselves run on Node.js 24 in Google's cloud. | nodejs.org |
| Firebase CLI | Latest | Needed by FlutterFire to connect the apps, and for Firebase Hosting deploys | npm install -g firebase-tools |
| FlutterFire CLI | Latest | Writes each app's Firebase settings for you | dart pub global activate flutterfire_cli |
| Google Chrome | Latest | Runs the setup tool, the admin panel and the websites while you test | google.com/chrome |
| VS Code or Android Studio | Latest | Code editor, with the Flutter and Dart plugins | code.visualstudio.com |
| Git / GitHub Desktop | Optional | Keeping your changes safe during upgrades | desktop.github.com |
Install Flutter#
- Install Git for Windows.
- Download the latest stable Flutter SDK (ZIP) from the Flutter install page.
- Extract it to a simple folder, for example
C:\src\flutter. Avoid folders with spaces or that need admin rights, such asC:\Program Files. - Open Start, search for Environment Variables and click Edit the system environment variables. Click Environment Variables, select Path under User variables, click Edit and add
C:\src\flutter\bin. - Install Android Studio. In Settings > Plugins, install the Flutter and Dart plugins. Create an emulator in Device Manager if you want to test without a phone.
- Close every terminal, open a new one and run
flutter doctor.
- Download the Flutter SDK for macOS from the Flutter install page and extract it, for example to
~/development/flutter. - Add Flutter to your PATH. Open
~/.zshrcand add the line below, then runsource ~/.zshrc.export PATH="$PATH:$HOME/development/flutter/bin" - Install Xcode from the Mac App Store, then set up its command-line tools:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer sudo xcodebuild -runFirstLaunch - Install CocoaPods:
sudo gem install cocoapods(orbrew install cocoapods). - Install Android Studio if you will also build the Android apps.
- Open a new terminal and run
flutter doctor.
Install Node.js#
Node.js runs the Firebase setup tool. You install it once and do not have to use it yourself: the tool does the rest.
Download the installer#
Open nodejs.org and click the LTS download, not "Current". The site gives you the right file for Windows or macOS.
Run the installer#
On Windows open the .msi file, on macOS the .pkg file. Keep every default setting. npm is installed with it. On a Mac with Homebrew you can run brew install node instead.
Open a new terminal#
Close every Command Prompt, PowerShell or Terminal window and open a fresh one. A window that was already open does not see the new install. This is the most common reason the check below seems to fail.
Check it worked#
node -v
npm -v
The first number must start with v20 or higher. If it prints an older version, install the LTS over it.
The setup tool checks this for you
start.bat and start.sh in firebase_setup stop with a clear message and open the Node.js download page if Node.js is missing or older than version 20.
Check your setup#
Open a new terminal and run:
flutter doctor
node -v
flutter doctor lists what is still missing. Install what it reports until Flutter, Android toolchain and Chrome show a green tick (and Xcode on a Mac).
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable)
[✓] Android toolchain - develop for Android devices
[✓] Xcode - develop for iOS and macOS (Mac only)
[✓] Chrome - develop for the web
[✓] Android Studio
[✓] VS Code
[✓] Connected device
Android licences
If flutter doctor says the Android licences are not accepted, run flutter doctor --android-licenses and answer y to each question.
Accounts you need#
| Account | Cost | Needed for |
|---|---|---|
| Google account with a Firebase project on the Blaze plan | Pay as you go, with a free monthly amount | The whole backend: database, sign-in, storage, Cloud Functions, push |
| Google Cloud (same project as Firebase) | Free monthly amount per API | A Google Maps key, if you use Google Maps instead of the free OpenStreetMap option |
| Google Play Console | One-time registration fee | Publishing the Android apps |
| Apple Developer Program | Yearly fee | iPhone builds on real devices, Sign in with Apple, push notifications, the App Store |
| Payment gateway (Stripe, Razorpay, PayPal…) | Per-transaction fees | Online payments. Cash on delivery and the wallet work without one. |
| Email (SMTP) service | Free tiers available | Order and account emails |
| Domain + hosting | Varies | The admin panel, restaurant panel, customer website and landing page. Firebase Hosting is free to start. |
See Third-party services & costs for what each one costs and what is free.
What the apps run on#
| App | Runs on |
|---|---|
| Customer app, restaurant app, driver app | Android 7.0 (API 24) and newer, iPhone with iOS 15.0 and newer |
| Admin panel, restaurant panel, customer website, landing page | Current Chrome, Edge, Safari and Firefox, on desktop and mobile |
Ready?
With the tools installed and flutter doctor green, continue with the Firebase backend overview.