Local Development Setup

Goal: a new engineer gets the whole stack running locally from clean checkouts.

Prerequisites

Tool Version For
Go 1.25 API
PostgreSQL 14+ API database
Node.js 24.x admin + web app
Flutter 3.38.9 (stable) mobile app
Java 17/21 (temurin) Android build
Android Studio latest emulator/build
Firebase CLI + FlutterFire latest app Firebase config
Docker latest admin (prod-parity), optional

1. API (bme-konza-api)

cd bme-konza-api
cp .env.example .env          # then fill secrets (JWT, Firebase, DB password)
createdb bmekonza             # or point DATABASE_* at an existing Postgres
go run main.go migrate        # apply goose migrations
go run main.go user --email you@example.com --name you --role admin --password '...'  # seed an admin
go run main.go server         # serves on :8000

You also need the Firebase Admin service-account JSON referenced by FIREBASE_FILE_NAME / FIREBASE_SERVICE_FILE for auth/FCM/storage to work — get it from the <STAGING_FIREBASE_PROJECT> Firebase project (don't use prod locally). See 11-firebase.md.

API will be at http://localhost:8000 (base path /api/v1), Swagger at [TODO: /swagger].

2. Admin panel (Oa-admin-panel)

cd Oa-admin-panel
cp .env.example .env          # set VITE_BASE_URL=http://localhost:8000  (+ Firebase web config)
npm install
npm run dev

3. Web app (BME-KONZA-web-platform)

cd BME-KONZA-web-platform
cp .env.example .env          # VITE_BASE_URL + Firebase web config + GA id
npm install                   # runs nuxt prepare
npm run dev

4. Mobile app (oxygen-alliance-app)

cd oxygen-alliance-app
flutter pub get
flutterfire configure         # if firebase_options/google-services.json are missing
# Run the staging flavor against staging or local API:
flutter run --flavor staging --dart-define=API_URL=http://10.0.2.2:8000   # 10.0.2.2 = host from Android emulator

Use the staging flavor/Firebase project for development. To point at a local API from a device/emulator, set API_URL accordingly (10.0.2.2 reaches the host machine from the Android emulator).

Running everything together

Start Postgres → API (:8000) → point admin/web VITE_BASE_URL and the app's API_URL at it. Remember to add the local frontend origins to SERVER_CORS_ALLOW_ORIGINS in the API .env.

[TODO: any seed/fixture data script beyond theusercommand, and a docker-compose for one-command bring-up if desired.]