Online Health Consultation Application built with Flutter

Happy Care

Online Health Consultation Application built with Flutter for Client, ExpressJs for Backend Server (private repo sorry ?).



Features

  • Finding doctors, specializations by symptoms. (Currently, the feature is based on database, will upgrade with machine learning later)
  • Getting online doctors, busy doctors.
  • Asking member user about feeling today for finding doctor (30 mins loop).
  • Chatting, sending image 1v1 between doctors and members.
  • Doctors can create a new prescription for members.
  • Finding doctors by specialization.
  • User information CRUD.

Technology used

  • Flutter GetX pattern, GetX for state management. (actually I want to use BLOC (Rx) but I only have 1 month to complete so I use Getx to do it faster. But GetX’s build-in DI is so stupid)
  • Authentication and Authorization using JWT.
  • Backend using ExpressJs, MongoDB.
  • Realtime event using Socket.io.
  • Cloudinary for storing images.

Directory structure

project
│   README.md
│
│
└───lib
│   |
│   └───core
│   |   |
│   │   └───helpers <--[Helpers function like customShowDialog(context)]
│   |   |
│   │   └───themes  <--[Colors]
│   |   |
│   │   └───utils   <--[logger, validator, cache manager, sharedPref,..]
│   │
│   └───data
│   |   |
│   │   └───api  <-[Provider data from remote]
│   |   |
│   │   └───models
│   |   |
│   │   └───repositories
│   |   |
│   │   └───services
│   |           |
│   │           └───socket_io_service.dart  <--[Socket.io service]
│   │           |
│   │           └───cloudinary_service.dart <--[Cloudinary service]
│   │
│   └───modules <-[Screens, Controllers, Binding,... support modules]
│   |
│   └───routes  <-[Define routes and pages for named navigator, binding]
│   |
│   └───widgets <-[Common widgets for reusing]
│   |
│   └───main.dart
│
│
└───assets
        └───icons
        |
        └───images
        |
        └───logos
        |
        └───lottie <-[lottie animation]
        |
        └───.env <-[.env for environment]

Setup and run

Click to expand

  • Download APK
  • Setup and run
    • Flutter
      • Install Flutter.
      • Using stable channel:

        ❯ flutter channel stable
        ❯ flutter upgrade
      • Flutter doctor:
        ❯ flutter doctor
      • Install all the packages by:
        ❯ flutter pub get
      • Create .env file assets/.env has following structure:
        BASE_URL=https://komkat-happy-care.herokuapp.com
      • Run app on real devices or emulator by:
        ❯ flutter run

        or debug mode in VSCode or some IDEs

Screenshots (Running Stable in Mi 9)

Sorry for some UIs are not designed in advance, it will be not responsive for 16:9, not as beautiful as the intro, sign in, sign up because there is no time, just code in mind ?

Splash, Intro, SignIn, SignUp

View Screenshots

Splash Screen Intro1 Intro2
Intro3 Intro4
Sign In Sign Up

Main Screen (Member Role)

View Screenshots

Home Screen Choose if you feel good Choose if you feel bad to finding doctor
More Symptoms Result for choosing symptoms Choose Doctor
Search Chat Screen Chat Room
Chat With Typing Event Socket Image Preview Before Sending All Prescriptions
Detail Prescription Detail Information Member role Edit Information
Detail Information Doctor Change password dialog Dialog choose avatar
More news WebView

Main Screen (Doctor Role)

View Screenshots

Home Screen Chat Screen Chat Room
Chat With Typing Event Socket Create Precription Image Preview Before Sending
All Prescriptions Detail Prescription Edit a Prescription
Detail Information Doctor role Edit Information Dialog choose avatar
More news WebView

Some gif(s)

View gif(s)

Finding Doctor By Symptoms

Todo

  • WebRTC for voice, video call
  • Notifications
  • Rebuild UI (i think no no no because i am very lazy ?)

Contributors ✨


Nguyễn Minh Dũng
? ?

GitHub

View Github