Go4Food Go4Food Docs v1.0.0
Getting Started

Requirements

The computer, software and accounts you need before you start. Install everything once and every later step goes smoothly.

30–60 min (first install)

Your computer#

You want to buildYou need
Android apps, the admin panel, the restaurant panel and the customer websiteWindows 10/11 (64-bit), macOS or Linux, 8 GB RAM (16 GB recommended), 20 GB free disk
iPhone appsA 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#

SoftwareVersionWhat it is forGet it
Flutter SDKLatest stable (includes Dart)Builds the three mobile apps, the admin panel, the restaurant panel and the customer websiteflutter.dev
Android StudioLatestAndroid SDK, emulator and Java (JDK 17 is used by the Android builds)developer.android.com
Xcode (Mac only)LatestiPhone builds, simulator and App Store uploadMac App Store
CocoaPods (Mac only)LatestiOS librariessudo gem install cocoapods or brew install cocoapods
Node.js20 or newer, 24 LTS recommendedRuns the Firebase setup tool (firebase_setup). The Cloud Functions themselves run on Node.js 24 in Google's cloud.nodejs.org
Firebase CLILatestNeeded by FlutterFire to connect the apps, and for Firebase Hosting deploysnpm install -g firebase-tools
FlutterFire CLILatestWrites each app's Firebase settings for youdart pub global activate flutterfire_cli
Google ChromeLatestRuns the setup tool, the admin panel and the websites while you testgoogle.com/chrome
VS Code or Android StudioLatestCode editor, with the Flutter and Dart pluginscode.visualstudio.com
Git / GitHub DesktopOptionalKeeping your changes safe during upgradesdesktop.github.com

Install Flutter#

  1. Install Git for Windows.
  2. Download the latest stable Flutter SDK (ZIP) from the Flutter install page.
  3. Extract it to a simple folder, for example C:\src\flutter. Avoid folders with spaces or that need admin rights, such as C:\Program Files.
  4. 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.
  5. 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.
  6. Close every terminal, open a new one and run flutter doctor.
  1. Download the Flutter SDK for macOS from the Flutter install page and extract it, for example to ~/development/flutter.
  2. Add Flutter to your PATH. Open ~/.zshrc and add the line below, then run source ~/.zshrc.
    export PATH="$PATH:$HOME/development/flutter/bin"
  3. 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
  4. Install CocoaPods: sudo gem install cocoapods (or brew install cocoapods).
  5. Install Android Studio if you will also build the Android apps.
  6. 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#

AccountCostNeeded for
Google account with a Firebase project on the Blaze planPay as you go, with a free monthly amountThe whole backend: database, sign-in, storage, Cloud Functions, push
Google Cloud (same project as Firebase)Free monthly amount per APIA Google Maps key, if you use Google Maps instead of the free OpenStreetMap option
Google Play ConsoleOne-time registration feePublishing the Android apps
Apple Developer ProgramYearly feeiPhone builds on real devices, Sign in with Apple, push notifications, the App Store
Payment gateway (Stripe, Razorpay, PayPal…)Per-transaction feesOnline payments. Cash on delivery and the wallet work without one.
Email (SMTP) serviceFree tiers availableOrder and account emails
Domain + hostingVariesThe 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#

AppRuns on
Customer app, restaurant app, driver appAndroid 7.0 (API 24) and newer, iPhone with iOS 15.0 and newer
Admin panel, restaurant panel, customer website, landing pageCurrent Chrome, Edge, Safari and Firefox, on desktop and mobile

Ready?

With the tools installed and flutter doctor green, continue with the Firebase backend overview.