Skip to content

becooq81/PillKaBoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

81 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PillKaBoo Logo

header

PillKaBπŸ‘€

Medication Recognition Medication Information Recognition of Prescription Time Label
Medication Recognition Medication Information Presription Time Label



Accurate Liquid Medication Intake Remaining Liquid Medication



Settings - Register Allergies Settings - Customize Colors Settings - Guide
Setting - Register Allergies Settings-Customize Colors Settings-Guide

Features

βœ… Recognize medication and retrieve information, such as child-specific warnings, dosage, expiry dates, allergy warnings for allergies you registered, etc.
βœ… Recognize prescribed medication packets to identify which part of the day for which the medicine is, and the prescription date
βœ… Pour the desired amount of liquid medication while being notified through audio feedback quickening as you approach the amount
βœ… Check the remaining amount of liquid medication in the container
βœ… Register your child's allergies to be warned of potential allergic reactions along with the child-specific warnings
βœ… Customize the color options to suit your color visibility

Architecture

Inspired by MVVM & Clean Architecture

ML

Our custom ML model is integrated into this repository with TensorFlow Lite.

assets/yolov8n.tflite

Directory organization

πŸ“‚lib
β”œβ”€ main.dart
β”œβ”€ index.dart
└─ πŸ“‚src
   β”œβ”€ πŸ“‚app
   β”‚  β”œβ”€ app_lifecycle_reactor.dart
   β”‚  β”œβ”€ background_service.dart
   β”‚  └─ global_audio_player.dart
   β”œβ”€ πŸ“‚core
   β”‚  β”œβ”€ internationalization.dart
   β”‚  β”œβ”€ lat_lng.dart
   β”‚  β”œβ”€ pillkaboo_model.dart
   β”‚  β”œβ”€ pillkaboo_util.dart
   β”‚  β”œβ”€ place.dart
   β”‚  └─ uploaded_file.dart.dart
   β”œβ”€ πŸ“‚data
   β”‚  └─ πŸ“‚local
   β”‚     β”œβ”€ πŸ“‚database
   β”‚     β”‚  β”œβ”€ barcode_db_helper.dart
   β”‚     β”‚  β”œβ”€ children_db_helper.dart
   β”‚     β”‚  β”œβ”€ ingredients_db_helper.dart
   β”‚     β”‚  └─ processed_file_db_helper.dart
   β”‚     └─ πŸ“‚shared_preference
   β”‚        └─ app_state.dart
   β”œβ”€ πŸ“‚nav
   β”‚  β”œβ”€ nav.dart
   β”‚  └─ serialization_util.dart
   β”œβ”€ πŸ“‚network
   β”‚  β”œβ”€ connectivity.dart
   β”‚  └─ download_file.dart
   β”œβ”€ πŸ“‚ui
   β”‚  β”œβ”€ πŸ“‚pages
   β”‚  β”‚     β”œβ”€ πŸ“‚liquid_med
   β”‚  β”‚     β”‚   β”œβ”€ πŸ“‚check_rest
   β”‚  β”‚     β”‚   β”‚  β”œβ”€ πŸ“‚check_rest_page
   β”‚  β”‚     β”‚   β”‚  β”‚  β”œβ”€ check_rest_page_model.dart
   β”‚  β”‚     β”‚   β”‚  β”‚  └─ check_rest_page_widget.dart
   β”‚  β”‚     β”‚   β”‚  └─ πŸ“‚check_rest_result_page
   β”‚  β”‚     β”‚   β”‚     β”œβ”€ check_rest_result_page_model.dart
   β”‚  β”‚     β”‚   β”‚     └─ check_rest_result_page_widget.dart
   β”‚  β”‚     β”‚   β”œβ”€ πŸ“‚liquid_med_submenu_page
   β”‚  β”‚     β”‚   β”‚  β”œβ”€ liquid_med_submenu_page_model.dart
   β”‚  β”‚     β”‚   β”‚  └─ liquid_med_submenu_page_widget.dart
   β”‚  β”‚     β”‚   └─ πŸ“‚pour_right
   β”‚  β”‚     β”‚      β”œβ”€ πŸ“‚pour_right_page
   β”‚  β”‚     β”‚      β”‚  β”œβ”€ pour_right_page_model.dart
   β”‚  β”‚     β”‚      β”‚  └─ pour_right_page_widget.dart
   β”‚  β”‚     β”‚      β”œβ”€ πŸ“‚pour_right_result_page
   β”‚  β”‚     β”‚      β”‚  β”œβ”€ pour_right_result_page_model.dart
   β”‚  β”‚     β”‚      β”‚  └─ pour_right_result_page_widget.dart
   β”‚  β”‚     β”‚      └─ πŸ“‚pour_right_slider_page
   β”‚  β”‚     β”‚         β”œβ”€ pour_right_slider_page_model.dart
   β”‚  β”‚     β”‚         └─ pour_right_slider_page_widget.dart
   β”‚  β”‚     β”œβ”€ πŸ“‚main_menu_page
   β”‚  β”‚     β”‚  β”œβ”€ main_menu_page_model.dart
   β”‚  β”‚     β”‚  └─ main_menu_page_widget.dart
   β”‚  β”‚     β”œβ”€ πŸ“‚med_recognition
   β”‚  β”‚     β”‚   β”œβ”€ πŸ“‚med_info_recognition
   β”‚  β”‚     β”‚   β”‚  β”œβ”€ πŸ“‚med_recognition_page
   β”‚  β”‚     β”‚   β”‚  β”‚  β”œβ”€ med_recognition_page_model.dart
   β”‚  β”‚     β”‚   β”‚  β”‚  └─ med_recognition_page_widget.dart
   β”‚  β”‚     β”‚   β”‚  └─ πŸ“‚med_info_page
   β”‚  β”‚     β”‚   β”‚     β”œβ”€ med_info_page_model.dart
   β”‚  β”‚     β”‚   β”‚     └─ med_info_page_widget.dart
   β”‚  β”‚     β”‚   β”œβ”€ πŸ“‚med_submenu_page
   β”‚  β”‚     β”‚   β”‚  β”œβ”€ med_submenu_page_model.dart
   β”‚  β”‚     β”‚   β”‚  └─ med_submenu_page_widget.dart
   β”‚  β”‚     β”‚   └─ πŸ“‚prescribed_med
   β”‚  β”‚     β”‚      β”œβ”€ πŸ“‚prescribed_med_recognition_page
   β”‚  β”‚     β”‚      β”‚  β”œβ”€ prescribed_med_recognition_page_model.dart
   β”‚  β”‚     β”‚      β”‚  └─ prescribed_med_recognition_page_widget.dart
   β”‚  β”‚     β”‚      └─ πŸ“‚prescribed_med_result_page
   β”‚  β”‚     β”‚         β”œβ”€ prescribed_med_result_page_model.dart
   β”‚  β”‚     β”‚         └─ prescribed_med_result_page_widget.dart
   β”‚  β”‚     └─ πŸ“‚settings
   β”‚  β”‚         β”œβ”€ πŸ“‚allergy
   β”‚  β”‚         β”‚  β”œβ”€ πŸ“‚allergy_add_page
   β”‚  β”‚         β”‚  β”‚  β”œβ”€ allergy_add_page_model.dart
   β”‚  β”‚         β”‚  β”‚  └─ allergy_add_page_widget.dart
   β”‚  β”‚         β”‚  └─ πŸ“‚allergy_list_page
   β”‚  β”‚         β”‚     β”œβ”€ allergy_list_page_model.dart
   β”‚  β”‚         β”‚     └─ allergy_list_page_widget.dart
   β”‚  β”‚         β”œβ”€ πŸ“‚help_page
   β”‚  β”‚         β”‚  β”œβ”€ help_page_model.dart
   β”‚  β”‚         β”‚  └─ help_page_widget.dart
   β”‚  β”‚         β”œβ”€ πŸ“‚pick_color_page
   β”‚  β”‚         β”‚  β”œβ”€ pick_color_page_model.dart
   β”‚  β”‚         β”‚  └─ pick_color_page_widget.dart
   β”‚  β”‚         └─ πŸ“‚settings_menu_page
   β”‚  β”‚            β”œβ”€ settings_menu_page_model.dart
   β”‚  β”‚            └─ settings_menu_page_widget.dart
   β”‚  β”œβ”€ πŸ“‚styles
   β”‚  β”‚  β”œβ”€ pillkaboo_icon_button.dart
   β”‚  β”‚  β”œβ”€ pillkaboo_theme.dart
   β”‚  β”‚  └─ pillkaboo_widgets.dart
   β”‚  β”œβ”€ πŸ“‚widgets
   β”‚  β”‚  β”œβ”€ πŸ“‚components
   β”‚  β”‚  β”‚  β”œβ”€ gesture_slider.dart
   β”‚  β”‚  β”‚  └─ home_button_widget.dart
   β”‚  β”‚  β”œβ”€ πŸ“‚features
   β”‚  β”‚  β”‚  β”œβ”€ check_rest_widget.dart
   β”‚  β”‚  β”‚  β”œβ”€ med_recognizer_widget.dart
   β”‚  β”‚  β”‚  β”œβ”€ pour_right_widget.dart
   β”‚  β”‚  β”‚  └─ prescribed_med_recognizer_widget.dart
   β”‚  β”‚  β”œβ”€ πŸ“‚views
   β”‚  β”‚  β”‚  β”œβ”€ barcode_detector_view.dart
   β”‚  β”‚  β”‚  β”œβ”€ camera_view.dart
   β”‚  β”‚  β”‚  β”œβ”€ detector_view.dart
   β”‚  β”‚  β”‚  └─ text_detector_view.dart
   β”‚  β”‚  └─ pillkaboo_widgets.dart
   └─ πŸ“‚utils
      β”œβ”€ coordinates_translator.dart
      β”œβ”€ date_parser.dart
      └─ liquid_volume_estimator.dart

Getting started

PillKaBoo is on App Store and Google Play Store in South Korea

  • Currently, our service is only available in Korean and (in the case of medication recognition feature) medicine products registered in South Korea. We plan to expand the service internationally. In the meantime, send us an email if you wish the service in your country sooner!

How to run code

  1. git clone ...
  2. git pull origin main
  3. flutter pub get
  4. flutter run

Requirements

sdk: ">=3.0.0 <4.0.0"