Skip to content

Wellysa Onkoradar Mobile

Flutter-based mobile application for oncology patient care and monitoring, available on iOS and Android with multi-environment deployment (dev/stage/prod).

CI/CD Status

🚀 Deployments

DEVSTAGEPROD
DEV DeploySTAGE DeployPROD Deploy

✅ Quality Checks

CheckStatusCoverage
PR ChecksPR Check-
Unit TestsUnit TestsCoverage
E2E TestsE2E TestsCoverage

Tech Stack

  • Framework: Flutter (version managed via FVM)
  • Language: Dart (primary), Kotlin 2.0.0 (Android native)
  • Platform Support: iOS, Android
  • Backend: Firebase (dual-project architecture)
  • Testing: Unit tests, BDD/Gherkin integration tests
  • CI/CD: GitHub Actions

Features

  • Patient oncology data management
  • Genogram generation and visualization (see DOKUMENTACJA_GENEROWANIE_GENOGRAMU.md, DOKUMENTACJA_NOWY_FLOW_GENOGRAM.md)
  • Multi-environment deployment (dev/stage/prod)
  • Firebase dual-project integration (ORAP for core app, ORAM for lab diagnostics)
  • Medical statistics and FAQ modules

Quick Info

Bundle IDs (unverified — confirm with team):

  • iOS Dev: com.wellysa.onkoradar.nzoz.dev (Wellysa DEV)
  • iOS Stage: com.wellysa.onkoradar.nzoz.stage (Wellysa STAGE)
  • iOS Prod: com.wellysa.onkoradar.nzoz (Wellysa)
  • Android Dev: com.wellysa.onkoradar_dev_dev (Wellysa DEV)
  • Android Stage: com.wellysa.onkoradar_stage (Wellysa STAGE)
  • Android Prod: com.wellysa.onkoradar_dev (Wellysa)

Flutter Version: Managed via FVM (check .fvmrc for exact version)

Setup

1. Install FVM

bash
dart pub global activate fvm

2. Setup Flutter

bash
fvm use

FVM reads version from .fvmrc and installs the configured Flutter version automatically.

3. Install Dependencies

bash
fvm flutter pub get

4. Generate Code (freezed, json_serializable, etc.)

bash
fvm flutter pub run build_runner build --delete-conflicting-outputs

5. Add Secret Files

Create .secrets/ folder structure:

.secrets/
├── dev/
│   ├── defines.json              # environment variables
│   ├── android-key.properties    # Android signing config
│   └── android-keystore.jks      # Android keystore
├── stage/
│   ├── defines.json
│   ├── android-key.properties
│   └── android-keystore.jks
└── prod/
    ├── defines.json
    ├── android-key.properties
    └── android-keystore.jks

See "Environment Variables" section below for required variables in defines.json.

6. Firebase Configuration

Ensure Firebase config files are in place:

  • iOS: ios/firebase/{env}/GoogleService-Info.plist
  • Android: android/firebase/{env}/google-services.json

Running Locally

Press F5 and select from .vscode/launch.json configurations:

  • Flutter (dev) debug - Dev with debugging
  • Flutter (dev) nodebug - Dev without debugging
  • Flutter (prod) debug - Prod with debugging
  • Flutter (prod) release - Prod in release mode

Terminal

bash
# Dev
fvm flutter run -d <device-id> --flavor dev --dart-define-from-file=.secrets/dev/defines.json

# Stage (unverified — confirm launch command)
fvm flutter run -d <device-id> --flavor stage --dart-define-from-file=.secrets/stage/defines.json

# Prod release
fvm flutter run -d <device-id> --flavor prod --release --dart-define-from-file=.secrets/prod/defines.json

# List devices
fvm flutter devices

Flavors

The app supports three environments via Flutter flavors:

iOS

Build configurations: Debug-dev, Release-dev, Profile-dev, Debug-stage, Release-stage, Profile-stage, Debug-prod, Release-prod, Profile-prod

Config files:

  • Dev → ios/Flutter/Debug.xcconfig
  • Prod → ios/Flutter/Release.xcconfig

Android

Product flavors defined in android/app/build.gradle:

gradle
dev {
    applicationId "com.wellysa.onkoradar_dev_dev"
    resValue "string", "app_name", "Wellysa DEV"
}
stage {
    applicationId "com.wellysa.onkoradar_stage"
    resValue "string", "app_name", "Wellysa STAGE"
}
prod {
    applicationId "com.wellysa.onkoradar_dev"
    resValue "string", "app_name", "Wellysa"
}

Architecture

Firebase Dual-Project Setup

The app integrates with two separate Firebase projects:

  1. ORAP (Main App): Authentication, user management, core content
    • Configured via GoogleService-Info.plist (iOS) and google-services.json (Android)
  2. ORAM (Lab Diagnostics): Laboratory orders and diagnostic data
    • Programmatically initialized as Firebase.app('devOram')

Firebase Config Files

ios/firebase/
├── dev/GoogleService-Info.plist    → copied to ios/Runner/
├── stage/GoogleService-Info.plist
└── prod/GoogleService-Info.plist

android/firebase/
├── dev/google-services.json        → copied to android/app/src/dev/
├── stage/google-services.json      → copied to android/app/src/stage/
└── prod/google-services.json       → copied to android/app/src/prod/

Data Assets

Static data loaded from assets/data/:

  • doctors.json - Medical staff directory
  • faq.json - Frequently asked questions
  • statistics.json - Medical statistics data

Environment Variables

Each environment (dev/stage/prod) requires a defines.json file in .secrets/{env}/ with runtime configuration variables. See .secrets/README.md for the complete list of required variables and their format.

Testing

  • Unit tests: Dart-based unit test suite with coverage reporting
  • Integration tests: Gherkin/BDD-style automated tests (see *.feature files)
  • CI automation: All tests run on PR via GitHub Actions

Run tests locally:

bash
# Unit tests
fvm flutter test

# Integration tests (unverified — confirm command)
fvm flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dart

Key Files

FilePurpose
.fvmrcFlutter version specification
.fvm/fvm_config.jsonFVM configuration
.vscode/launch.jsonVS Code run configurations
pubspec.yamlFlutter dependencies and assets
android/build.gradleAndroid project config (Kotlin 2.0.0)
android/app/build.gradleAndroid flavors and signing
ios/Flutter/Debug.xcconfigiOS dev environment config
ios/Flutter/Release.xcconfigiOS prod environment config
.secrets/Environment-specific secrets (gitignored)
.firebasercFirebase project aliases
DOKUMENTACJA_GENEROWANIE_GENOGRAMU.mdGenogram generation docs (PL)
DOKUMENTACJA_NOWY_FLOW_GENOGRAM.mdNew genogram flow docs (PL)
CHANGELOG.MDRelease history

Additional Documentation

  • Genogram Features: See DOKUMENTACJA_GENEROWANIE_GENOGRAMU.md and DOKUMENTACJA_NOWY_FLOW_GENOGRAM.md for detailed implementation guides (in Polish)
  • Secrets Setup: Refer to .secrets/README.md (if available) for environment variable specifications

Default Branch: ci
Last Updated: 2026-05-10

Wellysa Consigliere — internal use only.