Skip to content

akyourowngames/HelpID-Android

Repository files navigation

Helper-ID

Emergency identity platform with:

  • an Android app (app/) for creating and sharing emergency profile data
  • a web app + serverless APIs (helper-id/) for public profile access, short-lived share links, and Gemini proxy calls

Repository Layout

app/ Android (Kotlin + Jetpack Compose + Firebase + Room)
helper-id/ Vite + React frontend and Vercel serverless APIs (api/*.js)
gradle/, gradlew* Android build tooling

Main Features

  • Emergency ID card UI with profile, medical notes, and emergency contacts
  • SOS flow with SMS + optional location link
  • Offline-first profile behavior (Room cache + pending sync)
  • Anonymous Firebase auth bootstrap and Firestore profile storage
  • Shareable emergency profile links minted via /api/mint and resolved by /api/profile
  • Gemini server-side proxy endpoint at /api/gemini (API key stays server-side)

Prerequisites

  • Android Studio (latest stable recommended)
  • JDK 17 (Android Gradle Plugin 8.x compatibility)
  • Node.js 18+ and npm (for helper-id/)
  • Firebase project configured for:
    • Anonymous Authentication
    • Firestore Database

Android App Setup (app/)

  1. Ensure app/google-services.json is present and matches your Firebase project.
  2. Open the repository root in Android Studio.
  3. Sync Gradle.
  4. Run on emulator/device.

CLI build:

./gradlew :app:assembleDebug

Windows PowerShell:

.\gradlew.bat :app:assembleDebug

Web App + API Setup (helper-id/)

  1. Install dependencies:
cd helper-id
npm install
  1. Create .env.local in helper-id/ with required values:
GEMINI_API_KEY=your_gemini_key
FIREBASE_SERVICE_ACCOUNT_KEY={"type":"service_account",...}
PROFILE_JWT_SECRET=replace_with_a_long_random_secret

Notes:

  • FIREBASE_SERVICE_ACCOUNT_KEY must be a JSON string (single line) for firebase-admin.
  • PROFILE_JWT_SECRET signs temporary profile access tokens used by /api/mint and /api/profile.
  1. Run local dev server:
npm run dev
  1. Build production bundle:
npm run build

API Endpoints (helper-id/api)

  • POST /api/mint
    • Verifies Firebase ID token from Authorization: Bearer <token>
    • Generates/reuses public key
    • Returns signed temporary URL (/e/:key?t=...)
  • GET /api/profile?key=<publicKey>&t=<jwt>
    • Validates token
    • Maps public key to UID
    • Returns sanitized profile fields only
  • POST /api/gemini
    • Proxies prompt to Gemini model server-side

Recommended Cleanup

  • helper-id/node_modules/ appears committed locally; keep it gitignored and out of source control.

  • local.properties is machine-specific for Android SDK paths; do not commit personalized values.

    Star History

Star History Chart

License

No license file is currently present in the repository. Add one if this project will be shared publicly.

About

Helper ID: An open-source SOS tool using QR & NFC to show medical info on lock screens. Secure, inclusive safety for emergencies. Built for impact.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors