Code Monkey home page Code Monkey logo

doctor-appoint-app's Introduction

Doctor Appointment Booking App

Welcome to the Doctor Appointment Booking App, a powerful Android application that simplifies the process of booking appointments with doctors. This app is designed to facilitate interaction between doctors and patients, making it easier for patients to find and book appointments with doctors in their area.

Features

  • Doctor Registration: Doctors can easily register on the app, providing their credentials and essential information.
  • Appointment Management: Doctors can view appointment requests from patients and approve or reject them as per their availability and schedule.
  • Patient Search: Patients can search for doctors in their area based on specific diseases or symptoms, ensuring they find the right healthcare professional for their needs.
  • Appointment Booking: Patients can book appointments with doctors, making the process simple and convenient.

Technology Stack

This app is developed using the following technologies:

  • Kotlin: The app is built in Kotlin, a modern and expressive programming language for Android development.
  • MVVM Architecture: We have implemented the Model-View-ViewModel architecture, making the codebase more organized and maintainable.
  • Dagger: Dagger is used for dependency injection, providing a clean and scalable way to manage dependencies in the app.
  • Retrofit: Retrofit is used for handling API requests and responses, ensuring seamless communication between the app and the server.
  • Data Binding: Data Binding is used to simplify the UI and keep it in sync with the underlying data models, making the app more responsive and reducing boilerplate code.

Installation

  1. Clone this repository to your local machine.
git clone https://github.com/jaykishan-sewak/doctor-appoint-app.git
  1. Open the project in Android Studio.

  2. Build and run the app on an Android emulator or physical device.

How to Use

  1. Doctor Registration:

    • Open the app and navigate to the registration section.
    • Provide your credentials and essential information to complete the registration process.
  2. Appointment Management:

    • After registration, doctors can view appointment requests from patients in the app.
    • Approve or reject appointments based on your availability and schedule.
  3. Patient Search:

    • Patients can use the search feature to find doctors in their area.
    • They can filter doctors based on specific diseases or symptoms.
  4. Appointment Booking:

    • Patients can view doctor profiles and book appointments with them.

License

This project is licensed under the MIT License.

Thank you for using the Doctor Appointment Booking App! If you have any questions or need support, feel free to reach out to us. Happy doctor-patient interactions!

doctor-appoint-app's People

Contributors

namratacn avatar vikas-infusion avatar harshpanchalinfusion avatar jaykishan-sewak avatar

Stargazers

 avatar

Watchers

 avatar

doctor-appoint-app's Issues

Feature - [User] Doctor Listing screen

Is your feature request related to a problem? Please describe.
When user successfully verify all the details and move to dashboard screen that time show a doctor list.

Add your acceptation criteria.
Show Doctor listing

UI
https://drive.google.com/file/d/10Pz6Id1SWGUM1aTQlC-CTffAutCfqnz4/view?usp=drive_link

  • List item should contain doctor name, gender, rating, degree and View button
  • On view Click user should navigate to book appointment screen

Estimation - 8 hours

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Bug - [App level] Fragment click issue

Describe the bug
Previous fragment click handing.

To Reproduce
Steps to reproduce the behavior:

  1. Go to any screen
  2. Click on that screen blank spot some time click event happen

Expected behavior
Avoid every previous fragment click event

Screenshots

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

User Sign up

User sign up screen design

ACs

  • This screen will contain email, password and confirm password fields.
  • All fields are mandatory so add validations, for email and password use same validation used in login screen after success sign up save data to user_data table
  • Once user is enters correct detail and do sign up then take user to login screen
  • Once user in the app check if isUserVerified flag is true or false(also co ordinate with @HarshPanchalInfusion as he will work on same functionality for doctor) if value is true then take user to Home screen otherwise show information popup with text "Please complete your profile to continue" with Ok and Cancel button if user press Ok then take user to update profile button and on pressing cancel exit the app.
  • User will have fields - name,email(not editable and with label "Verified" with green color on right side not clickable) , address, contacrNumber(clickable label "Verify" with yellow color), dob - All fields are mandatory so show validation accordingly.
  • Validation criteria - name and address - length must be more then 3 characters, dob - not null
  • Validation message name - "Name must have at least there characters"
  • Validation message address - "Address must have at least there characters"
  • Validation message dob - "Date of birth can not be empty"
  • For mobile verification user firebase otp service, when user click on Verify label on Contact number Field then take user to OTP screen
  • Design for OTP screen
  • Once OTP is verified then take user back to Profile screen and after all validations passed save user data to user_data table

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

OTP verify api

Description,

OTP verify when last field fill. Remove verify button.

UI issue

Description

Please hint and label text give different. Please refer login screen.

Below is SS

Screenshot 2023-08-14 at 4 18 49 PM

Related to
#16

Button should desable by default

Description
When user comes to login page, login button is enable - It should be disable

Steps

  • Go to login screen and observe the issue

Related to
#6

Feature - [Doctor] View appointments for selected date

All appointment for given date should be displayed here

Please consider below UI
https://drive.google.com/file/d/1UFfbKI4M2Atwt18h9NBourzu35Usnxzj/view?usp=drive_link

ACs

  • Display current date in toolbar title
  • Show calendar icon on toolbar right
  • Clicking on calendar icon will open calendar and user can select todays to future date
  • Pressing on ok will display appointmens of selected date
  • Display View button on each appointment and clicking on it will open appointment detail screen

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Scrolling issue

Description

Google sign button logo not show. if keyboard open or not. Screen not able to scroll in small device please check.

Below is SS

bug2

Related to
#6

Feature - [Doctor] - Home page

When doctor is logged in he/she would be landed on doctor's home

ACs

  • This screen will have tabs Appointment, Request, Profile.
  • Create and display blank fragment for each tabs.

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Feature - Add back icon

Is your feature request related to a problem? Please describe.
Please add back icon with title in action-bar in otp screen

Add your acceptation criteria.
user press on backIcon move to previous screen.

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Update doctor profile

Once doctor profile is created he/she should be navigate to profile screen until profile details are updated

  • When user try to login and user is doctor and isUserVerified flag is false then show information popup with text "Please complete your profile to continue" with Ok and Cancel button if user press Ok then take user to update profile button and on pressing cancel exit the app.
  • Screen will have field name, email(not editable)(clickable label "Verify" with yellow color on right side), address, contactNumber(clickable label "Verify" with yellow color), degree, speciality, availableDate(ignore in UI), availableDate, availableTime, images, isNotificationEnable, isEmailVerified, isPhoneNumverVerifiedd, isDoctor(not editable)
  • Above field are for doctor, same screen with different field will use so make screen in way that it can be useful for user also.
  • For email and phone number verification we will use firebase service.
  • For mobile verification user firebase otp service, when user click on Verify label on Contact number Field then take user to OTP screen
  • Design for OTP screen
  • Once OTP is verified then take user back to Profile screen and "Verify" label will Verified with green color this field will no more clickable
  • Design for Available date and Available time
  • Here all fields are mandatory so add validations, if all validation pass then update data in user table with flag isUserVerified =true
  • Validation criteria - name and address - length must be more then 3 characters, dob - not null
  • Validation message phone number - "Please enter valid phone number"
  • Validation message name - "Name must have at least there characters"
  • Validation message address - "Address must have at least there characters"
  • Validation message available date and time - "Please available date and time information"

For availableTime and available date UI design https://drive.google.com/file/d/1Y-0-Xr4iE4qU0bnurYfAzpBrTjZ2tpcr/view?usp=sharing

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Feature - Add Time,Holiday and weekOff UI

Is your feature request related to a problem? Please describe.

Label - avalibleTime

  • Right side addTime button
  • Click on addTime button open time select time and selected time show on rounded textview background.
  • Same way user add multiple times
  • when click on update all time store in array format.

Label - Holidays.

  • Right side addHolidays button
  • Click on it open calendar select date
  • Same way user add multiple holiday date
  • when click on update all dates store in array format.

Label - WeekOff

  • show 7 days check box.
  • User selected checkbox value string in string []array.

DB:
timing: object[]
holidays: date[]
weekOff: string[]

Add your acceptation criteria.
Describe all user acceptation criteria in detail

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Dashboard screen

Description,

After update doctor & user their profile move to their dashboard screen. Right now make empty screen.

Feature - Firebase crashlytics

Is your feature request related to a problem? Please describe.
Implement firbase crashlytics

Add your acceptation criteria.
Get every crash resport

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Delete Doctor

Delete doctor - only by Admin

  • Admin will be able to delete doctor
  • Show confirmation dialog first then delete the doctor

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Feature - [User] Book appointment screen

User can book doctor appoint ment

