Skip to main content
Infidec Marketplace logo
v1.0.0

Type to search pages and sections, e.g. “razorpay”, “package name”, “SHA”.

Requirements

Software to install on your computer, the accounts you need and the Google services ClassiAds-Hub uses, before you start the installation.

Install these tools on the computer you use to set up ClassiAds-Hub (Windows, macOS or Linux). You do not need a server: everything runs on Firebase.

Software

ToolVersionUsed forCheck with
Node.js22 (the functions declare "engines": { "node": "22" } and firebase.json sets "runtime": "nodejs22")Building and deploying the functions, building the website and the Admin Panel, the tools scriptsnode -v
npmComes with Node.jsInstalling packages in functions/, web/, admin/ and tools/*npm -v
Firebase CLI (firebase-tools)LatestDeploying functions, rules, indexes and Hosting; setting secrets; the emulatorsfirebase --version
GitLatestVersion controlgit --version
Google ChromeLatestTesting the website and the panel. The browser QA scripts in tools/qa/ drive Chrome—
Flutter SDKStable with Dart 3.11+ (mobile/pubspec.yaml: sdk: ^3.11.1)Only for the mobile appflutter --version
Android StudioLatest stableAndroid SDK, emulator, signing the Android app—
XcodeLatest stable (macOS only)Building the iOS app—
FlutterFire CLILatestGenerating the app's firebase_options.dartflutterfire --version
Google Cloud CLI (gcloud)OptionalIAM roles if the first deploy needs them, Firestore backupsgcloud --version
MySQL / MariaDBOptionalOnly for the one-time Data Migration—

Install the Firebase CLI and sign in:

Terminal
npm install -g firebase-tools
firebase login

Verify the tools

Terminal
node -v              # v22.x
firebase --version
flutter doctor -v    # only if you build the app

Then install the packages of the three Node projects once:

Terminal
cd functions && npm install && cd ..
cd admin && npm install && cd ..
cd web && npm install && cd ..

Accounts

AccountWhyCost
Google account + Google Cloud billing accountFirebase project on the Blaze planPay as you go, see Third-Party Service Costs
Stripe, Razorpay and/or PayPal (optional)Online payments for packages and featured ads on the websitePer transaction
Domain names (optional)The website and the Admin Panel on your own addressesPer year
Google Play ConsolePublish the Android appUS$25 once
Apple Developer Program (optional)Publish the iOS app, Sign in with Apple, APNs for pushUS$99 / year

Google services used

You enable these in the next steps. ClassiAds-Hub uses only Google-managed services:

  • Firebase Authentication: Email/Password (every account, including phone-only accounts through a synthetic e-mail), Google (website and app, optional) and Apple (iOS app, optional)
  • Cloud Firestore: the main database (Native mode)
  • Cloud Storage for Firebase: ad photos, avatars, content images, KYC documents, receipts and résumés
  • Cloud Functions (2nd gen): the api HTTPS function and the scheduled housekeeping function. Needs the Blaze plan
  • Secret Manager: the three payment secret keys
  • Firebase Cloud Messaging: push notifications to the app (and web push with a VAPID key)
  • Firebase Hosting: two sites, one for the website and one for the Admin Panel
  • Google Maps Platform: Maps SDK for Android and iOS, used by the mobile app only
  • Behind the scenes, enabled by the first functions deploy: Cloud Build, Artifact Registry, Cloud Run, Cloud Scheduler and Pub/Sub

Choose a region

  • Cloud Functions run in `us-central1`. The region is set in functions/src/index.ts (setGlobalOptions({ region: "us-central1", maxInstances: 20 })) and repeated in the Hosting rewrites in firebase.json and in the API addresses of the website, the panel and the app. Keep it unless you are ready to change all of them.
  • Firestore and Storage: choose the location closest to your users, for example asia-south1 (Mumbai) for India or europe-west1 for Europe.

Next: Create the Firebase Project →

Something unclear or out of date? Tell us. contact@infidec.com