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.
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.
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
-
Clone the github repository:
git clone https://github.com/docare-apps/docare-android-app.git
-
Open the project in Android Studio.
-
Sync Gradle and build the project.
-
Run the app on an emulator or a real device.
We welcome contributions! Please follow these steps:
- Clone the github repository.
- Create a new branch for your feature.
- Make your changes and commit them.
- Push your branch and create a Pull Request.
Made with ❤️ by the Docare Team.