Screen UI link
https://drive.google.com/file/d/1gy8l0zEG-O7PDAliVfRsWTOfR0I2tthe/view?usp=drive_link

  • Display all doctor display here
  • User should be able see 15 days date only
  • If date or time slot is already booked then it would be disable
  • Book appointment button would enable by default
  • Show validation if user has not selected date and time slot
  • Show conformation before appointment book
  • Once appointment is booked it would be in pending for confirmation state

Estimation - 20 hours

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Feature - [Doctor] View appointment detail

Doctor can see detail of ucomming appointment

Please consider below UI
https://drive.google.com/file/d/1Cm423W52mx6uJHRo8BP2p9-5RF39kYXi/view?usp=drive_link

ACs

  • Display appointment details
  • If user come from Appointment request screen then show Confirm and Reject button
  • Clicking on Approve will ask for confirmation and approve the appointment in backend
  • Clicking on Reject will ask for confirmation and reject the appointment
  • If user come from appointment screen then show cancel button only
  • Clicking on cancel open dialog with Reason edittext and Confirm cancel button
  • On clicking on Confirm cancel will cancel the appointment

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Add Doctor Screen

Create screen for adding doctor using screen.

ACs

  • Screen will have field userId, name, email, address(ignore in UI), contactNumber, degree(ignore in UI), speciality(ignore in UI), availableDate(ignore in UI), availableTime(ignore in UI), images(ignore in UI), isNotificationEnable(toggle), isEmailVerified(ignore in UI, pass value as false, ), isPhoneNumverVerifiedd(ignore in UI, pass value as false), isDoctor(ignore in UI pass value as true), isAdmin(ignore in UI pass value as false)
  • Each fields which are in UI aremandatory so it should have validation, submit button will enabled after user enter valid data in all fields.
  • Name validation - Should contain at least 3 character. validation message "Name should contain at least 3 characters"
  • Email - no null And valid email
  • On submit click data should save in firestore table name user_data
  • After data added successfully it should display "Doctor information successfully saved."
  • User should move to login screen

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Bug - After login user press back any screen app close

Describe the bug
If user successfully login and move to any screen then user press back then application exist. Not move to login screen again

To Reproduce
Steps to reproduce the behavior:

  1. Go to login screen
  2. Enter admin data and click login
  3. Move to login dashboard screen
  4. then press device back then move to again login screen

Expected behavior
After login user press back with any screen app close.

Screenshots

Screenshot 2023-08-31 at 2 32 04 PM

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Bug -[Doctor] Update Doctor Profile Screen

Describe the bug
A clear and concise description of what the bug is.

  • Click on add slot show startTime and EndTime
  • if user selected StartTime value then endTime always after start time.
  • once one slot added then onwards slot added that time slot after value.
  • Add delete icon right side added time slot
  • Time 24 hrs

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Add user screen

Description,

  1. Please add action bar and title add user.
  2. Please mention equal space between fields.
  3. If date and month between 1 to 9 show please add 0 in that date like 01-08-2023
  4. Data reset issue
  5. api call for verify phone call 10 sec

Screenshot 2023-08-29 at 11 25 39 AM

Related to
#9

Signup issue

Description,

In signup screen password and confirm pass word not working.

Step 1. Enter password
Step 2. Enter same password in confirmation password change it show the error msg that is right also button disable.
Step 3. Enter same password in confirmation password and change value in old password then not show any error also button enable and data submit.

Screenshot 2023-08-29 at 11 19 51 AM

Related to,
#9

Admin side Doctor Listing

When admin logged in he should be able to see list of doctors registered in systesm

  • List screen should contain doctor basic info like name, gender, degree..
  • Pressing on item should take user to doctor detail screen
  • In detail screen topbar should contain doctor name and on right side show delete and edit icon
  • Pressing on delete should take confirmation first then delete the doctor please refre #31
  • Edit should take user to edit screen where doctor can edit doctor's information #8

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Update Doctor Profile UI changes

Description,

Hide progress on adding degree and specialisation.
Degree and specailization add border and show chip control below also add label.

UI issue

Description

  1. Password error message incorrect.
  2. Forgot password title missing. In task only ignore functionality mention.

Below is SS

bug1

Related to
#6

Feature - [User] Search doctors on doctors listing screen

User should able to search doctors from list of doctors

Add your acceptation criteria.

  • Minimum 3 character should be entered before search start
  • User should be able to search based on Name, gender and degree

Estimation - 6 hours

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Data Reset issue

Description,

In Profile screen user enter all the data then click on phone number verify label after that moving otp screen then fill otp and back to profile screen that time Degree and specialisation field empty.

