Getting started
Clone both repos, get the backend + admin panel running locally, then run either Flutter app against it.
Prerequisites
| Tool | Used for |
|---|---|
| Python 3.11+ & PostgreSQL | Backend + Admin Panel |
| Flutter SDK | User App & Host App |
| Xcode + CocoaPods | iOS builds (Mac only) |
gem install xcodeproj | Editing iOS build flavors/schemes programmatically — not needed for normal day-to-day work |
Railway CLI (railway) | Backend/Admin deploys, env vars — see Deployment |
Firebase CLI (firebase) | Only needed if registering a new Firebase app (e.g. a future build flavor) |
gh (GitHub CLI), signed into both accounts | daily-meet-app pushes to two remotes — see Overview |
1. Clone both repos
git clone https://github.com/DailyMeet-Apps/daily-meet-platform.git
git clone https://github.com/DailyMeet-Apps/daily-meet-app.git
Keep them as sibling folders — a few scripts reference the other repo by relative path (e.g. ../daily-meet-platform/scripts/run_backend_local.sh from inside daily-meet-app).
2. Backend + Admin Panel (daily-meet-platform)
cd backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # fill in a local Postgres URL and secrets — see Environment variables
./scripts/run_backend_local.sh # or: uvicorn app.main:app --reload
cd admin_panel
pip install -r requirements.txt
./scripts/run_admin_local.sh # or: uvicorn main:app --reload --port 8010
Local defaults: backend at http://127.0.0.1:8000, admin at http://127.0.0.1:8010. The admin panel talks to the backend via DAILY_MEET_API_BASE_URL — see Environment variables.
3. User App & Host App (daily-meet-app)
flutter pub get
(cd apps/host_app && flutter pub get)
./scripts/run_user_local.sh # User App, against your local backend
./scripts/run_host_local.sh # Host App, against your local backend
Both apps now require --flavor on every Flutter command (build flavors were added 2026-09-24) — the scripts above already pass it. See App identifiers for what the flavors are and Build & release for the full script list.
Android emulator reaches your local Mac via 10.0.2.2, not 127.0.0.1 — the app picks this automatically. A physical device needs your Mac's LAN IP passed explicitly; see Build & release.
4. Point at testing/production instead of local
./scripts/run_user_staging.sh # api-staging.dailymeet.in
./scripts/run_user_release.sh # api.dailymeet.in (production)
Full URL list on Environments.
Where the deep engineering docs live
This wiki is for setup/ops. For "how does feature X actually work", each repo has its own detailed knowledge-transfer docs:
daily-meet-platform/docs/KT_INDEX.md— backend, database, Admin Panel, workers, deploymentdaily-meet-app/docs/KT_INDEX.md— User App, Host App, shared package, native platform integration