# HMG Patient App

A comprehensive Flutter-based mobile application for HMG (Habib Medical Group) patients,
providing seamless healthcare services and patient management features.

## 📱 Features

- **Patient Registration & Authentication**: Secure login and registration system
- **Appointment Management**: Book, reschedule, and manage medical appointments
- **Medical Records**: Access to personal health records and medical history
- **Doctor Consultation**: Video consultations and chat with healthcare providers
- **Health Monitoring**: Track vital signs and health metrics
- **Prescription Management**: View and manage prescriptions
- **Payment Integration**: Secure payment processing for medical services
- **Multi-language Support**: Available in English and Arabic
- **Push Notifications**: Real-time updates for appointments and health reminders
- **Calendar Integration**: Sync appointments with device calendar
- **Location Services**: Find nearby hospitals and clinics

## 🚀 Getting Started

### Prerequisites

- Flutter SDK (>=3.0.0)
- Dart SDK (>=3.0.0)
- Android Studio / VS Code
- Android SDK (for Android development)
- Xcode (for iOS development, macOS only)

### Installation

1. **Clone the repository:**
   ```bash
   git clone <repository-url>
   cd HMG_Patient_App_New
   ```

2. **Install dependencies:**
   ```bash
   flutter pub get
   ```

3. **Configure Firebase:**
    - Add your `google-services.json` file to `android/app/`
    - Add your `GoogleService-Info.plist` file to `ios/Runner/`

4. **Run the application:**
   ```bash
   flutter run
   ```

## 🏗️ Project Structure

```
lib/
├── core/                   # Core utilities and constants
├── extensions/             # Dart extensions
├── features/              # Feature-based modules
├── generated/             # Generated files (localization, etc.)
├── presentation/          # UI screens and widgets
├── routes/                # App navigation and routing
├── services/              # Business logic and API services
├── theme/                 # App theming and styling
├── widgets/               # Reusable UI components
├── main.dart              # App entry point
└── splashPage.dart        # Splash screen

assets/
├── animations/            # Lottie animations
├── fonts/                 # Custom fonts (Poppins, Gess Two)
├── images/                # PNG and SVG images
├── json/                  # JSON data files
└── langs/                 # Localization files
```

## 🛠️ Technologies Used

- **Framework**: Flutter
- **Language**: Dart
- **State Management**: [Your state management solution]
- **Backend Services**: Firebase
- **Authentication**: Firebase Auth
- **Database**: Cloud Firestore
- **Push Notifications**: Firebase Cloud Messaging
- **Maps**: Google Maps
- **Payment**: Amazon PayFort
- **Video Calling**: Flutter Zoom Video SDK
- **Local Storage**: SQLite, Shared Preferences

## 📱 Supported Platforms

- ✅ Android (API level 21+)
- ✅ iOS (iOS 12.0+)
- ✅ Foldable devices support
- ✅ Tablet optimization

## 🌐 Localization

The app supports multiple languages:

- English (en-US)
- Arabic (ar-SA)

## 🔧 Configuration

### Environment Setup

1. **API Keys**: Configure your API keys in the appropriate configuration files
2. **Firebase**: Set up Firebase project and add configuration files
3. **Maps**: Add Google Maps API key
4. **Payment**: Configure PayFort credentials

### Build Variants

- **Debug**: Development build with debugging enabled
- **Release**: Production-ready optimized build

## 📝 Development Guidelines

### Code Style

- Follow Dart/Flutter best practices
- Use consistent naming conventions
- Implement proper error handling
- Write comprehensive documentation

### Testing

```bash
# Run unit tests
flutter test

# Run integration tests
flutter test integration_test/
```

### Building for Production

**Android:**

```bash
flutter build apk --release
# or
flutter build appbundle --release
```

**iOS:**

```bash
flutter build ios --release
```

## 🤝 Contributing

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/new-feature`)
3. Commit your changes (`git commit -am 'Add new feature'`)
4. Push to the branch (`git push origin feature/new-feature`)
5. Create a Pull Request

## 📄 License

This project is proprietary software developed for HMG Healthcare Group.

**Built with ❤️ for better healthcare accessibility**
