Skip to content

docare-apps/docare-android-app

Repository files navigation

Docare - Doctor Appointment Booking App

Docare is a mobile application that facilitates medical appointment booking and doctor-patient interactions. The project consists of two main modules: Doctor (for healthcare providers) and Patient(for users seeking medical consultations). Additionally, a Core module contains shared functionalities used across both applications.

Overview

This project follows the Clean Architecture principle, structured by feature-based division, and contains two separate applications within the same project:

  • Doctor App: Designed for doctors to manage appointments.
  • Patient App: Designed for patients to book appointments.

A Core Module is included to hold shared code between both apps, ensuring code reusability and maintainability.

Each feature is organized into three main layers:

  • Presentation Layer: Contains UI components and ViewModels.
  • Domain Layer: Defines business logic, including repository interfaces, use cases, and services.
  • Data Layer: Manages data sources, models, and repository implementations.

This structure promotes scalability, testability, and maintainability by clearly separating concerns.

📂 Project Structure

Docare/                                        # Root project folder
|-- doctor/                                    # Doctor-specific application module
|   |-- src/main/java/com/example/doctor/
|   |   |-- features/                          # Contains all features related to doctors
|   |   |   |-- feature1/                      # A specific feature (e.g., Appointments)
|   |   |   |   |-- presentation/              # UI-related components (MVVM)
|   |   |   |   |   |-- viewmodel/             # ViewModels (business logic for UI)
|   |   |   |   |   |-- view/                  # UI components (Screens, Components)
|   |   |   |   |   |   |-- screen/            # Full-screen UI pages
|   |   |   |   |   |   |-- component/         # Reusable UI elements (buttons, cards)
|   |   |   |   |-- domain/                    # Business logic layer (Use Cases, Interfaces)
|   |   |   |   |   |-- repository/            # Repository interfaces (abstract data sources)
|   |   |   |   |   |-- service/               # Service classes (API calls, utilities)
|   |   |   |   |-- data/                      # Data layer (Repositories, Models)
|   |   |   |   |   |-- model/                 # Data models (DTOs, Entities)
|   |   |   |   |   |-- repository/            # Repository implementations, (e.g., Local database (Room, SQLite, SharedPreferences) or Remote data sources (API calls, Firebase))
|   |   |   |-- feature2/                      # Another feature (e.g., Doctor Profile)
|   |   |   |   |-- presentation/              # UI-related components
|   |   |   |   |-- domain/                    # Business logic
|   |   |   |   |-- data/                      # Data layer
|   |   |-- config/                            # Configuration files (App settings, Constants)
|   |   |-- workers/                           # Background tasks (WorkManager, Coroutines)
|   |   |-- navigation/                        # Navigation management (Jetpack Navigation)
|   |   |-- utils/                             # Utility functions (extensions, helpers)
|
|-- patient/                                   # Patient-specific application module
|   |-- src/main/java/com/example/patient/
|   |   |-- features/                          # Contains all features related to patients
|   |   |   |-- feature3/                      # A specific feature (e.g., Booking)
|   |   |   |   |-- presentation/              # UI components
|   |   |   |   |-- domain/                    # Business logic layer
|   |   |   |   |-- data/                      # Data layer
|   |   |-- config/                            # Configuration files
|   |   |-- workers/                           # Background tasks
|   |   |-- navigation/                        # Navigation management
|   |   |-- utils/                             # Utility functions
|
|-- core/                                      # Shared module (common functionality)
|   |-- src/main/java/com/example/core/
|   |   |-- common/                            # Shared logic
|   |   |   |-- service/                       # Common services (e.g., Auth)
|   |   |   |-- model/                         # Shared models across the project
|   |   |   |-- repository/                    # Shared repositories
|   |   |-- hardware/                          # Access to mobile hardware features
|   |   |   |-- fingerprint/                   # Fingerprint authentication
|   |   |   |-- camera/                        # Camera-related functionality
|   |   |   |-- location/                      # GPS & location services
|   |   |-- database/                          # Shared database (Room, SQLite)
|   |   |-- utils/                             # Shared utility functions
|
|-- build.gradle.kts                           # Project-level Gradle configuration
|-- settings.gradle.kts                        # Gradle settings file

🛠️ Installation & Setup

  1. Clone the github repository:

    git clone https://github.com/docare-apps/docare-android-app.git
  2. Open the project in Android Studio.

  3. Sync Gradle and build the project.

  4. Run the app on an emulator or a real device.

🤝 Contribution

We welcome contributions! Please follow these steps:

  1. Clone the github repository.
  2. Create a new branch for your feature.
  3. Make your changes and commit them.
  4. Push your branch and create a Pull Request.

Made with ❤️ by the Docare Team.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages