You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Faiz Hashmi 7a6de329b5 latest version v9.4 2 weeks ago
android added projectID and sent version 9.4 to Tak main branch 3 months ago
assets qLine Lab integration started. 7 months ago
ios scripts 2 months ago
lib latest version v9.4 2 weeks ago
qline_scripts Convert qline_scripts from submodule to regular directory in root repo 2 months ago
.gitignore latest version v9.4 2 weeks ago
.metadata Fisrt push 2 years ago
AC_POWERED_KIOSK_SUMMARY.md bg fix 5 months ago
CHANGES_EXPLANATION.md bg fix 5 months ago
DEPLOYMENT_READY.md bg fix 5 months ago
QUICK_SUMMARY.md bg fix 5 months ago
README.md latest version v9.4 2 weeks ago
analysis_options.yaml Fisrt push 2 years ago
devtools_options.yaml Fisrt push 2 years ago
pubspec.lock Improved Logging 7 months ago
pubspec.yaml Improved Logging 7 months ago

README.md

HMG_QLine

HMG_QLine is a Flutter-based application designed for efficient patient management and queue handling in healthcare environments. It features multiple screens for patient display, robust logging, and background service integration to ensure reliability and uptime.

Features

  • Patient queue management across all screens
  • Foreground service to monitor app state and auto-reopen if terminated or backgrounded
  • SignalR integration for real-time updates
  • Persistent logging with automatic log file rotation
  • Dynamic app versioning
  • Modular architecture with ViewModels and Services

Getting Started

Prerequisites

  • Flutter SDK (>=3.0.0)
  • Dart (>=2.17.0)
  • Android Studio or Xcode for platform-specific builds

Installation

  1. Clone the repository:
    git clone https://github.com/your-org/HMG_QLine.git
    cd HMG_QLine
    
  2. Install dependencies:
    flutter pub get
    
  3. Run the app:
    flutter run
    

Project Structure

  • lib/ - Main source code
    • api/ - API integration
    • config/ - Configuration files
    • constants/ - App-wide constants
    • models/ - Data models
    • repositories/ - Data repositories
    • services/ - Business logic and background services
    • utilities/ - Utility functions
    • view_models/ - State management
    • views/ - UI screens
  • assets/ - Fonts, images, icons, and tones
  • android/, ios/, macos/, linux/, windows/ - Platform-specific code

Logging

  • Logs are saved in the device's external storage under /logs/
  • Log files are rotated every 48 hours
  • Each log entry includes a timestamp, source, and type

Foreground Service

  • Monitors app lifecycle
  • Automatically reopens or restarts the app if terminated or sent to background
  • Checks app status every minute

SignalR Integration

  • Reconnects automatically after disconnection
  • Ensures real-time updates for patient queues

Debugging

  • Debuggable builds can be enabled in android/app/build.gradle for troubleshooting

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License.

Queuing System Shell Scripts

This repository contains a set of shell scripts for managing Android devices running the HMG QLine application in a multi-device hospital environment. The scripts automate deployment, logging, restarting, and uninstallation tasks for efficient device management.

Features

  • Deploy APKs: Install and launch specific versions of the QLine app on multiple devices.
  • Restart App: Force-stop and relaunch the QLine app on all connected devices.
  • Uninstall App: Remove the QLine app from all connected devices.
  • Extract Logs: Pull log files from devices for troubleshooting and analysis.
  • Device Connection: Automatically connect to devices over Wi-Fi using IP addresses.

Folder Structure

queuing_system/
├── apks/                # APK files for different QLine app versions
├── logs/                # Data logs from devices
├── connect_devices.sh   # Script to connect to devices
├── deploy_qline.sh      # Script to deploy APKs
├── device_ips.txt       # List of device IP addresses
├── extract_logs.sh      # Script to extract logs from devices
├── restart_qline.sh     # Script to restart the app on devices
├── uninstall_qline.sh   # Script to uninstall the app

Getting Started

  1. Clone the repository:
    git clone <repo-url>
    cd queuing_system 
    
  2. Configure device IPs:
    • Add device IPs to a file (e.g., device_ips_all.txt), one per line.
  3. Prepare APKs:
    • Place APK files in the apks/ folder, named as per the versioning scheme.
  4. Run scripts:
    • Make scripts executable: chmod +x *.sh
    • Example: Deploy APKs
      ./deploy_qline.sh
      
    • Example: Extract logs from a device
      sh extract_logs.sh -ip <device_ip:port>
      

Script Commands (One by One)

Use the commands below with the appropriate IP list file.

Connect Devices

sh connect_devices.sh -ipfile device_ips_all.txt

Deploy QLine APK

sh deploy_qline.sh -ipfile device_ips_all.txt -version 9.2

Deploy to Single IP:

echo "10.70.6.143" > temp_ip.txt
sh deploy_qline.sh -ipfile temp_ip.txt -version 9.2
rm temp_ip.txt

Restart QLine App

sh restart_qline.sh -ipfile device_ips_all.txt

Uninstall QLine App

sh uninstall_qline.sh -ipfile device_ips_all.txt

Extract Logs (Single Device)

sh extract_logs.sh -ip <device_ip:port>

Extract Logs (All Devices)

sh extract_all_logs.sh -ipfile device_ips_all.txt

Clear Logs (Single Device)

sh clear_logs.sh -ip <device_ip:port>

Clear Logs (All Devices)

sh clear_logs_all.sh -ipfile device_ips_all.txt

Kill QLine App (All Devices)

sh kill_qline.sh -ipfile device_ips_all.txt

Requirements

  • macOS (tested)
  • Android SDK Platform Tools (adb)
  • Wi-Fi connection to devices

Notes

  • Ensure all devices are on the same Wi-Fi network (Cloud Solutions).
  • APKs and logs are ignored from version control via .gitignore.
  • Scripts are designed for hospital multi-floor deployments but can be adapted for other environments.

License

MIT License