A Final Year Project
View Report
Table of Contents
The project is a part of final year college project. Due to the current situation caused by Covid-19, Our team decided to contribute in the field of mobile health care system. The project uses 'symptom checker API' and simpler version of 'step detection algorithm' and also BMI calculation formula.The resources for the project are all open source and listed here (as much as I can remember).
- NodeJS (for server side)
- Flutter (for client side)
- MongoDB database
- Infermedica API (for symptom checking)
- scrcpy (for mirroring android screen to laptop)
- Online appointment
- Symptom checker
- Online survey
- Step Detection & BMI
- Order Medical Products
- Upload prescription ( only uploads images to server, view prescribtion list for admin is not done)
Note: Few other screen images can be found on screenshots folder
- Flutter v1.22.5
- NodeJs (2020 version)
- Infermedica API key (2020 version)
- MongoDB (2020 version)
- Android with screen size 1080 x 1920 pixels
- download & setup flutter v1.22.5, see this link for downgrading flutter version
- also download the NodeJs code from this link & set it up
- run the below commands
flutter pub get flutter pub run build_runner build flutter clean
- if vsync problem occurs, see this link & restart the IDE
- goto file api_constants.dart (ctrl-p and filename may help to find it easily in VScode)
- fill the api key & server url values, you can get ip address of server (if local) by running
ifconfig
in linux, make sure both server & client is on same network, infermedica api key can be found by signing in to inferemedica website, it has limited free usage as of the year 2020.- connect the android & run the command
flutter run
orflutter run --release
-
Basic flutter
- youtube, udemy & documentations, any resource is enough
-
state management in flutter
- Bloc : for same purpose as cubit, only used for authentication part
- Cubit : for state that fetches data from API (CRUD)
- Cubit_CUD : cubit that deals with Create, Upate & Delete operation
- Cubit_R : cubit that deals with Read operation
- provider : for local UI state (ex. toggling login & register screen, detecting current open tab etc)
- Setstate : (for quick & rough implementation, can be improved with cubit or provider)
-
Flutter app design architecture
- DDD (Domain Driven Design) without any tests and minor rough implementations
- Reso coders videos on DDD + few other's videos on same topic, better to go through TDD first
-
Images used from various github repos + google
Distributed under the MIT License. See LICENSE
for more information.