Skip to content

oneetnwt/QueueCare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QueueCare

QueueCare is an Android healthcare queue and appointment management app built with Java, Firebase, and Material Design. It supports two user roles:

  • Patients can book appointments, track upcoming visits, chat with medical staff, and view announcements.
  • Medical workers can monitor queue volume, scan appointment QR codes, and mark appointments as processed.

Key Features

  • Dual-role experience (patient and medical worker) based on role data in Firebase.
  • Authentication with email/password and Google Sign-In.
  • Appointment booking with date/time validation and service selection by weekday.
  • Appointment list tabs for upcoming and past states.
  • QR code generation for patient appointment records.
  • QR scanning workflow for medical workers to verify and complete appointments.
  • In-app one-to-one chat backed by Firebase Realtime Database.
  • Announcement feed with summary and detail screens.
  • Profile management including personal details and profile image updates.
  • Loading skeletons (Shimmer) in key list-based screens.

Technology Stack

  • Language: Java 11
  • Platform: Android (minSdk 24, targetSdk 35, compileSdk 36)
  • Build: Gradle Kotlin DSL + Android Gradle Plugin 9.0.1
  • UI: AndroidX + Material Components
  • Backend: Firebase
    • Authentication
    • Realtime Database
    • Storage
    • Analytics
  • Auth integrations: Google Play Services Auth
  • QR/Barcode: ZXing core + JourneyApps embedded scanner
  • Media and UI utilities:
    • Glide
    • CanHub Android Image Cropper
    • Facebook Shimmer

Main Dependencies

  • Firebase BoM: 34.12.0
  • com.google.android.gms:play-services-auth:21.3.0
  • com.github.CanHub:Android-Image-Cropper:4.5.0
  • com.google.zxing:core:3.5.4
  • com.journeyapps:zxing-android-embedded:4.3.0
  • com.github.bumptech.glide:glide:4.16.0
  • com.facebook.shimmer:shimmer:0.5.0

Installation

Prerequisites

  • Android Studio (latest stable recommended)
  • JDK 11
  • Android SDK for API 35/36
  • A Firebase project configured for Android

Setup Steps

  1. Clone the repository.
  2. Open the project in Android Studio.
  3. Ensure local.properties points to your Android SDK path.
  4. Place a valid google-services.json in app/.
  5. Sync Gradle.
  6. Build and run on an emulator or physical device.

CLI Build (Optional)

On Windows:

gradlew.bat assembleDebug

On macOS/Linux:

./gradlew assembleDebug

Quick Start

  1. Launch the app.
  2. Sign in with email/password or Google.
  3. If you are a patient:
    • Use the action button to create a booking.
    • View appointments and open an appointment item to display its QR code.
    • Use Messages to contact medical staff.
  4. If you are a medical worker:
    • Open dashboard queue stats.
    • Use the action button to scan a patient QR and mark an appointment as done.

Usage Notes

  • Appointment booking is limited to weekdays and clinic hours (8:00 AM to 5:00 PM).
  • Service options are determined by selected weekday.
  • Some screens still include seed/demo behavior (for example, static entries in history view).

Project Structure

QueueCare/
  app/
    src/main/
      AndroidManifest.xml
      java/com/stratex/queuecare/
        auth/                # Login, signup, profile completion, forgot password
        adapters/            # RecyclerView adapters
        models/              # User, Appointment, Announcement
        *.java               # Activities, fragments, chat, booking, scanner
      res/                   # Layouts, drawables, values, animations
    google-services.json
    build.gradle.kts
  gradle/libs.versions.toml
  build.gradle.kts
  settings.gradle.kts

Configuration

  • Firebase:
    • Google Services plugin is enabled in the app module.
    • Firebase BoM and services are declared in app dependencies.
  • Roles:
    • User role values are stored in Realtime Database (for example user, medical_worker).
    • Dashboard behavior and primary action button change according to role.
  • Gradle settings:
    • AndroidX enabled
    • Non-transitive R class enabled

Testing

  • Unit test scaffold exists (ExampleUnitTest).
  • Instrumentation test scaffold exists (ExampleInstrumentedTest).
  • Additional functional and integration tests should be added for production readiness.

Contributing

  1. Fork the repository.
  2. Create a feature branch.
  3. Make focused, testable changes.
  4. Run unit/instrumentation tests.
  5. Open a pull request with a clear description of behavior changes.

Recommended contribution practices:

  • Follow existing Java and Android resource naming conventions.
  • Keep UI behavior role-aware (patient vs medical worker).
  • Validate Firebase read/write paths for any new feature.

License

No license file is currently included in the repository.

Until a license is added, treat the project as all rights reserved by default.

About

QueueCare is a role-based Android healthcare app built with Java and Firebase to streamline patient appointments and clinic queue management through QR verification and real-time chat.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages