A full-featured Android application for managing medical appointments, treatment records, and billing β built for both Patients and Doctors.
Add your screenshots here after uploading them to the repo
| Role Select | Patient Dashboard | Doctor Dashboard |
|---|---|---|
![]() |
![]() |
![]() |
| Book Appointment | Today's Appointments | Generate Bill |
|---|---|---|
![]() |
![]() |
![]() |
| Feature | Description |
|---|---|
| π Registration & Login | Create a new patient account securely via Firebase Auth |
| π€ View Profile | View personal details β name, age, gender, phone, address |
| π Book Appointment | Select a doctor, pick a date & time, describe symptoms |
| π§Ύ Bill History | View bills from all completed appointments |
| π Treatment History | View prescription, disease, and progress from past visits |
| Feature | Description |
|---|---|
| π©Ί Doctor Profile | View personal profile and specialization |
| β³ Pending Appointments | See all appointments waiting for action |
| π Today's Appointments | View today's schedule β Accept or Reject each appointment |
| π Update Treatment | Add disease diagnosis, prescription, and progress notes |
| π° Generate Bill | Create itemized bills with consultation and medicine fees |
| π Patient History | View treatment records of all previously treated patients |
| Technology | Purpose |
|---|---|
| Java | Primary programming language |
| XML | UI layouts |
| Firebase Authentication | Secure login and registration |
| Firebase Realtime Database | Cloud data storage and sync |
| Material Design Components | Modern UI (Cards, TextInputLayout, Buttons) |
| RecyclerView | Efficient list rendering |
| Android DatePickerDialog | Date selection for appointments |
| Android TimePickerDialog | Time selection for appointments |
MedicalManagementSystem/
β
βββ app/src/main/
β βββ java/com/example/medicalmanagementsystem/
β β β
β β βββ MainActivity.java # Role selection screen
β β βββ LoginActivity.java # Login for patient & doctor
β β βββ RegisterActivity.java # Registration for patient & doctor
β β β
β β βββ patient/
β β β βββ PatientDashboardActivity.java
β β β βββ PatientProfileActivity.java
β β β βββ BookAppointmentActivity.java
β β β βββ BillHistoryActivity.java
β β β βββ TreatmentHistoryActivity.java
β β β
β β βββ doctor/
β β β βββ DoctorDashboardActivity.java
β β β βββ DoctorProfileActivity.java
β β β βββ PendingAppointmentsActivity.java
β β β βββ TodaysAppointmentsActivity.java
β β β βββ HistoryUpdateActivity.java
β β β βββ GenerateBillActivity.java
β β β βββ PatientHistoryActivity.java
β β β βββ AppointmentAdapter.java
β β β
β β βββ model/
β β βββ User.java
β β βββ Appointment.java
β β βββ Bill.java
β β βββ Treatment.java
β β
β βββ res/
β βββ layout/
β β βββ activity_main.xml
β β βββ activity_login.xml
β β βββ activity_register.xml
β β βββ activity_patient_dashboard.xml
β β βββ activity_patient_profile.xml
β β βββ activity_book_appointment.xml
β β βββ activity_doctor_dashboard.xml
β β βββ activity_history_update.xml
β β βββ activity_generate_bill.xml
β β βββ activity_list.xml
β β βββ item_appointment.xml
β β βββ item_bill.xml
β β βββ item_treatment.xml
β β
β βββ values/
β β βββ strings.xml
β β βββ colors.xml
β β βββ themes.xml
β β
β βββ drawable/
β βββ spinner_bg.xml
β
βββ google-services.json # Firebase config (not pushed to GitHub)
βββ build.gradle
βββ AndroidManifest.xml
Firebase Realtime Database
β
βββ users/
β βββ {uid}/
β βββ uid
β βββ name
β βββ email
β βββ phone
β βββ role # "patient" or "doctor"
β βββ age
β βββ gender
β βββ specialization
β βββ address
β
βββ appointments/
β βββ {appointmentId}/
β βββ appointmentId
β βββ patientId
β βββ doctorId
β βββ patientName
β βββ doctorName
β βββ date
β βββ time
β βββ status # pending / accepted / rejected / completed
β βββ symptoms
β
βββ treatments/
β βββ {treatmentId}/
β βββ treatmentId
β βββ appointmentId
β βββ patientId
β βββ doctorId
β βββ patientName
β βββ doctorName
β βββ disease
β βββ prescription
β βββ progress
β βββ date
β
βββ bills/
βββ {billId}/
βββ billId
βββ appointmentId
βββ patientId
βββ doctorId
βββ patientName
βββ doctorName
βββ date
βββ consultationFee
βββ medicineFee
βββ totalAmount
βββ status # paid / unpaid
- Android Studio (latest version recommended)
- Java JDK 8 or higher
- A Firebase account (free)
- Android device or emulator with API 21+
1. Clone the repository
git clone https://github.com/YOUR_USERNAME/MedicalManagementSystem.git
cd MedicalManagementSystem2. Set up Firebase
- Go to Firebase Console
- Create a new project named
MedicalManagementSystem - Add an Android app with package name
com.example.medicalmanagementsystem - Download
google-services.json - Place it inside the
app/folder of this project - Enable Authentication β Email/Password
- Enable Realtime Database β Start in test mode
3. Open in Android Studio
- Open Android Studio
- Click File β Open β select the cloned folder
- Wait for Gradle to sync
4. Run the App
- Connect your Android device via USB (enable USB Debugging)
- Or launch an emulator from Device Manager
- Click the green βΆ Run button
Set these rules in Firebase Console β Realtime Database β Rules:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}Launch App
β
βββ Select Role
β βββ Patient β Login / Register
β βββ Doctor β Login / Register
β
βββ Patient Flow
β βββ Dashboard
β βββ View Profile
β βββ Book Appointment (select doctor, date, time, symptoms)
β βββ View Bill History
β βββ View Treatment History
β
βββ Doctor Flow
βββ Dashboard
βββ View Profile
βββ Pending Appointments
βββ Today's Appointments β Accept / Reject
βββ Update Treatment (disease, prescription, progress)
βββ Generate Bill (consultation + medicine fee)
βββ Patient History (all treated patients)
// Firebase
implementation platform('com.google.firebase:firebase-bom:32.7.0')
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-database'
// UI
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.11.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.3.2'Contributions are welcome! Here's how:
- Fork the repository
- Create a new branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add YourFeature') - Push to the branch (
git push origin feature/YourFeature) - Open a Pull Request
This project is licensed under the MIT License β see the LICENSE file for details.
Your Name
- GitHub: @Sumamasonia
- LinkedIn: SumamaSonia
- Firebase for backend services
- Material Design for UI components
- Android Developers for documentation
Made with β€οΈ for a better healthcare experience