Also if user select date and month between 1 to 9 range that time append 0 in this date. Right now show 8-9-2023 this way please change into like this way 08-09-2023.

Below is screen short
Screenshot 2023-08-29 at 11 05 16 AM

Related to,
#8

Update Doctor Profile

Doctor Edit screen

  • If Admin edits doctor email or phone then flag for phone and email verification should be changed to false
  • For degree and specification use chip control, and it should also allow to add new specification and degree
  • Show success edit message on success edit

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Add Doctor screen ui issue

Description

  • #1 As per discussion we have to mention email and phone number verification. In UI show email and phone number right side show a label verify. if both done then show verified. That things are missing in this UI.

  • #2 Please hint and label text give different. Please refer login screen.

  • Submit button UI is incorrect please refer SS

#1 #2 #3
Screenshot 2023-08-14 at 4 21 37 PM Screenshot 2023-08-14 at 4 18 49 PM Screenshot 2023-08-14 at 4 55 55 PM
#16

Bug -[UI] Some UI issue at user and doctor side.

Describe the bug
A clear and concise description of what the bug is.

  • Please check bottom bar option for user. 1. Search 2.My Appointments 3. Profile

  • When user select any option bar please change background color. In both user & doctor side.

  • Doctor side first tab Appointments by default selected and show only Approve Appointments.

  • Add icon

    • name for user
    • contact for phone
    • age

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Admin screen bugs

Please address below Admin screen bugs

  • Do not show back icon on toolbar
  • Back should not take user to login screen it should close the app
  • Long email should not cut make it elipse

Relates to #29

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

User login screen

Create screen for User login using screen.

  • Screen will have Logo, Login title, email input field, password input field, forgot password title(ignore functionality for now), Log in button, Don't have account Sign up label.
  • Fields are mandatory so display error messages when user type email and password. Email error - "Please enter valid email", Password - Password should contain atleast one small, one capital, one special symbol and should contain at least 8 characters.
  • Sign in button will be enabled after user enter valid email and password.
  • Sign up label would be clickable and should take user to Signup screen Home screen.
  • In case of failure, display dialog with information - for wrong credentials "You have entered wrong email or password"

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Admin home screen

When user do login check below things

  • If user is admin take user to home screen
  • Home screen will have Button in Floating button with + icon
  • Clicking on Add doctor will take user to Add doctor screen created by @HarshPanchalInfusion

Bug - [Admin] UI changes

Describe the bug

  1. doctor listing screen show phone number instead of email
  2. equal space issue on doctor listing screen in admin side
  3. cornor issue
  4. actionbar color is light version of statusbar
  5. verify otp time hide Loader
  6. OTP verifcation error message
  7. Loading issue on display doctor screen when user click on FAB and back to again main screen

To Reproduce
Steps to reproduce the behavior:

Expected behavior

Screenshots

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Bug - Doctor Details Screen

Describe the bug
A clear and concise description of what the bug is.

  • Edit and delete icon add in toolbar
  • delete confirmation call every time after visiting update screen

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Feature - [Doctor] View appointment request UI

Doctor will view up comming appointment request

Please consider below UI

ACs

https://drive.google.com/file/d/1UFfbKI4M2Atwt18h9NBourzu35Usnxzj/view?usp=drive_link

  • Display current date in toolbar title
  • Show calendar icon on toolbar right
  • Clicking on calendar icon will open calendar and user can select todays to future date
  • Pressing on ok will display appointmens of selected date
  • Display View button on each appointment and clicking on it will open appointment detail screen

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Name field take invalid value

Description

Name field take digit in initial stage. I think name start with character then if user want add digit then ok.

Screenshot 2023-08-14 at 4 51 58 PM

Related to
#16

Bug - Login Screen password only empty validation

Describe the bug
Login Screen password only empty validation

To Reproduce
Steps to reproduce the behavior:

  1. Go to login screen try to fill password that time show password validation

Expected behavior
show only empty password validation.

Screenshots
Screenshot 2023-09-01 at 4 30 51 PM

Check List

  • I have linked my PR with this task
  • I have added comment after completing this task
  • I have followed all guidelines for code

Add user in firebase for doctor - added by ADmin

We need to make some changes in Add doctor flow

  • When admin add all doctor information and Click on save it should follow below steps

  • User should be signed up using firebase sign up method

  • Pass Admin123 as password

  • After success signup add data to user_data table

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.