diff --git a/.DS_Store b/.DS_Store
index 45ec2a2d..bb29be06 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
index 3192a264..d6c36b79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,15 +1,12 @@
-# *database/auto.cnf
-# *database/binlog.index
-# *database/mysql.sock
-File_Storage
-database/
+mih_minio/
+mih_db/
+mih_git/
+mih_nginx/
+mih_monitor/
+mih_wp/
certbot/
Firebase-emulator/
Mzansi_Mail/
-# database/ibdata1
-# database/mysql.ibd
-# database/undo*
-# database/#innodb_redo/#ib_redo*
.venv
google-chrome-stable_current_amd64.deb
.env
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 1727d8f0..e21f3f8c 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -6,14 +6,14 @@
"configurations": [
{
"name": "Debug",
- "cwd": "Frontend",
+ "cwd": "mih_ui",
"request": "launch",
"type": "dart",
"program": "lib/main_dev.dart"
},
{
"name": "Profile",
- "cwd": "Frontend",
+ "cwd": "mih_ui",
"request": "launch",
"type": "dart",
"flutterMode": "profile",
@@ -21,7 +21,7 @@
},
{
"name": "Release",
- "cwd": "Frontend",
+ "cwd": "mih_ui",
"request": "launch",
"type": "dart",
"flutterMode": "release",
diff --git a/Frontend/.metadata b/Frontend/.metadata
deleted file mode 100644
index 369b5ece..00000000
--- a/Frontend/.metadata
+++ /dev/null
@@ -1,45 +0,0 @@
-# This file tracks properties of this Flutter project.
-# Used by Flutter tool to assess capabilities and perform upgrades etc.
-#
-# This file should be version controlled and should not be manually edited.
-
-version:
- revision: "8defaa71a77c16e8547abdbfad2053ce3a6e2d5b"
- channel: "stable"
-
-project_type: app
-
-# Tracks metadata for the flutter migrate command
-migration:
- platforms:
- - platform: root
- create_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- base_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- - platform: android
- create_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- base_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- - platform: ios
- create_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- base_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- - platform: linux
- create_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- base_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- - platform: macos
- create_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- base_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- - platform: web
- create_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- base_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- - platform: windows
- create_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
- base_revision: 8defaa71a77c16e8547abdbfad2053ce3a6e2d5b
-
- # User provided section
-
- # List of Local paths (relative to this file) that should be
- # ignored by the migrate tool.
- #
- # Files that are not part of the templates will be ignored by default.
- unmanaged_files:
- - 'lib/main.dart'
- - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/Frontend/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/Frontend/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
deleted file mode 100644
index 05feb272..00000000
Binary files a/Frontend/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/Frontend/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
deleted file mode 100644
index 64e9ebd5..00000000
Binary files a/Frontend/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/Frontend/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
deleted file mode 100644
index 1b92456d..00000000
Binary files a/Frontend/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/Frontend/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
deleted file mode 100644
index ad2ee7cc..00000000
Binary files a/Frontend/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/Frontend/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
deleted file mode 100644
index a48bf43b..00000000
Binary files a/Frontend/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/Frontend/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
deleted file mode 100644
index 8f34cbf2..00000000
Binary files a/Frontend/android/app/src/main/res/mipmap-hdpi/launcher_icon.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/mipmap-mdpi/launcher_icon.png b/Frontend/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
deleted file mode 100644
index 935dc98a..00000000
Binary files a/Frontend/android/app/src/main/res/mipmap-mdpi/launcher_icon.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/Frontend/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
deleted file mode 100644
index 69af77d0..00000000
Binary files a/Frontend/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/Frontend/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
deleted file mode 100644
index 7efcae44..00000000
Binary files a/Frontend/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/Frontend/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
deleted file mode 100644
index 4851d018..00000000
Binary files a/Frontend/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png and /dev/null differ
diff --git a/Frontend/android/app/src/main/res/values/colors.xml b/Frontend/android/app/src/main/res/values/colors.xml
deleted file mode 100644
index ebc7fcbd..00000000
--- a/Frontend/android/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- #6641b2
-
- #6641b2
- #E0D1FF
-
-
-
\ No newline at end of file
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
deleted file mode 100644
index eb0d9681..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
deleted file mode 100644
index 50448018..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
deleted file mode 100644
index 1e83b209..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
deleted file mode 100644
index 219448ba..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
deleted file mode 100644
index 005256df..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
deleted file mode 100644
index cc0e28c6..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
deleted file mode 100644
index f3eff92c..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
deleted file mode 100644
index 1e83b209..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
deleted file mode 100644
index 7b301398..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
deleted file mode 100644
index a4e616cd..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
deleted file mode 100644
index 256a7dcf..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
deleted file mode 100644
index ed9c8e49..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
deleted file mode 100644
index f04afdd6..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
deleted file mode 100644
index 9c8a5ee9..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
deleted file mode 100644
index a4e616cd..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
deleted file mode 100644
index d66e8d6f..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
deleted file mode 100644
index 8f34cbf2..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
deleted file mode 100644
index 7efcae44..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
deleted file mode 100644
index 97adcb5a..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
deleted file mode 100644
index f5e89303..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
deleted file mode 100644
index 5c581327..00000000
Binary files a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ
diff --git a/Frontend/lib/mih_config/mih_theme.dart b/Frontend/lib/mih_config/mih_theme.dart
deleted file mode 100644
index 7d102ad2..00000000
--- a/Frontend/lib/mih_config/mih_theme.dart
+++ /dev/null
@@ -1,321 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import "package:universal_html/html.dart" as html;
-
-class MihTheme {
- // late int _mainColor;
- // late int _secondColor;
- //late int _errColor;
- //late int _succColor;
- // late int _mesColor;
- late String mode;
- late String screenType;
- late AssetImage loading;
- late String loadingAssetText;
- late TargetPlatform platform;
- bool kIsWeb = const bool.fromEnvironment('dart.library.js_util');
- String latestVersion = "1.2.4";
- // Options:-
- // f3f9d2 = Cream
- // f0f0c9 = cream2
- // caffd0 = light green
- // B0F2B4 = light grean 2 *
- // 85bda6 = light green 3
- // 70f8ba = green
- // F7F3EA = white
- // a63446 = red
- //747474
-
- MihTheme() {
- mode = "Dark";
- //_errColor = 0xffD87E8B;
- //_succColor = 0xffB0F2B4;
- //_mesColor = 0xffc8c8c8d9;
- }
-
- ThemeData getData(bool bool) {
- return ThemeData(
- fontFamily: 'Segoe UI',
- scaffoldBackgroundColor: MihColors.getPrimaryColor(mode == "Dark"),
- // pageTransitionsTheme: PageTransitionsTheme(
- // builders: Map.fromIterable(
- // TargetPlatform.values,
- // value: (dynamic _) => const FadeUpwardsPageTransitionsBuilder(),
- // ),
- // ),
- colorScheme: ColorScheme(
- brightness: getBritness(),
- primary: MihColors.getSecondaryColor(mode == "Dark"),
- onPrimary: MihColors.getPrimaryColor(mode == "Dark"),
- secondary: MihColors.getPrimaryColor(mode == "Dark"),
- onSecondary: MihColors.getSecondaryColor(mode == "Dark"),
- error: MihColors.getRedColor(mode == "Dark"),
- onError: MihColors.getPrimaryColor(mode == "Dark"),
- surface: MihColors.getPrimaryColor(mode == "Dark"),
- onSurface: MihColors.getSecondaryColor(mode == "Dark"),
- ),
- datePickerTheme: DatePickerThemeData(
- backgroundColor: MihColors.getPrimaryColor(mode == "Dark"),
- headerBackgroundColor: MihColors.getSecondaryColor(mode == "Dark"),
- headerForegroundColor: MihColors.getPrimaryColor(mode == "Dark"),
- ),
- appBarTheme: AppBarTheme(
- color: MihColors.getSecondaryColor(mode == "Dark"),
- foregroundColor: MihColors.getPrimaryColor(mode == "Dark"),
- titleTextStyle: TextStyle(
- color: MihColors.getPrimaryColor(mode == "Dark"),
- fontSize: 25,
- fontWeight: FontWeight.bold,
- ),
- ),
- floatingActionButtonTheme: FloatingActionButtonThemeData(
- backgroundColor: MihColors.getSecondaryColor(mode == "Dark"),
- foregroundColor: MihColors.getPrimaryColor(mode == "Dark"),
- extendedTextStyle:
- TextStyle(color: MihColors.getPrimaryColor(mode == "Dark")),
- ),
- drawerTheme: DrawerThemeData(
- backgroundColor: MihColors.getPrimaryColor(mode == "Dark"),
- ),
- // Text selection / cursor color
- textSelectionTheme: TextSelectionThemeData(
- cursorColor: MihColors.getPrimaryColor(mode == "Dark"),
- selectionColor:
- MihColors.getPrimaryColor(mode == "Dark").withOpacity(0.25),
- selectionHandleColor: MihColors.getPrimaryColor(mode == "Dark"),
- ),
- tooltipTheme: TooltipThemeData(
- decoration: BoxDecoration(
- color: MihColors.getSecondaryColor(mode == "Dark"),
- borderRadius: BorderRadius.circular(6),
- border: Border.all(
- width: 1.0,
- color: MihColors.getPrimaryColor(mode == "Dark"),
- ),
- boxShadow: [
- BoxShadow(
- color:
- MihColors.getPrimaryColor(mode == "Dark").withOpacity(0.18),
- blurRadius: 6,
- offset: const Offset(0, 2),
- ),
- ],
- ),
- textStyle: TextStyle(
- color: MihColors.getPrimaryColor(mode == "Dark"),
- fontSize: 13,
- height: 1.2,
- ),
- waitDuration: const Duration(milliseconds: 500),
- showDuration: const Duration(seconds: 3),
- preferBelow: true,
- verticalOffset: 24,
- padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
- triggerMode: TooltipTriggerMode.longPress,
- ),
- // // Input decoration (text fields) theme
- // inputDecorationTheme: InputDecorationTheme(
- // filled: true,
- // fillColor: mode == "Dark"
- // ? MihColors.getPrimaryColor(true).withOpacity(0.06)
- // : MihColors.getPrimaryColor(false).withOpacity(0.03),
- // contentPadding:
- // const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
- // border: OutlineInputBorder(
- // borderRadius: BorderRadius.circular(8),
- // borderSide:
- // BorderSide(color: MihColors.getSecondaryColor(mode == "Dark")),
- // ),
- // enabledBorder: OutlineInputBorder(
- // borderRadius: BorderRadius.circular(8),
- // borderSide: BorderSide(
- // color:
- // MihColors.getSecondaryColor(mode == "Dark").withOpacity(0.6)),
- // ),
- // focusedBorder: OutlineInputBorder(
- // borderRadius: BorderRadius.circular(8),
- // borderSide: BorderSide(
- // color: MihColors.getSecondaryColor(mode == "Dark"), width: 2),
- // ),
- // hintStyle: TextStyle(
- // color:
- // MihColors.getSecondaryColor(mode == "Dark").withOpacity(0.7)),
- // labelStyle:
- // TextStyle(color: MihColors.getSecondaryColor(mode == "Dark")),
- // errorStyle: TextStyle(color: MihColors.getRedColor(mode == "Dark")),
- // ),
- );
- }
-
- String getPlatform() {
- // if (isPwa()) {
- // if (platform == TargetPlatform.android) {
- // return "Android";
- // } else if (platform == TargetPlatform.iOS) {
- // return "iOS";
- // }
- // } else
- if (kIsWeb) {
- return "Web";
- } else if (!kIsWeb) {
- if (platform == TargetPlatform.android) {
- return "Android";
- } else if (platform == TargetPlatform.iOS) {
- return "iOS";
- }
- }
- return "Other";
- }
-
- bool isPwa() {
- return html.window.matchMedia('(display-mode: standalone)').matches;
- }
-
- void setMode(String m) {
- mode;
- }
-
- String getLatestVersion() {
- return latestVersion;
- }
-
- ThemeData getThemeData() {
- return getData(mode == "Dark");
- }
-
- ThemeData darkMode() {
- return getData(mode == "Dark");
- }
-
- ThemeData lightMode() {
- return getData(mode == "Dark");
- }
-
- Brightness getBritness() {
- if (mode == "Dark") {
- return Brightness.dark;
- } else {
- return Brightness.light;
- }
- }
-
- // Color messageTextColor() {
- // if (mode == "Dark") {
- // _mesColor = 0XFFc8c8c8;
- // } else {
- // _mesColor = 0XFF747474;
- // }
- // return Color(_mesColor);
- // }
-
- // Color errorColor() {
- // if (mode == "Dark") {
- // return const Color(0xffD87E8B);
- // } else {
- // return const Color(0xffbb3d4f);
- // }
- // //return Color(_errColor);
- // }
-
- // Color highlightColor() {
- // if (mode == "Dark") {
- // return const Color(0XFF9bc7fa);
- // } else {
- // return const Color(0XFF354866);
- // }
- // }
-
- // Color successColor() {
- // if (mode == "Dark") {
- // return const Color(0xffB0F2B4);
- // } else {
- // return const Color(0xff56a95b);
- // }
- // }
-
- // AssetImage loadingImage() {
- // if (mode == "Dark") {
- // loading = const AssetImage(
- // 'lib/mih_package_components/assets/images/loading_light.gif',
- // );
- // } else {
- // loading = const AssetImage(
- // 'lib/mih_package_components/assets/images/loading_dark.gif',
- // );
- // }
- // return loading;
- // }
-
- // AssetImage altLoadingImage() {
- // if (mode == "Dark") {
- // loading = const AssetImage(
- // 'lib/mih_package_components/assets/images/loading_dark.gif',
- // );
- // } else {
- // loading = const AssetImage(
- // 'lib/mih_package_components/assets/images/loading_light.gif',
- // );
- // }
- // return loading;
- // }
-
- // String loadingImageLocation() {
- // if (mode == "Dark") {
- // loadingAssetText =
- // 'lib/mih_package_components/assets/images/loading_light.gif';
- // } else {
- // loadingAssetText =
- // 'lib/mih_package_components/assets/images/loading_dark.gif';
- // }
- // return loadingAssetText;
- // }
-
- // String altLoadingImageLocation() {
- // if (mode == "Dark") {
- // loadingAssetText =
- // 'lib/mih_package_components/assets/images/loading_dark.gif';
- // } else {
- // loadingAssetText =
- // 'lib/mih_package_components/assets/images/loading_light.gif';
- // }
- // return loadingAssetText;
- // }
-
- // AssetImage aiLogoImage() {
- // if (mode == "Dark") {
- // return const AssetImage(
- // 'lib/mih_package_components/assets/images/mzansi_ai-dark.png',
- // );
- // } else {
- // return const AssetImage(
- // 'lib/mih_package_components/assets/images/mzansi_ai-light.png',
- // );
- // }
- // }
-
- void setScreenType(double width) {
- if (width <= 800) {
- screenType = "mobile";
- } else {
- screenType = "desktop";
- }
- }
-
- // Color MihColors.getPrimaryColor(mode == "Dark") {
- // if (mode == "Dark") {
- // _mainColor = 0XFF3A4454;
- // } else {
- // _mainColor = 0XFFbedcfe;
- // }
- // return Color(_mainColor);
- // }
-
-// Color MihColors.getSecondaryColor(mode == "Dark") {
-// if (mode == "Dark") {
-// _secondColor = 0XFFbedcfe;
-// } else {
-// _secondColor = 0XFF3A4454;
-// }
-// return Color(_secondColor);
-// }
-}
diff --git a/Frontend/lib/mih_package_components/mih_dropdwn_field.dart b/Frontend/lib/mih_package_components/mih_dropdwn_field.dart
deleted file mode 100644
index 9c0d6154..00000000
--- a/Frontend/lib/mih_package_components/mih_dropdwn_field.dart
+++ /dev/null
@@ -1,248 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:mzansi_innovation_hub/main.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-
-class MihDropdownField extends StatefulWidget {
- final TextEditingController controller;
- final String hintText;
- final bool requiredText;
- final List dropdownOptions;
- final bool editable;
- final bool enableSearch;
- final FormFieldValidator? validator;
- final Function(String?)? onSelected;
-
- const MihDropdownField({
- super.key,
- required this.controller,
- required this.hintText,
- required this.dropdownOptions,
- required this.requiredText,
- required this.editable,
- required this.enableSearch,
- this.validator,
- this.onSelected,
- });
-
- @override
- State createState() => _MihDropdownFieldState();
-}
-
-class _MihDropdownFieldState extends State {
- late List> menu;
-
- List> buildMenuOptions(List options) {
- List> menuList = [];
- for (final i in options) {
- menuList.add(DropdownMenuEntry(
- value: i,
- label: i,
- style: ButtonStyle(
- foregroundColor: WidgetStatePropertyAll(MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark")),
- ),
- ));
- }
- return menuList;
- }
-
- @override
- void didChangeDependencies() {
- super.didChangeDependencies();
- menu = buildMenuOptions(widget.dropdownOptions);
- }
-
- @override
- void initState() {
- super.initState();
- menu = widget.dropdownOptions
- .map((e) => DropdownMenuEntry(value: e, label: e))
- .toList();
- }
-
- @override
- Widget build(BuildContext context) {
- return Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Text(
- widget.hintText,
- style: TextStyle(
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- fontSize: 18,
- fontWeight: FontWeight.bold,
- ),
- ),
- if (!widget.requiredText)
- Text(
- "(Optional)",
- style: TextStyle(
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- fontSize: 15,
- fontWeight: FontWeight.bold,
- ),
- ),
- ],
- ),
- const SizedBox(height: 4),
- FormField(
- validator: widget.validator,
- autovalidateMode: AutovalidateMode.onUserInteraction,
- initialValue: widget.controller.text,
- builder: (field) {
- return Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Theme(
- data: Theme.of(context).copyWith(
- textSelectionTheme: TextSelectionThemeData(
- cursorColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- selectionColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark")
- .withValues(alpha: 0.3),
- selectionHandleColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- child: DropdownMenu(
- controller: widget.controller,
- dropdownMenuEntries: menu,
- enableSearch: widget.enableSearch,
- enableFilter: widget.enableSearch,
- enabled: widget.editable,
- textInputAction: widget.enableSearch
- ? TextInputAction.search
- : TextInputAction.none,
- requestFocusOnTap: widget.enableSearch,
- menuHeight: 400,
- expandedInsets: EdgeInsets.zero,
- textStyle: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- fontWeight: FontWeight.w500,
- ),
- trailingIcon: Icon(
- Icons.arrow_drop_down,
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- selectedTrailingIcon: Icon(
- Icons.arrow_drop_up,
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- leadingIcon: IconButton(
- onPressed: () {
- widget.controller.clear();
- field.didChange('');
- },
- icon: Icon(
- Icons.delete_outline_rounded,
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- onSelected: (String? selectedValue) {
- field.didChange(selectedValue);
- widget.onSelected?.call(selectedValue);
- },
- menuStyle: MenuStyle(
- backgroundColor: WidgetStatePropertyAll(
- MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark")),
- side: WidgetStatePropertyAll(
- BorderSide(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- width: 1.0),
- ),
- shape: WidgetStatePropertyAll(
- RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(
- 10), // Increase for more roundness
- ),
- ),
- ),
- inputDecorationTheme: InputDecorationTheme(
- errorStyle: const TextStyle(height: 0, fontSize: 0),
- contentPadding: const EdgeInsets.symmetric(
- horizontal: 10.0, vertical: 8.0),
- filled: true,
- fillColor: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- enabledBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(8.0),
- borderSide: BorderSide.none,
- ),
- focusedBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(8.0),
- borderSide: BorderSide(
- color: field.hasError
- ? MihColors.getRedColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark")
- : MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- width: 3.0,
- ),
- ),
- errorBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(8.0),
- borderSide: BorderSide(
- color: MihColors.getRedColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- width: 3.0,
- ),
- ),
- focusedErrorBorder: OutlineInputBorder(
- borderRadius: BorderRadius.circular(8.0),
- borderSide: BorderSide(
- color: MihColors.getRedColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- width: 3.0,
- ),
- ),
- ),
- ),
- ),
- if (field.hasError)
- Padding(
- padding: const EdgeInsets.only(left: 8.0, top: 4.0),
- child: Text(
- field.errorText ?? '',
- style: TextStyle(
- fontSize: 12,
- color: MihColors.getRedColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- fontWeight: FontWeight.bold,
- ),
- ),
- ),
- ],
- );
- },
- ),
- ],
- );
- }
-}
diff --git a/Frontend/lib/mih_packages/mine_sweeper/builders/build_minesweeper_leaderboard_list.dart b/Frontend/lib/mih_packages/mine_sweeper/builders/build_minesweeper_leaderboard_list.dart
deleted file mode 100644
index 9feb86c2..00000000
--- a/Frontend/lib/mih_packages/mine_sweeper/builders/build_minesweeper_leaderboard_list.dart
+++ /dev/null
@@ -1,113 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:mzansi_innovation_hub/main.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_circle_avatar.dart';
-import 'package:mzansi_innovation_hub/mih_providers/mih_mine_sweeper_provider.dart';
-import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import 'package:provider/provider.dart';
-
-class BuildMinesweeperLeaderboardList extends StatefulWidget {
- const BuildMinesweeperLeaderboardList({super.key});
-
- @override
- State createState() =>
- _BuildMinesweeperLeaderboardListState();
-}
-
-class _BuildMinesweeperLeaderboardListState
- extends State {
- Color getMedalColor(int index) {
- switch (index) {
- case (0):
- return MihColors.getGoldColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark");
- case (1):
- return MihColors.getSilverColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark");
- case (2):
- return MihColors.getBronze(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark");
- default:
- return MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark");
- }
- }
-
- @override
- Widget build(BuildContext context) {
- final double width = MediaQuery.sizeOf(context).width;
- return Consumer2(
- builder: (BuildContext context, MzansiProfileProvider profileProvider,
- MihMineSweeperProvider mineSweeperProvider, Widget? child) {
- return ListView.separated(
- shrinkWrap: true,
- physics: const NeverScrollableScrollPhysics(),
- separatorBuilder: (BuildContext context, index) {
- return Divider(
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- );
- },
- itemCount: mineSweeperProvider.leaderboard!.length,
- itemBuilder: (context, index) {
- return Padding(
- padding: EdgeInsets.symmetric(horizontal: width / 20),
- child: Row(
- children: [
- Text(
- "#${index + 1}",
- style: TextStyle(
- fontSize: 25,
- color: getMedalColor(index),
- ),
- ),
- const SizedBox(width: 10),
- MihCircleAvatar(
- key: UniqueKey(),
- imageFile:
- mineSweeperProvider.leaderboardUserPictures.isNotEmpty
- ? mineSweeperProvider.leaderboardUserPictures[index]
- : null,
- width: 80,
- editable: false,
- fileNameController: null,
- userSelectedfile: null,
- frameColor: getMedalColor(index),
- backgroundColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- onChange: () {},
- ),
- const SizedBox(width: 10),
- Column(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- "${mineSweeperProvider.leaderboard![index].username}${profileProvider.user!.username == mineSweeperProvider.leaderboard![index].username ? " (You)" : ""}",
- textAlign: TextAlign.left,
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.bold,
- color: getMedalColor(index),
- ),
- ),
- Text(
- "Score: ${mineSweeperProvider.leaderboard![index].game_score}\nTime: ${mineSweeperProvider.leaderboard![index].game_time}",
- textAlign: TextAlign.left,
- style: TextStyle(
- fontSize: 18,
- // fontWeight: FontWeight.bold,
- color: getMedalColor(index),
- ),
- ),
- ],
- )
- ],
- ),
- );
- },
- );
- },
- );
- }
-}
diff --git a/Frontend/lib/mih_packages/mine_sweeper/package_tools/mih_mine_sweeper_leader_board.dart b/Frontend/lib/mih_packages/mine_sweeper/package_tools/mih_mine_sweeper_leader_board.dart
deleted file mode 100644
index 0293fd0a..00000000
--- a/Frontend/lib/mih_packages/mine_sweeper/package_tools/mih_mine_sweeper_leader_board.dart
+++ /dev/null
@@ -1,204 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:font_awesome_flutter/font_awesome_flutter.dart';
-import 'package:ken_logger/ken_logger.dart';
-import 'package:mzansi_innovation_hub/main.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_dropdwn_field.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
-import 'package:mzansi_innovation_hub/mih_providers/mih_mine_sweeper_provider.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import 'package:mzansi_innovation_hub/mih_packages/mine_sweeper/builders/build_minesweeper_leaderboard_list.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_minesweeper_services.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
-import 'package:provider/provider.dart';
-
-class MihMineSweeperLeaderBoard extends StatefulWidget {
- const MihMineSweeperLeaderBoard({super.key});
-
- @override
- State createState() =>
- _MihMineSweeperLeaderBoardState();
-}
-
-class _MihMineSweeperLeaderBoardState extends State {
- TextEditingController filterController = TextEditingController();
- bool isLoading = true;
- Future initialiseLeaderboard() async {
- MihMineSweeperProvider mineSweeperProvider =
- context.read();
- filterController.text = mineSweeperProvider.difficulty;
- KenLogger.success("getting data");
- await MihMinesweeperServices().getTop20Leaderboard(mineSweeperProvider);
- List?> userPictures = [];
- String userPicUrl = "";
- for (final ranking in mineSweeperProvider.leaderboard!) {
- userPicUrl = await MihFileApi.getMinioFileUrl(ranking.proPicUrl);
- userPictures.add(NetworkImage(userPicUrl));
- }
- mineSweeperProvider.setLeaderboardUserPictures(
- leaderboardUserPictures: userPictures);
- setState(() {
- isLoading = false;
- });
- }
-
- void refreshLeaderBoard(
- MihMineSweeperProvider mineSweeperProvider, String difficulty) {
- setState(() {
- isLoading = true;
- });
- mineSweeperProvider.setDifficulty(difficulty);
- mineSweeperProvider.setLeaderboard(leaderboard: null);
- mineSweeperProvider.setMyScoreboard(myScoreboard: null);
- initialiseLeaderboard();
- }
-
- @override
- void initState() {
- super.initState();
- WidgetsBinding.instance.addPostFrameCallback((_) async {
- await initialiseLeaderboard();
- });
- }
-
- @override
- Widget build(BuildContext context) {
- final double width = MediaQuery.sizeOf(context).width;
- return Consumer(
- builder: (BuildContext context,
- MihMineSweeperProvider mineSweeperProvider, Widget? child) {
- return RefreshIndicator(
- onRefresh: () async {
- refreshLeaderBoard(mineSweeperProvider, filterController.text);
- },
- child: MihPackageToolBody(
- borderOn: false,
- bodyItem: getBody(width),
- ),
- );
- },
- );
- }
-
- Widget getBody(double width) {
- return Consumer(
- builder: (BuildContext context,
- MihMineSweeperProvider mineSweeperProvider, Widget? child) {
- if (isLoading) {
- return Center(
- child: Mihloadingcircle(),
- );
- } else {
- return SingleChildScrollView(
- physics: const AlwaysScrollableScrollPhysics(),
- child: Column(
- children: [
- Padding(
- padding: EdgeInsets.symmetric(horizontal: width / 20),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.end,
- mainAxisSize: MainAxisSize.max,
- children: [
- Flexible(
- child: MihDropdownField(
- controller: filterController,
- hintText: "Leaderboards",
- dropdownOptions: const [
- "Very Easy",
- "Easy",
- "Intermediate",
- "Hard",
- ],
- requiredText: true,
- editable: true,
- enableSearch: false,
- validator: (value) {
- return MihValidationServices().isEmpty(value);
- },
- onSelected: (selection) {
- refreshLeaderBoard(mineSweeperProvider, selection!);
- },
- ),
- ),
- ],
- ),
- ),
- const SizedBox(height: 10),
- !isLoading && mineSweeperProvider.leaderboard!.isEmpty
- ? Padding(
- padding: const EdgeInsets.symmetric(horizontal: 10.0),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- const SizedBox(height: 50),
- Icon(
- MihIcons.mineSweeper,
- size: 165,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- const SizedBox(height: 10),
- Text(
- "Be the first on the leaderboard.",
- textAlign: TextAlign.center,
- overflow: TextOverflow.visible,
- style: TextStyle(
- fontSize: 25,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!
- .theme
- .mode ==
- "Dark"),
- ),
- ),
- const SizedBox(height: 25),
- Center(
- child: RichText(
- textAlign: TextAlign.center,
- text: TextSpan(
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.normal,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!
- .theme
- .mode ==
- "Dark"),
- ),
- children: [
- TextSpan(text: "Press "),
- WidgetSpan(
- alignment: PlaceholderAlignment.middle,
- child: Icon(
- FontAwesomeIcons.bomb,
- size: 20,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!
- .theme
- .mode ==
- "Dark"),
- ),
- ),
- TextSpan(text: " and start a new game"),
- ],
- ),
- ),
- ),
- ],
- ),
- )
- : BuildMinesweeperLeaderboardList(),
- ],
- ),
- );
- }
- },
- );
- }
-}
diff --git a/Frontend/lib/mih_packages/mine_sweeper/package_tools/my_score_board.dart b/Frontend/lib/mih_packages/mine_sweeper/package_tools/my_score_board.dart
deleted file mode 100644
index 68bdefaa..00000000
--- a/Frontend/lib/mih_packages/mine_sweeper/package_tools/my_score_board.dart
+++ /dev/null
@@ -1,209 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:font_awesome_flutter/font_awesome_flutter.dart';
-import 'package:ken_logger/ken_logger.dart';
-import 'package:mzansi_innovation_hub/main.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_circle_avatar.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_dropdwn_field.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
-import 'package:mzansi_innovation_hub/mih_providers/mih_mine_sweeper_provider.dart';
-import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import 'package:mzansi_innovation_hub/mih_packages/mine_sweeper/builders/build_my_scoreboard_list.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_minesweeper_services.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
-import 'package:provider/provider.dart';
-
-class MyScoreBoard extends StatefulWidget {
- const MyScoreBoard({super.key});
-
- @override
- State createState() => _MihMineSweeperLeaderBoardState();
-}
-
-class _MihMineSweeperLeaderBoardState extends State {
- TextEditingController filterController = TextEditingController();
-
- Future initialiseLeaderboard() async {
- MzansiProfileProvider profileProvider =
- context.read();
- MihMineSweeperProvider mineSweeperProvider =
- context.read();
- filterController.text = mineSweeperProvider.difficulty;
- KenLogger.success("getting data");
- await MihMinesweeperServices()
- .getMyScoreboard(profileProvider, mineSweeperProvider);
- KenLogger.success("${mineSweeperProvider.myScoreboard}");
- }
-
- void refreshLeaderBoard(
- MihMineSweeperProvider mineSweeperProvider, String difficulty) {
- mineSweeperProvider.setDifficulty(difficulty);
- mineSweeperProvider.setLeaderboard(leaderboard: null);
- mineSweeperProvider.setMyScoreboard(myScoreboard: null);
- initialiseLeaderboard();
- }
-
- @override
- void initState() {
- super.initState();
- WidgetsBinding.instance.addPostFrameCallback((_) async {
- await initialiseLeaderboard();
- });
- }
-
- @override
- Widget build(BuildContext context) {
- final double width = MediaQuery.sizeOf(context).width;
- return Consumer(
- builder: (BuildContext context,
- MihMineSweeperProvider mineSweeperProvider, Widget? child) {
- return RefreshIndicator(
- onRefresh: () async {
- refreshLeaderBoard(mineSweeperProvider, filterController.text);
- },
- child: MihPackageToolBody(
- borderOn: false,
- bodyItem: getBody(width),
- ),
- );
- },
- );
- }
-
- Widget getBody(double width) {
- return Consumer2(
- builder: (BuildContext context, MzansiProfileProvider profileProvider,
- MihMineSweeperProvider mineSweeperProvider, Widget? child) {
- if (mineSweeperProvider.myScoreboard == null) {
- return Center(
- child: Mihloadingcircle(),
- );
- } else {
- return SingleChildScrollView(
- physics: const AlwaysScrollableScrollPhysics(),
- child: Column(
- children: [
- Center(
- child: MihCircleAvatar(
- imageFile: profileProvider.userProfilePicture,
- width: 150,
- editable: false,
- fileNameController: null,
- userSelectedfile: null,
- frameColor: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- backgroundColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- onChange: (selectedImage) {},
- key: ValueKey(profileProvider.userProfilePicUrl),
- ),
- ),
- Padding(
- padding: EdgeInsets.symmetric(horizontal: width / 20),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.end,
- mainAxisSize: MainAxisSize.max,
- children: [
- Flexible(
- child: MihDropdownField(
- controller: filterController,
- hintText: "Scoreboards",
- dropdownOptions: const [
- "Very Easy",
- "Easy",
- "Intermediate",
- "Hard",
- ],
- requiredText: true,
- editable: true,
- enableSearch: false,
- validator: (value) {
- return MihValidationServices().isEmpty(value);
- },
- onSelected: (selection) {
- refreshLeaderBoard(mineSweeperProvider, selection!);
- },
- ),
- ),
- ],
- ),
- ),
- const SizedBox(height: 10),
- mineSweeperProvider.myScoreboard!.isEmpty
- ? Padding(
- padding: const EdgeInsets.symmetric(horizontal: 10.0),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- const SizedBox(height: 50),
- Icon(
- MihIcons.mineSweeper,
- size: 165,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- const SizedBox(height: 10),
- Text(
- "You have played and ${mineSweeperProvider.difficulty} yet.",
- textAlign: TextAlign.center,
- overflow: TextOverflow.visible,
- style: TextStyle(
- fontSize: 25,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!
- .theme
- .mode ==
- "Dark"),
- ),
- ),
- const SizedBox(height: 25),
- Center(
- child: RichText(
- textAlign: TextAlign.center,
- text: TextSpan(
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.normal,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!
- .theme
- .mode ==
- "Dark"),
- ),
- children: [
- TextSpan(text: "Press "),
- WidgetSpan(
- alignment: PlaceholderAlignment.middle,
- child: Icon(
- FontAwesomeIcons.bomb,
- size: 20,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!
- .theme
- .mode ==
- "Dark"),
- ),
- ),
- TextSpan(text: " and start a new game"),
- ],
- ),
- ),
- ),
- ],
- ),
- )
- : BuildMyScoreBoardList(),
- ],
- ),
- );
- }
- },
- );
- }
-}
diff --git a/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart b/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart
deleted file mode 100644
index b4cd3caa..00000000
--- a/Frontend/lib/mih_packages/mzansi_directory/package_tools/mih_search_mzansi.dart
+++ /dev/null
@@ -1,556 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:ken_logger/ken_logger.dart';
-import 'package:mzansi_innovation_hub/main.dart';
-import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
-import 'package:mzansi_innovation_hub/mih_objects/business.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_dropdwn_field.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
-import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
-import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/builders/build_business_search_resultsList.dart';
-import 'package:mzansi_innovation_hub/mih_packages/mzansi_directory/builders/build_user_search_results_list.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_business_details_services.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_user_services.dart';
-import 'package:provider/provider.dart';
-
-class MihSearchMzansi extends StatefulWidget {
- const MihSearchMzansi({
- super.key,
- });
-
- @override
- State createState() => _MihSearchMzansiState();
-}
-
-class _MihSearchMzansiState extends State {
- final TextEditingController mzansiSearchController = TextEditingController();
- final TextEditingController businessTypeController = TextEditingController();
- final FocusNode searchFocusNode = FocusNode();
- // late bool userSearch;
- // Future?> futureUserSearchResults = Future.value();
- List userSearchResults = [];
- List businessSearchResults = [];
- late Future> availableBusinessTypes;
- bool filterOn = false;
- bool loadingSearchResults = false;
-
- Future swapPressed(MzansiProfileProvider profileProvider,
- MzansiDirectoryProvider directoryProvider) async {
- directoryProvider.setPersonalSearch(!directoryProvider.personalSearch);
- setState(() {
- if (filterOn) {
- filterOn = !filterOn;
- }
- });
- if (businessTypeController.text.isNotEmpty) {
- setState(() {
- businessTypeController.clear();
- });
- }
- await searchPressed(profileProvider, directoryProvider);
- }
-
- void clearAll(MzansiDirectoryProvider directoryProvider) {
- directoryProvider.setSearchedBusinesses(searchedBusinesses: []);
- directoryProvider.setSearchedUsers(searchedUsers: []);
- directoryProvider.setSearchTerm(searchTerm: "");
- setState(() {
- mzansiSearchController.clear();
- businessTypeController.clear();
- });
- }
-
- Future searchPressed(MzansiProfileProvider profileProvider,
- MzansiDirectoryProvider directoryProvider) async {
- setState(() {
- loadingSearchResults = true;
- });
- directoryProvider.setSearchTerm(searchTerm: mzansiSearchController.text);
- directoryProvider.setBusinessTypeFilter(
- businessTypeFilter: businessTypeController.text);
- if (directoryProvider.personalSearch &&
- directoryProvider.searchTerm.isNotEmpty) {
- final userResults = await MihUserServices()
- .searchUsers(profileProvider, directoryProvider.searchTerm, context);
- directoryProvider.setSearchedUsers(searchedUsers: userResults);
- } else {
- List? businessSearchResults = [];
- if (directoryProvider.businessTypeFilter.isNotEmpty) {
- businessSearchResults = await MihBusinessDetailsServices()
- .searchBusinesses(directoryProvider.searchTerm,
- directoryProvider.businessTypeFilter, context);
- } else if (directoryProvider.searchTerm.isNotEmpty) {
- businessSearchResults = await MihBusinessDetailsServices()
- .searchBusinesses(directoryProvider.searchTerm,
- directoryProvider.businessTypeFilter, context);
- }
- directoryProvider.setSearchedBusinesses(
- searchedBusinesses: businessSearchResults);
- }
- setState(() {
- loadingSearchResults = false;
- });
- }
-
- @override
- void dispose() {
- super.dispose();
- businessTypeController.dispose();
- mzansiSearchController.dispose();
- }
-
- @override
- void initState() {
- super.initState();
- MzansiDirectoryProvider directoryProvider =
- context.read();
- availableBusinessTypes =
- MihBusinessDetailsServices().fetchAllBusinessTypes();
- mzansiSearchController.text = "";
- WidgetsBinding.instance.addPostFrameCallback((_) async {
- directoryProvider.setSearchedUsers(searchedUsers: []);
- });
- }
-
- @override
- Widget build(BuildContext context) {
- final Size size = MediaQuery.sizeOf(context);
- final double width = size.width;
- return MihPackageToolBody(
- borderOn: false,
- bodyItem: getBody(width),
- );
- }
-
- Widget getBody(double width) {
- return Consumer2(
- builder: (BuildContext context, MzansiProfileProvider profileProvider,
- MzansiDirectoryProvider directoryProvider, Widget? child) {
- return MihSingleChildScroll(
- child: Column(
- children: [
- Padding(
- padding: EdgeInsets.symmetric(horizontal: width / 20),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Expanded(
- child: MihSearchBar(
- controller: mzansiSearchController,
- hintText: "Search Mzansi",
- prefixIcon: Icons.search,
- prefixAltIcon: directoryProvider.personalSearch
- ? Icons.person
- : Icons.business,
- suffixTools: [
- IconButton(
- onPressed: () {
- swapPressed(profileProvider, directoryProvider);
- },
- icon: Icon(
- Icons.swap_horiz_rounded,
- size: 35,
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- ],
- fillColor: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- hintColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- onPrefixIconTap: () {
- searchPressed(profileProvider, directoryProvider);
- },
- onClearIconTap: () {
- clearAll(directoryProvider);
- },
- searchFocusNode: searchFocusNode,
- ),
- ),
- Visibility(
- visible: !directoryProvider.personalSearch,
- child: const SizedBox(width: 10),
- ),
- Visibility(
- visible: !directoryProvider.personalSearch,
- child: IconButton(
- onPressed: () {
- if (filterOn) {
- clearAll(directoryProvider);
- }
- setState(() {
- filterOn = !filterOn;
- });
- },
- icon: Icon(
- !filterOn
- ? Icons.filter_list_rounded
- : Icons.filter_list_off_rounded,
- size: 35,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- ),
- ],
- ),
- ),
- const SizedBox(height: 10),
- FutureBuilder(
- future: availableBusinessTypes,
- builder: (context, asyncSnapshot) {
- List options = [];
- if (asyncSnapshot.connectionState == ConnectionState.done) {
- options.addAll(asyncSnapshot.data!);
- }
- return Visibility(
- visible: filterOn,
- child: Padding(
- padding: EdgeInsets.symmetric(horizontal: width / 20),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- Expanded(
- child: MihDropdownField(
- controller: businessTypeController,
- hintText: "Business Type",
- dropdownOptions: options,
- requiredText: true,
- editable: true,
- enableSearch: true,
- ),
- ),
- const SizedBox(width: 10),
- MihButton(
- onPressed: () {
- if (businessTypeController.text.isNotEmpty) {
- searchPressed(
- profileProvider, directoryProvider);
- } else {
- MihAlertServices().errorBasicAlert(
- "Business Type Not Selected",
- "Please ensure you have selected a Business Type before seareching for Businesses of Mzansi",
- context,
- );
- }
- },
- buttonColor: MihColors.getGreenColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- elevation: 10,
- child: Text(
- "Search",
- style: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!
- .theme
- .mode ==
- "Dark"),
- fontSize: 20,
- fontWeight: FontWeight.bold,
- ),
- ),
- ),
- ],
- ),
- ),
- );
- }),
- const SizedBox(height: 10),
- displaySearchResults(directoryProvider),
- ],
- ),
- );
- },
- );
- }
-
- Widget displayBusinessSearchResults(
- MzansiDirectoryProvider directoryProvider) {
- KenLogger.success(
- "Searched Businesses: ${directoryProvider.searchedBusinesses}");
- if (directoryProvider.searchedBusinesses == null || loadingSearchResults) {
- return Center(
- child: const Mihloadingcircle(),
- );
- } else if (directoryProvider.searchedBusinesses!.isNotEmpty) {
- // return Text("Pulled Data successfully");
- directoryProvider.searchedBusinesses!
- .sort((a, b) => a.Name.compareTo(b.Name));
- return Column(
- children: [
- Text(
- "Businesses of Mzansi",
- style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
- ),
- const SizedBox(height: 10),
- BuildBusinessSearchResultsList(
- businessList: directoryProvider.searchedBusinesses!,
- ),
- ],
- );
- } else if (directoryProvider.searchedBusinesses!.isEmpty &&
- directoryProvider.searchTerm.isNotEmpty) {
- // return Text("Pulled Data successfully");
- return Column(
- children: [
- const SizedBox(height: 50),
- Icon(
- MihIcons.iDontKnow,
- size: 165,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- const SizedBox(height: 25),
- Text(
- "Let's try refining your search",
- textAlign: TextAlign.center,
- overflow: TextOverflow.visible,
- style: TextStyle(
- fontSize: 25,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- ],
- );
- } else if (directoryProvider.searchedBusinesses!.isEmpty &&
- directoryProvider.searchTerm.isEmpty) {
- return Padding(
- padding: const EdgeInsets.symmetric(horizontal: 10.0),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- const SizedBox(height: 50),
- Icon(
- MihIcons.businessProfile,
- size: 165,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- const SizedBox(height: 10),
- Text(
- "Search for businesses of Mzansi!",
- textAlign: TextAlign.center,
- overflow: TextOverflow.visible,
- style: TextStyle(
- fontSize: 25,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- const SizedBox(height: 25),
- Center(
- child: RichText(
- textAlign: TextAlign.center,
- text: TextSpan(
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.normal,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- children: [
- TextSpan(text: "Press "),
- WidgetSpan(
- alignment: PlaceholderAlignment.middle,
- child: Icon(
- Icons.swap_horiz_rounded,
- size: 20,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- TextSpan(text: " to search for people of Mzansi"),
- ],
- ),
- ),
- ),
- const SizedBox(height: 10),
- Center(
- child: RichText(
- textAlign: TextAlign.center,
- text: TextSpan(
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.normal,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- children: [
- TextSpan(text: "Press "),
- WidgetSpan(
- alignment: PlaceholderAlignment.middle,
- child: Icon(
- Icons.filter_list_rounded,
- size: 20,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- TextSpan(text: " to filter business types"),
- ],
- ),
- ),
- ),
- ],
- ),
- );
- } else {
- return Center(
- child: Text(
- "Error pulling Patients Data\n/users/search/${directoryProvider.searchTerm}",
- style: TextStyle(
- fontSize: 25,
- color: MihColors.getRedColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark")),
- textAlign: TextAlign.center,
- ),
- );
- }
- }
-
- Widget displayPersonalSearchResults(
- MzansiDirectoryProvider directoryProvider) {
- if (directoryProvider.searchedUsers == null || loadingSearchResults) {
- return Center(
- child: const Mihloadingcircle(),
- );
- } else if (directoryProvider.searchedUsers!.isNotEmpty) {
- // return Text("Pulled Data successfully");
- directoryProvider.searchedUsers!
- .sort((a, b) => a.username.compareTo(b.username));
- return Column(
- children: [
- Text(
- "People of Mzansi",
- style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
- ),
- const SizedBox(height: 10),
- BuildUserSearchResultsList(
- userList: directoryProvider.searchedUsers!),
- ],
- );
- } else if (directoryProvider.searchedUsers!.isEmpty &&
- directoryProvider.searchTerm.isEmpty) {
- return Padding(
- padding: const EdgeInsets.symmetric(horizontal: 10.0),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- const SizedBox(height: 50),
- Icon(
- MihIcons.personalProfile,
- size: 165,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- const SizedBox(height: 10),
- Text(
- "Search for people of Mzansi!",
- textAlign: TextAlign.center,
- overflow: TextOverflow.visible,
- style: TextStyle(
- fontSize: 25,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- const SizedBox(height: 25),
- Center(
- child: RichText(
- textAlign: TextAlign.center,
- text: TextSpan(
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.normal,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- children: [
- TextSpan(text: "Press "),
- WidgetSpan(
- alignment: PlaceholderAlignment.middle,
- child: Icon(
- Icons.swap_horiz_rounded,
- size: 20,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- TextSpan(text: " to search for businesses of Mzansi"),
- ],
- ),
- ),
- ),
- ],
- ),
- );
- } else if (directoryProvider.searchedUsers!.isEmpty &&
- directoryProvider.searchTerm.isNotEmpty) {
- return Column(
- children: [
- const SizedBox(height: 50),
- Icon(
- MihIcons.iDontKnow,
- size: 165,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- const SizedBox(height: 10),
- Text(
- "Let's try refining your search",
- textAlign: TextAlign.center,
- overflow: TextOverflow.visible,
- style: TextStyle(
- fontSize: 25,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- ],
- );
- } else {
- return Center(
- child: Text(
- "Error pulling Patients Data\n/users/search/${directoryProvider.searchTerm}",
- style: TextStyle(
- fontSize: 25,
- color: MihColors.getRedColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark")),
- textAlign: TextAlign.center,
- ),
- );
- }
- }
-
- Widget displaySearchResults(MzansiDirectoryProvider directoryProvider) {
- if (directoryProvider.personalSearch) {
- return displayPersonalSearchResults(directoryProvider);
- } else {
- return displayBusinessSearchResults(directoryProvider);
- }
- }
-}
diff --git a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_profile.dart b/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_profile.dart
deleted file mode 100644
index e21ec303..00000000
--- a/Frontend/lib/mih_packages/mzansi_profile/personal_profile/package_tools/mih_personal_profile.dart
+++ /dev/null
@@ -1,182 +0,0 @@
-import 'package:file_picker/file_picker.dart';
-import 'package:flutter/material.dart';
-import 'package:mzansi_innovation_hub/main.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_circle_avatar.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
-import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/personal_profile/components/mih_edit_personal_profile_window.dart';
-import 'package:provider/provider.dart';
-
-class MihPersonalProfile extends StatefulWidget {
- const MihPersonalProfile({super.key});
-
- @override
- State createState() => _MihPersonalProfileState();
-}
-
-class _MihPersonalProfileState extends State {
- TextEditingController proPicController = TextEditingController();
- PlatformFile? newSelectedProPic;
-
- void editProfileWindow(double width) {
- showDialog(
- context: context,
- barrierDismissible: false,
- builder: (context) => Consumer(
- builder: (BuildContext context,
- MzansiProfileProvider mzansiProfileProvider, Widget? child) {
- return MihEditPersonalProfileWindow();
- },
- ),
- );
- }
-
- @override
- Widget build(BuildContext context) {
- double screenWidth = MediaQuery.of(context).size.width;
- return MihPackageToolBody(
- borderOn: false,
- innerHorizontalPadding: 10,
- bodyItem: getBody(screenWidth),
- );
- }
-
- Widget getBody(double width) {
- return Consumer(
- builder: (BuildContext context,
- MzansiProfileProvider mzansiProfileProvider, Widget? child) {
- if (mzansiProfileProvider.user == null) {
- //Change to new user flow
- return Center(
- child: Mihloadingcircle(),
- );
- } else {
- return MihSingleChildScroll(
- child: Padding(
- padding:
- MzansiInnovationHub.of(context)!.theme.screenType == "desktop"
- ? EdgeInsets.symmetric(horizontal: width * 0.2)
- : EdgeInsets.symmetric(horizontal: width * 0.075),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- Center(
- child: MihCircleAvatar(
- imageFile: mzansiProfileProvider.userProfilePicture,
- width: 150,
- editable: false,
- fileNameController: proPicController,
- userSelectedfile: newSelectedProPic,
- frameColor: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- backgroundColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- onChange: (selectedImage) {
- setState(() {
- newSelectedProPic = selectedImage;
- });
- },
- key: ValueKey(mzansiProfileProvider.userProfilePicUrl),
- ),
- ),
- FittedBox(
- child: Text(
- mzansiProfileProvider.user!.username.isNotEmpty
- ? mzansiProfileProvider.user!.username
- : "username",
- style: TextStyle(
- fontSize: 35,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- ),
- FittedBox(
- child: Text(
- mzansiProfileProvider.user!.fname.isNotEmpty
- ? "${mzansiProfileProvider.user!.fname} ${mzansiProfileProvider.user!.lname}"
- : "Name Surname",
- style: TextStyle(
- fontSize: 25,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- ),
- FittedBox(
- child: Text(
- mzansiProfileProvider.user!.type == "business"
- ? "Business".toUpperCase()
- : "Personal".toUpperCase(),
- style: TextStyle(
- fontSize: 15,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- ),
- const SizedBox(height: 10.0),
- Center(
- child: SizedBox(
- width: 700,
- child: Text(
- mzansiProfileProvider.user!.purpose.isNotEmpty
- ? mzansiProfileProvider.user!.purpose
- : "No Personal Mission added yet",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 15,
- fontWeight: FontWeight.bold,
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- ),
- ),
- ),
- ),
- const SizedBox(height: 30.0),
- Center(
- child: MihButton(
- onPressed: () {
- // Connect with the user
- editProfileWindow(width);
- },
- buttonColor: MihColors.getGreenColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- width: 300,
- child: Text(
- mzansiProfileProvider.user!.username.isEmpty
- ? "Set Up Profile"
- : "Edit Profile",
- style: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode ==
- "Dark"),
- fontSize: 20,
- fontWeight: FontWeight.bold,
- ),
- ),
- ),
- ),
- ],
- ),
- ),
- );
- }
- },
- );
- }
-}
diff --git a/Frontend/lib/mih_providers/mzansi_ai_provider.dart b/Frontend/lib/mih_providers/mzansi_ai_provider.dart
deleted file mode 100644
index a74520ca..00000000
--- a/Frontend/lib/mih_providers/mzansi_ai_provider.dart
+++ /dev/null
@@ -1,328 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:flutter_ai_toolkit/flutter_ai_toolkit.dart';
-import 'package:flutter_markdown_plus/flutter_markdown_plus.dart';
-import 'package:mzansi_innovation_hub/main.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
-import 'package:mzansi_innovation_hub/mih_providers/ollama_provider.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
-
-class MzansiAiProvider extends ChangeNotifier {
- bool ttsOn;
- int toolIndex;
- String? startUpQuestion;
- late OllamaProvider ollamaProvider;
-
- MzansiAiProvider({
- this.toolIndex = 0,
- this.ttsOn = false,
- }) {
- ollamaProvider = OllamaProvider(
- baseUrl: "${AppEnviroment.baseAiUrl}/api",
- model: AppEnviroment.getEnv() == "Prod" ? 'gemma3n:e4b' : "gemma3:1b",
- systemPrompt: "You are Mzansi AI, a helpful and friendly AI assistant running on the 'MIH App'.\n" +
- "The MIH App was created by 'Mzansi Innovation Hub', a South African-based startup company." +
- "Your primary purpose is to assist users by answering general questions and helping with creative writing tasks or any other task a user might have for you.\n" +
- "Maintain a casual and friendly tone, but always remain professional.\n" +
- "Strive for a balance between being empathetic and delivering factual information accurately.\n" +
- "You may use lighthearted or playful language if the context is appropriate and enhances the user experience.\n" +
- "You operate within the knowledge domain of the 'MIH App'.\n" +
- "Here is a description of the MIH App and its features:\n" +
- "MIH App Description: MIH is the first super app of Mzansi, designed to streamline both personal and business life. It's an all-in-one platform for managing professional profiles, teams, appointments, and quick calculations. \n" +
- "Key Features:\n" +
- "- Mzansi Profile: Central hub for managing personal and business information, including business team details." +
- "- Mzansi Wallet: Digitally store loyalty cards.\n" +
- "- Patient Manager (For Medical Practices): Seamless patient appointment scheduling and data management.\n" +
- "- Mzansi AI: Your friendly AI assistant for quick answers and support (that's you!).\n" +
- "- Mzansi Directory: A place to search and find out more about the people and businesses across Mzansi.\n" +
- "- Calendar: Integrated calendar for managing personal and business appointments.\n" +
- "- Calculator: Simple calculator with tip and forex calculation functionality.\n" +
- "- MIH Minesweeper: The first game from MIH! It's the classic brain-teaser ready to entertain you no matter where you are.\n" +
- "- MIH Access: Manage and view profile access security.\n" +
- "**Core Rules and Guidelines:**\n" +
- "- **Accuracy First:** Always prioritize providing correct information.\n" +
- "- **Uncertainty Handling:** If you are unsure about an answer, politely respond with: 'Please bear with us as we are still learning and do not have all the answers.'\n" +
- "- **Response Length:** Aim to keep responses under 250 words. If a more comprehensive answer is required, exceed this limit but offer to elaborate further (e.g., 'Would you like me to elaborate on this topic?').\n" +
- "- **Language & Safety:** Never use offensive language or generate harmful content. If a user presses for information that is inappropriate or out of bounds, clearly state why you cannot provide it (e.g., 'I cannot assist with that request as it goes against my safety guidelines.').\n" +
- "- **Out-of-Scope Questions:** - If a question is unclear, ask the user to rephrase or clarify it. - If a question is entirely out of your scope and you cannot provide a useful answer, admit you don't know. - If a user is unhappy with your response or needs further assistance beyond your capabilities, suggest they visit the 'Mzansi Innovation Hub Social Media Pages' for more direct support. Do not provide specific links, just refer to the pages generally.\n" +
- "- **Target Audience:** Adapt your explanations to beginners and intermediate users, but be prepared for more complex questions from expert users. Ensure your language is clear and easy to understand.\n",
- )..addListener(() {
- notifyListeners(); // Forward OllamaProvider notifications
- });
- }
-
- void reset() {
- toolIndex = 0;
- startUpQuestion = null;
- notifyListeners();
- }
-
- void setToolIndex(int index) {
- toolIndex = index;
- notifyListeners();
- }
-
- void setTTSstate(bool ttsOn) {
- this.ttsOn = ttsOn;
- notifyListeners();
- }
-
- void setStartUpQuestion(String? question) {
- startUpQuestion = question;
- notifyListeners();
- }
-
- void clearStartUpQuestion() {
- startUpQuestion = null;
- }
-
- MarkdownStyleSheet getLlmChatMarkdownStyle(BuildContext context) {
- TextStyle body = TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- fontSize: 16,
- fontWeight: FontWeight.w400,
- );
- TextStyle heading1 = TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- fontSize: 24,
- fontWeight: FontWeight.w400,
- );
- TextStyle heading2 = TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- fontSize: 20,
- fontWeight: FontWeight.w400,
- );
- TextStyle code = TextStyle(
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- fontSize: 16,
- fontWeight: FontWeight.w400,
- );
- BoxDecoration codeBlock = BoxDecoration(
- borderRadius: BorderRadius.only(
- topLeft: Radius.circular(10),
- topRight: Radius.circular(10),
- bottomLeft: Radius.circular(10),
- bottomRight: Radius.circular(10),
- ),
- color: MihColors.getHighlightColor(
- MzansiInnovationHub.of(context)!.theme.mode != "Dark"),
- boxShadow: [
- BoxShadow(
- color: Colors.black.withAlpha(76),
- blurRadius: 8,
- offset: Offset(2, 2),
- ),
- ],
- );
- return MarkdownStyleSheet(
- a: body,
- blockquote: body,
- checkbox: body,
- del: body,
- em: body.copyWith(fontStyle: FontStyle.italic),
- h1: heading1,
- h2: heading2,
- h3: body.copyWith(fontWeight: FontWeight.bold),
- h4: body,
- h5: body,
- h6: body,
- listBullet: body,
- img: body,
- strong: body.copyWith(fontWeight: FontWeight.bold),
- p: body,
- tableBody: body,
- tableHead: body,
- code: code,
- codeblockDecoration: codeBlock,
- );
- }
-
- LlmChatViewStyle? getChatStyle(BuildContext context) {
- return LlmChatViewStyle(
- backgroundColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- progressIndicatorColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- menuColor: Colors.black,
- // MihColors.getGreenColor(
- // MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- disabledButtonStyle: ActionButtonStyle(
- icon: MihIcons.mzansiAi,
- iconColor: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- iconDecoration: BoxDecoration(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- borderRadius: BorderRadius.circular(25),
- ),
- ),
- recordButtonStyle: ActionButtonStyle(
- iconColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- iconDecoration: BoxDecoration(
- color: MihColors.getGreenColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- borderRadius: BorderRadius.circular(25),
- ),
- textStyle: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- submitButtonStyle: ActionButtonStyle(
- icon: Icons.send,
- iconColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- iconDecoration: BoxDecoration(
- color: MihColors.getGreenColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- borderRadius: BorderRadius.circular(25),
- ),
- textStyle: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- stopButtonStyle: ActionButtonStyle(
- iconColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- iconDecoration: BoxDecoration(
- color: MihColors.getRedColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- borderRadius: BorderRadius.circular(25),
- ),
- textStyle: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- actionButtonBarDecoration: BoxDecoration(
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- borderRadius: BorderRadius.circular(25),
- ),
- // Mzansi AI Chat Style
- llmMessageStyle: LlmMessageStyle(
- icon: MihIcons.mzansiAi,
- iconColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- iconDecoration: BoxDecoration(
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- borderRadius: BorderRadius.circular(25),
- ),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.only(
- topRight: Radius.circular(25),
- bottomLeft: Radius.circular(25),
- bottomRight: Radius.circular(25),
- ),
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- boxShadow: [
- BoxShadow(
- color: Colors.black.withAlpha(76),
- blurRadius: 8,
- offset: Offset(2, 2),
- ),
- ],
- ),
- markdownStyle: getLlmChatMarkdownStyle(context),
- ),
- // User Chat Style
- userMessageStyle: UserMessageStyle(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.only(
- topLeft: Radius.circular(25),
- bottomLeft: Radius.circular(25),
- bottomRight: Radius.circular(25),
- ),
- color: MihColors.getGreenColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- boxShadow: [
- BoxShadow(
- color: Colors.black.withAlpha(76),
- blurRadius: 8,
- offset: Offset(2, 2),
- ),
- ],
- ),
- textStyle: TextStyle(
- fontSize: 16,
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- // User Input Style
- chatInputStyle: ChatInputStyle(
- backgroundColor: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- decoration: BoxDecoration(
- color: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- borderRadius: BorderRadius.circular(25),
- boxShadow: [
- BoxShadow(
- color: Colors.black.withAlpha(76),
- blurRadius: 8,
- offset: Offset(2, 2),
- ),
- ],
- ),
- hintStyle: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- hintText: "Ask Mzansi AI...",
- ),
- // Suggestions Style
- suggestionStyle: SuggestionStyle(
- decoration: BoxDecoration(
- borderRadius: BorderRadius.only(
- topLeft: Radius.circular(25),
- bottomLeft: Radius.circular(25),
- bottomRight: Radius.circular(25),
- ),
- color: MihColors.getGreenColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- boxShadow: [
- BoxShadow(
- color: Colors.black.withAlpha(76),
- blurRadius: 8,
- offset: Offset(2, 2),
- ),
- ],
- ),
- textStyle: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- copyButtonStyle: ActionButtonStyle(
- iconColor: MihColors.getSecondaryInvertedColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- editButtonStyle: ActionButtonStyle(
- iconColor: MihColors.getSecondaryInvertedColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- cancelButtonStyle: ActionButtonStyle(
- iconDecoration: BoxDecoration(
- color: MihColors.getRedColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- borderRadius: BorderRadius.circular(25),
- ),
- iconColor: MihColors.getSecondaryInvertedColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- textStyle: TextStyle(
- color: MihColors.getPrimaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- ),
- ),
- );
- }
-}
diff --git a/Frontend/web/favicon.png b/Frontend/web/favicon.png
deleted file mode 100644
index fac4164f..00000000
Binary files a/Frontend/web/favicon.png and /dev/null differ
diff --git a/Frontend/web/icons/Icon-192.png b/Frontend/web/icons/Icon-192.png
deleted file mode 100644
index 41602f9b..00000000
Binary files a/Frontend/web/icons/Icon-192.png and /dev/null differ
diff --git a/Frontend/web/icons/Icon-512.png b/Frontend/web/icons/Icon-512.png
deleted file mode 100644
index d75230b9..00000000
Binary files a/Frontend/web/icons/Icon-512.png and /dev/null differ
diff --git a/Frontend/web/icons/Icon-maskable-192.png b/Frontend/web/icons/Icon-maskable-192.png
deleted file mode 100644
index 41602f9b..00000000
Binary files a/Frontend/web/icons/Icon-maskable-192.png and /dev/null differ
diff --git a/Frontend/web/icons/Icon-maskable-512.png b/Frontend/web/icons/Icon-maskable-512.png
deleted file mode 100644
index d75230b9..00000000
Binary files a/Frontend/web/icons/Icon-maskable-512.png and /dev/null differ
diff --git a/backend/__pycache__/Robot.cpython-311.pyc b/backend/__pycache__/Robot.cpython-311.pyc
deleted file mode 100644
index 117f54dd..00000000
Binary files a/backend/__pycache__/Robot.cpython-311.pyc and /dev/null differ
diff --git a/backend/__pycache__/__init__.cpython-310.pyc b/backend/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index 783bad2e..00000000
Binary files a/backend/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/backend/__pycache__/main.cpython-310.pyc b/backend/__pycache__/main.cpython-310.pyc
deleted file mode 100644
index 85f6789e..00000000
Binary files a/backend/__pycache__/main.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/__init__.cpython-310.pyc b/backend/routers/__pycache__/__init__.cpython-310.pyc
deleted file mode 100644
index b00c5db2..00000000
Binary files a/backend/routers/__pycache__/__init__.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/docOffice.cpython-310.pyc b/backend/routers/__pycache__/docOffice.cpython-310.pyc
deleted file mode 100644
index 78a9036e..00000000
Binary files a/backend/routers/__pycache__/docOffice.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/docOffices.cpython-310.pyc b/backend/routers/__pycache__/docOffices.cpython-310.pyc
deleted file mode 100644
index 2b7959a2..00000000
Binary files a/backend/routers/__pycache__/docOffices.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/fileStorage.cpython-310.pyc b/backend/routers/__pycache__/fileStorage.cpython-310.pyc
deleted file mode 100644
index 5144fce8..00000000
Binary files a/backend/routers/__pycache__/fileStorage.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/getFunctions.cpython-310.pyc b/backend/routers/__pycache__/getFunctions.cpython-310.pyc
deleted file mode 100644
index 227436c2..00000000
Binary files a/backend/routers/__pycache__/getFunctions.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/medicine.cpython-310.pyc b/backend/routers/__pycache__/medicine.cpython-310.pyc
deleted file mode 100644
index 227323e2..00000000
Binary files a/backend/routers/__pycache__/medicine.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/patients.cpython-310.pyc b/backend/routers/__pycache__/patients.cpython-310.pyc
deleted file mode 100644
index f0d0b5f0..00000000
Binary files a/backend/routers/__pycache__/patients.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/patients_files.cpython-310.pyc b/backend/routers/__pycache__/patients_files.cpython-310.pyc
deleted file mode 100644
index 74fda05a..00000000
Binary files a/backend/routers/__pycache__/patients_files.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/patients_notes.cpython-310.pyc b/backend/routers/__pycache__/patients_notes.cpython-310.pyc
deleted file mode 100644
index d509cd61..00000000
Binary files a/backend/routers/__pycache__/patients_notes.cpython-310.pyc and /dev/null differ
diff --git a/backend/routers/__pycache__/users.cpython-310.pyc b/backend/routers/__pycache__/users.cpython-310.pyc
deleted file mode 100644
index a7e3153e..00000000
Binary files a/backend/routers/__pycache__/users.cpython-310.pyc and /dev/null differ
diff --git a/docker-compose.yml b/docker-compose.yml
index d464f423..5bc17734 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,48 +1,103 @@
+#============== MIH Network ====================================================================
+networks:
+ mih-network:
+ driver: bridge
+#============== MIH Containers ====================================================================
services:
- #============== API Hub ====================================================================
- api:
- build:
- context: ./backend
- target: builder
- container_name: MIH-API-Hub
- #command: sh -c "sleep 10s; uvicorn backend.main:app --reload --port=8080 --host=0.0.0.0"
- #============Dev=================
- # command: sh -c "sleep 10s; fastapi dev main.py --port 8080"
- #============prod=================
- #command: sh -c "sleep 10s; fastapi run backend/main.py --proxy-headers --port 8080"
+ #============== Nginx Proxy Server Old ====================================================================
+ # nginx:
+ # container_name: nginx
+ # restart: unless-stopped
+ # image: nginx
+ # ports:
+ # - 80:80
+ # - 443:443
+ # volumes:
+ # - ./nginx/nginx.conf:/etc/nginx/nginx.conf
+ # - certbotConf:/etc/letsencrypt
+ # - certbotChall:/var/www/certbot
+ # depends_on:
+ # - mih-ux
+ # networks:
+ # - mih-network
+ # profiles: [ 'prod' ]
+ #============== Cert Bot Old ====================================================================
+ # certbot:
+ # image: certbot/certbot
+ # container_name: certbot
+ # volumes:
+ # - certbotConf:/etc/letsencrypt
+ # - certbotChall:/var/www/certbot
+ # #command: certonly --test-cert --webroot -w /var/www/certbot --force-renewal --email yasienmeth@gmail.com -d mzansi-innovation-hub.co.za -d www.mzansi-innovation-hub.co.za --agree-tos
+ # command: certonly --webroot -w /var/www/certbot --force-renewal --email ${CERTBOT_EMAIL} -d ${CERTBOT_APP_DOMAIN} -d ${CERTBOT_API_DOMAIN} -d ${CERTBOT_STORAGE_DOMAIN} -d ${CERTBOT_MONITOR_DOMAIN} -d ${CERTBOT_AI_DOMAIN} --agree-tos
+ # networks:
+ # - mih-network
+ # depends_on:
+ # - nginx
+ # profiles: [ 'withCert' ]
+ #============== Nginx Proxy Manager ====================================================================
+ mih-nginx:
+ container_name: mih-nginx
+ image: 'jc21/nginx-proxy-manager:latest'
+ restart: unless-stopped
ports:
- - 8080:80
+ - '80:80' # Public HTTP
+ - '443:443' # Public HTTPS
+ - '81:81' # Admin Web Port
volumes:
- - ./backend:/app
+ - ./mih_nginx/data:/data
+ - ./mih_nginx/letsencrypt:/etc/letsencrypt
networks:
- - MIH-network
+ - mih-network
+#============== GITEA ====================================================================
+ mih-gitea:
+ image: gitea/gitea:latest
+ container_name: mih-gitea
+ environment:
+ - USER_UID=1000
+ - USER_GID=1000
+ - GITEA__database__DB_TYPE=mysql
+ - GITEA__database__HOST=mih-gitea-db:3306
+ - GITEA__database__NAME=${GITEA_SQL_DB}
+ - GITEA__database__USER=${GITEA_SQL_USER}
+ - GITEA__database__PASSWD=${GITEA_SQL_PW}
+ restart: always
+ networks:
+ - mih-network
+ volumes:
+ - ./mih_git/gitea:/data
+ - /etc/timezone:/etc/timezone:ro
+ - /etc/localtime:/etc/localtime:ro
+ ports:
+ - "3000:3000"
+ - "222:22"
depends_on:
- - mysqldb
- #============== My SQL DB ====================================================================
- mysqldb:
- #build: ./database/
- platform: linux/amd64
- image: mysql:5.7
- container_name: MIH-Database
+ mih-gitea-db:
+ condition: service_healthy
+ mih-gitea-db:
+ image: mysql:8.0
+ container_name: mih-gitea-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD: ${SQL_ROOT_PW}
- MYSQL_USER: ${SQL_USER}
- MYSQL_PASSWORD: ${SQL_USER_PW}
- MYSQL_DATABASE: ${SUPERTOKENS_DB}
+ - MYSQL_ROOT_PASSWORD=${GITEA_SQL_ROOT_PW}
+ - MYSQL_USER=${GITEA_SQL_USER}
+ - MYSQL_PASSWORD=${GITEA_SQL_PW}
+ - MYSQL_DATABASE=${GITEA_SQL_DB}
networks:
- - MIH-network
- ports:
- - '3306:3306'
+ - mih-network
volumes:
- - ./database:/var/lib/mysql
+ - ./mih_git/mysql:/var/lib/mysql
+ healthcheck:
+ test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
+ interval: 10s
+ timeout: 5s
+ retries: 5
#============== Super Token Auth ====================================================================
- supertokens:
- container_name: MIH-SuperTokens
+ mih-supertokens:
+ container_name: mih-supertokens
image: supertokens/supertokens-mysql:latest
- # image: registry.supertokens.io/supertokens/supertokens-mysql
depends_on:
- - mysqldb
+ - mih-db
ports:
- 3567:3567
environment:
@@ -51,12 +106,12 @@ services:
PASSWORD_RESET_TOKEN_LIFETIME: '7200000'
MYSQL_USER: ${SQL_USER}
MYSQL_PASSWORD: ${SQL_USER_PW}
- MYSQL_HOST: mysqldb
+ MYSQL_HOST: mih-db
MYSQL_PORT: 3306
MYSQL_DATABASE_NAME: ${SUPERTOKENS_DB}
API_KEYS: ${SUPERTOKENS_API_KEY}
networks:
- - MIH-network
+ - mih-network
restart: unless-stopped
healthcheck:
test: >
@@ -64,104 +119,130 @@ services:
interval: 10s
timeout: 5s
retries: 5
+ #============== MIH WordPress ====================================================================
+ mih-wordpress:
+ container_name: mih-wordpress
+ image: wordpress
+ restart: always
+ ports:
+ - 8081:80
+ environment:
+ WORDPRESS_DB_HOST: mih-wp-db
+ WORDPRESS_DB_USER: ${WP_SQL_USER}
+ WORDPRESS_DB_PASSWORD: ${WP_SQL_USER_PW}
+ WORDPRESS_DB_NAME: ${WP_SQL_DB}
+ volumes:
+ - ./mih_wp/ui:/var/www/html
+ networks:
+ - mih-network
+ mih-wp-db:
+ container_name: mih-wp-db
+ image: mariadb:10.11
+ restart: always
+ environment:
+ MARIADB_DATABASE: ${WP_SQL_DB}
+ MARIADB_USER: ${WP_SQL_USER}
+ MARIADB_PASSWORD: ${WP_SQL_USER_PW}
+ MARIADB_RANDOM_ROOT_PASSWORD: '1'
+ volumes:
+ - ./mih_wp/database:/var/lib/mysql
+ networks:
+ - mih-network
+ #============== MIH-UX Flutter ====================================================================
+ mih-ux:
+ container_name: mih-ux
+ build:
+ context: ./mih_ui
+ ports:
+ - "83:83"
+ networks:
+ - mih-network
+ depends_on:
+ - mih-api-hub
+ #============== API Hub ====================================================================
+ mih-api-hub:
+ build:
+ context: ./mih_api_hub
+ target: builder
+ container_name: mih-api-hub
+ ports:
+ - 8080:80
+ volumes:
+ - ./mih_api_hub:/app
+ networks:
+ - mih-network
+ depends_on:
+ - mih-db
+ #============== My SQL DB ====================================================================
+ mih-db:
+ platform: linux/amd64
+ image: mysql:5.7
+ container_name: mih-db
+ restart: always
+ environment:
+ MYSQL_ROOT_PASSWORD: ${SQL_ROOT_PW}
+ MYSQL_USER: ${SQL_USER}
+ MYSQL_PASSWORD: ${SQL_USER_PW}
+ MYSQL_DATABASE: ${SUPERTOKENS_DB}
+ networks:
+ - mih-network
+ ports:
+ - '3306:3306'
+ volumes:
+ - ./mih_db:/var/lib/mysql
#============== PHP My Admin ====================================================================
# phpmyadmin:
# platform: linux/amd64
# image: phpmyadmin/phpmyadmin
# container_name: MIH-phpmyadmin
# environment:
- # PMA_HOST: mysqlDB
+ # PMA_HOST: mih-db
# PMA_PORT: 3306
# PMA_ARBITRARY:
# networks:
- # - MIH-network
+ # - mih-network
# restart: always
# ports:
# - 8081:80
# depends_on:
- # - mysqldb
- #============== Nginx Proxy Server ====================================================================
- nginx:
- container_name: nginx
- restart: unless-stopped
- image: nginx
- ports:
- - 80:80
- - 443:443
- volumes:
- - ./nginx/nginx.conf:/etc/nginx/nginx.conf
- - certbotConf:/etc/letsencrypt
- - certbotChall:/var/www/certbot
- depends_on:
- - user-interface
- networks:
- - MIH-network
- profiles: [ 'prod' ]
- #============== MIH-UX Flutter ====================================================================
- user-interface:
- container_name: MIH-UX
- build:
- context: ./Frontend
- ports:
- - "83:83"
- networks:
- - MIH-network
- depends_on:
- - api
- #============== Cert Bot ====================================================================
- certbot:
- image: certbot/certbot
- container_name: certbot
- volumes:
- - certbotConf:/etc/letsencrypt
- - certbotChall:/var/www/certbot
- #command: certonly --test-cert --webroot -w /var/www/certbot --force-renewal --email yasienmeth@gmail.com -d mzansi-innovation-hub.co.za -d www.mzansi-innovation-hub.co.za --agree-tos
- command: certonly --webroot -w /var/www/certbot --force-renewal --email ${CERTBOT_EMAIL} -d ${CERTBOT_APP_DOMAIN} -d ${CERTBOT_API_DOMAIN} -d ${CERTBOT_STORAGE_DOMAIN} -d ${CERTBOT_MONITOR_DOMAIN} -d ${CERTBOT_AI_DOMAIN} --agree-tos
- networks:
- - MIH-network
- depends_on:
- - nginx
- profiles: [ 'withCert' ]
+ # - mih-db
#============== Minio File Storage ====================================================================
- minio:
+ mih-minio:
platform: linux/amd64
- container_name: MIH-Minio
- hostname: minio
- # image: docker.io/bitnami/minio:2022
+ container_name: mih-minio
+ hostname: mih-minio
image: minio/minio
ports:
- '9000:9000'
- '9001:9001'
volumes:
- - './File_Storage:/data'
+ - './mih_minio:/data'
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PW}
- # MINIO_SERVER_URL: ${MINIO_SERVER_URL}
networks:
- - MIH-network
+ - mih-network
command: ["server", "/data", "--console-address", ":9001"]
#============== MIH-Monitor Portainer ====================================================================
- portainer:
- container_name: MIH-Monitor
+ mih-monitor:
+ container_name: mih-monitor
image: portainer/portainer-ce:2.20.3
ports:
- 9444:9443
volumes:
- - data:/data
+ - ./mih_monitor/data:/data
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
networks:
- - MIH-network
+ - mih-network
#============== MIH-AI Ollama ====================================================================
- ollama:
- container_name: MIH-AI
+ mih-ai:
+ container_name: mih-ai
image: ollama/ollama:latest
ports:
- 11434:11434
volumes:
- # - ./Mzansi_AI:/code
- - ./Mzansi_AI/ollama/ollama:/root/.ollama
+ - ./mih_ai/ollama/ollama:/root/.ollama
pull_policy: always
tty: true
restart: always
@@ -170,16 +251,16 @@ services:
- OLLAMA_KEEP_ALIVE=24h
- OLLAMA_HOST=0.0.0.0
networks:
- - MIH-network
+ - mih-network
# === Added section for NVIDIA GPU acceleration ===
- runtime: nvidia
- deploy:
- resources:
- reservations:
- devices:
- - driver: nvidia
- count: all # or specify a number of GPUs
- capabilities: [ gpu ]
+ # runtime: nvidia
+ # deploy:
+ # resources:
+ # reservations:
+ # devices:
+ # - driver: nvidia
+ # count: all # or specify a number of GPUs
+ # capabilities: [ gpu ]
#============== Firebaase ====================================================================
# firebase:
# container_name: MIH-firebase-emulator
@@ -199,11 +280,3 @@ services:
# # - ./cache:/root/.cache/:rw
# # - ~/.config/:/root/.config
# - ./Firebase-emulator/firebase/data:/srv/firebase/data:rw
-#============== Named Volumes ====================================================================
-volumes:
- certbotConf:
- certbotChall:
- data: #============== MIH Network ====================================================================
-networks:
- MIH-network:
- driver: bridge
diff --git a/Mzansi_AI/.gitignore b/mih_ai/.gitignore
similarity index 100%
rename from Mzansi_AI/.gitignore
rename to mih_ai/.gitignore
diff --git a/backend/.DS_Store b/mih_api_hub/.DS_Store
similarity index 92%
rename from backend/.DS_Store
rename to mih_api_hub/.DS_Store
index 17866b74..510f15ab 100644
Binary files a/backend/.DS_Store and b/mih_api_hub/.DS_Store differ
diff --git a/backend/.gitignore b/mih_api_hub/.gitignore
similarity index 100%
rename from backend/.gitignore
rename to mih_api_hub/.gitignore
diff --git a/backend/Dockerfile b/mih_api_hub/Dockerfile
similarity index 100%
rename from backend/Dockerfile
rename to mih_api_hub/Dockerfile
diff --git a/backend/ICD10_Codes/ICD-10_MIT_2021_Excel_16-March_2021.xls b/mih_api_hub/ICD10_Codes/ICD-10_MIT_2021_Excel_16-March_2021.xls
similarity index 100%
rename from backend/ICD10_Codes/ICD-10_MIT_2021_Excel_16-March_2021.xls
rename to mih_api_hub/ICD10_Codes/ICD-10_MIT_2021_Excel_16-March_2021.xls
diff --git a/backend/Minio_Storage/__init__.py b/mih_api_hub/Minio_Storage/__init__.py
similarity index 100%
rename from backend/Minio_Storage/__init__.py
rename to mih_api_hub/Minio_Storage/__init__.py
diff --git a/backend/Minio_Storage/minioConnection.py b/mih_api_hub/Minio_Storage/minioConnection.py
similarity index 88%
rename from backend/Minio_Storage/minioConnection.py
rename to mih_api_hub/Minio_Storage/minioConnection.py
index f9bb06eb..106d0010 100644
--- a/backend/Minio_Storage/minioConnection.py
+++ b/mih_api_hub/Minio_Storage/minioConnection.py
@@ -9,7 +9,7 @@ minioSecret = os.getenv("MINIO_SECRET_KEY")
def minioConnect(env):
if(env == "Dev"):
return Minio(
- endpoint="minio:9000",
+ endpoint="mih-minio:9000",
# "minio.mzansi-innovation-hub.co.za",
access_key=minioAccess,
secret_key=minioSecret,
@@ -17,7 +17,7 @@ def minioConnect(env):
)
else:
return Minio(
- # endpoint="minio:9000",
+ # endpoint="mih-minio:9000",
endpoint="minio.mzansi-innovation-hub.co.za",
access_key=minioAccess,
secret_key=minioSecret,
diff --git a/backend/__init__.py b/mih_api_hub/__init__.py
similarity index 100%
rename from backend/__init__.py
rename to mih_api_hub/__init__.py
diff --git a/backend/backup.py b/mih_api_hub/backup.py
similarity index 100%
rename from backend/backup.py
rename to mih_api_hub/backup.py
diff --git a/backend/main.py b/mih_api_hub/main.py
similarity index 98%
rename from backend/main.py
rename to mih_api_hub/main.py
index 37876e23..bb107d42 100644
--- a/backend/main.py
+++ b/mih_api_hub/main.py
@@ -54,7 +54,7 @@ init(
),
supertokens_config=SupertokensConfig(
# https://try.supertokens.com is for demo purposes. Replace this with the address of your core instance (sign up on supertokens.com), or self host a core.
- connection_uri="http://MIH-SuperTokens:3567/",
+ connection_uri="http://mih-supertokens:3567/",
api_key="leatucczyixqwkqqdrhayiwzeofkltds"
),
framework='fastapi',
diff --git a/backend/medicines/Database-Of-Medicine-Prices-31-May-2024.xls b/mih_api_hub/medicines/Database-Of-Medicine-Prices-31-May-2024.xls
similarity index 100%
rename from backend/medicines/Database-Of-Medicine-Prices-31-May-2024.xls
rename to mih_api_hub/medicines/Database-Of-Medicine-Prices-31-May-2024.xls
diff --git a/backend/medicines/Database-Of-Medicine-Prices-9-July-2024.xls b/mih_api_hub/medicines/Database-Of-Medicine-Prices-9-July-2024.xls
similarity index 100%
rename from backend/medicines/Database-Of-Medicine-Prices-9-July-2024.xls
rename to mih_api_hub/medicines/Database-Of-Medicine-Prices-9-July-2024.xls
diff --git a/backend/mih_database/__init__.py b/mih_api_hub/mih_database/__init__.py
similarity index 100%
rename from backend/mih_database/__init__.py
rename to mih_api_hub/mih_database/__init__.py
diff --git a/backend/mih_database/dbConnection.py b/mih_api_hub/mih_database/dbConnection.py
similarity index 87%
rename from backend/mih_database/dbConnection.py
rename to mih_api_hub/mih_database/dbConnection.py
index 04c8a118..023e39f1 100644
--- a/backend/mih_database/dbConnection.py
+++ b/mih_api_hub/mih_database/dbConnection.py
@@ -8,7 +8,7 @@ dbPass = os.getenv("DB_PASSWD")
def dbPatientManagerConnect():
return mysql.connector.connect(
- host="mysqldb",
+ host="mih-db",
user=dbUser,
passwd=dbPass,
database="patient_manager"
@@ -16,7 +16,7 @@ def dbPatientManagerConnect():
def dbAppDataConnect():
return mysql.connector.connect(
- host="mysqldb",
+ host="mih-db",
user=dbUser,
passwd=dbPass,
database="app_data"
@@ -24,7 +24,7 @@ def dbAppDataConnect():
def dbDataAccessConnect():
return mysql.connector.connect(
- host="mysqldb",
+ host="mih-db",
user=dbUser,
passwd=dbPass,
database="data_access"
@@ -32,7 +32,7 @@ def dbDataAccessConnect():
def dbMzansiWalletConnect():
return mysql.connector.connect(
- host="mysqldb",
+ host="mih-db",
user=dbUser,
passwd=dbPass,
database="mzansi_wallet"
@@ -40,7 +40,7 @@ def dbMzansiWalletConnect():
def dbMzansiDirectoryConnect():
return mysql.connector.connect(
- host="mysqldb",
+ host="mih-db",
user=dbUser,
passwd=dbPass,
database="mzansi_directory"
@@ -48,7 +48,7 @@ def dbMzansiDirectoryConnect():
def dbMzansiCalendarConnect():
return mysql.connector.connect(
- host="mysqldb",
+ host="mih-db",
user=dbUser,
passwd=dbPass,
database="mzansi_calendar"
@@ -56,7 +56,7 @@ def dbMzansiCalendarConnect():
def dbAllConnect():
return mysql.connector.connect(
- host="mysqldb",
+ host="mih-db",
user=dbUser,
passwd=dbPass,
)
\ No newline at end of file
diff --git a/backend/mih_database/mihDbConnections.py b/mih_api_hub/mih_database/mihDbConnections.py
similarity index 91%
rename from backend/mih_database/mihDbConnections.py
rename to mih_api_hub/mih_database/mihDbConnections.py
index 2be1ea95..51daa521 100644
--- a/backend/mih_database/mihDbConnections.py
+++ b/mih_api_hub/mih_database/mihDbConnections.py
@@ -7,7 +7,7 @@ from dotenv import load_dotenv
load_dotenv()
dbUser = os.getenv("DB_USER")
dbPass = os.getenv("DB_PASSWD")
-dbHost = "mysqldb"
+dbHost = "mih-db"
dbPort = 3306
encoded_dbPass = quote_plus(dbPass)
base_connect_url = f"mysql+mysqlconnector://{dbUser}:{encoded_dbPass}@{dbHost}:{dbPort}/"
@@ -15,7 +15,7 @@ base_connect_url = f"mysql+mysqlconnector://{dbUser}:{encoded_dbPass}@{dbHost}:{
def dbPatientManagerConnect():
return create_engine(base_connect_url+"patient_manager", echo=False, pool_recycle=3600)
# return mysql.connector.connect(
- # host="mysqldb",
+ # host="mih-db",
# user=dbUser,
# passwd=dbPass,
# database="patient_manager"
@@ -24,7 +24,7 @@ def dbPatientManagerConnect():
def dbAppDataConnect():
return create_engine(base_connect_url+"app_data", echo=False, pool_recycle=3600)
# return mysql.connector.connect(
- # host="mysqldb",
+ # host="mih-db",
# user=dbUser,
# passwd=dbPass,
# database="app_data"
@@ -33,7 +33,7 @@ def dbAppDataConnect():
def dbDataAccessConnect():
return create_engine(base_connect_url+"data_access", echo=False, pool_recycle=3600)
# return mysql.connector.connect(
- # host="mysqldb",
+ # host="mih-db",
# user=dbUser,
# passwd=dbPass,
# database="data_access"
@@ -42,7 +42,7 @@ def dbDataAccessConnect():
def dbMzansiWalletConnect():
return create_engine(base_connect_url+"mzansi_wallet", echo=False, pool_recycle=3600)
# return mysql.connector.connect(
- # host="mysqldb",
+ # host="mih-db",
# user=dbUser,
# passwd=dbPass,
# database="mzansi_wallet"
@@ -51,7 +51,7 @@ def dbMzansiWalletConnect():
def dbMzansiDirectoryConnect():
return create_engine(base_connect_url+"mzansi_directory", echo=False, pool_recycle=3600)
# return mysql.connector.connect(
- # host="mysqldb",
+ # host="mih-db",
# user=dbUser,
# passwd=dbPass,
# database="mzansi_directory"
@@ -60,7 +60,7 @@ def dbMzansiDirectoryConnect():
def dbMzansiCalendarConnect():
return create_engine(base_connect_url+"mzansi_calendar", echo=False, pool_recycle=3600)
# return mysql.connector.connect(
- # host="mysqldb",
+ # host="mih-db",
# user=dbUser,
# passwd=dbPass,
# database="mzansi_calendar"
@@ -69,7 +69,7 @@ def dbMzansiCalendarConnect():
def dbAllConnect():
return create_engine(base_connect_url, echo=False, pool_recycle=3600)
# return mysql.connector.connect(
- # host="mysqldb",
+ # host="mih-db",
# user=dbUser,
# passwd=dbPass,
# )
\ No newline at end of file
diff --git a/backend/mih_database/mihDbObjects.py b/mih_api_hub/mih_database/mihDbObjects.py
similarity index 100%
rename from backend/mih_database/mihDbObjects.py
rename to mih_api_hub/mih_database/mihDbObjects.py
diff --git a/backend/requirements.txt b/mih_api_hub/requirements.txt
similarity index 100%
rename from backend/requirements.txt
rename to mih_api_hub/requirements.txt
diff --git a/backend/routers/__init__.py b/mih_api_hub/routers/__init__.py
similarity index 100%
rename from backend/routers/__init__.py
rename to mih_api_hub/routers/__init__.py
diff --git a/backend/routers/access_request.py b/mih_api_hub/routers/access_request.py
similarity index 100%
rename from backend/routers/access_request.py
rename to mih_api_hub/routers/access_request.py
diff --git a/backend/routers/appointments.py b/mih_api_hub/routers/appointments.py
similarity index 100%
rename from backend/routers/appointments.py
rename to mih_api_hub/routers/appointments.py
diff --git a/backend/routers/business.py b/mih_api_hub/routers/business.py
similarity index 100%
rename from backend/routers/business.py
rename to mih_api_hub/routers/business.py
diff --git a/backend/routers/business_user.py b/mih_api_hub/routers/business_user.py
similarity index 100%
rename from backend/routers/business_user.py
rename to mih_api_hub/routers/business_user.py
diff --git a/backend/routers/claim_statement_files.py b/mih_api_hub/routers/claim_statement_files.py
similarity index 100%
rename from backend/routers/claim_statement_files.py
rename to mih_api_hub/routers/claim_statement_files.py
diff --git a/backend/routers/docOffices.py b/mih_api_hub/routers/docOffices.py
similarity index 100%
rename from backend/routers/docOffices.py
rename to mih_api_hub/routers/docOffices.py
diff --git a/backend/routers/fileStorage.py b/mih_api_hub/routers/fileStorage.py
similarity index 100%
rename from backend/routers/fileStorage.py
rename to mih_api_hub/routers/fileStorage.py
diff --git a/backend/routers/icd10_codes.py b/mih_api_hub/routers/icd10_codes.py
similarity index 100%
rename from backend/routers/icd10_codes.py
rename to mih_api_hub/routers/icd10_codes.py
diff --git a/backend/routers/medicine.py b/mih_api_hub/routers/medicine.py
similarity index 100%
rename from backend/routers/medicine.py
rename to mih_api_hub/routers/medicine.py
diff --git a/backend/routers/mine_sweeper_leaderboard.py b/mih_api_hub/routers/mine_sweeper_leaderboard.py
similarity index 100%
rename from backend/routers/mine_sweeper_leaderboard.py
rename to mih_api_hub/routers/mine_sweeper_leaderboard.py
diff --git a/backend/routers/mzansi_directory.py b/mih_api_hub/routers/mzansi_directory.py
similarity index 100%
rename from backend/routers/mzansi_directory.py
rename to mih_api_hub/routers/mzansi_directory.py
diff --git a/backend/routers/mzansi_wallet.py b/mih_api_hub/routers/mzansi_wallet.py
similarity index 100%
rename from backend/routers/mzansi_wallet.py
rename to mih_api_hub/routers/mzansi_wallet.py
diff --git a/backend/routers/notifications.py b/mih_api_hub/routers/notifications.py
similarity index 100%
rename from backend/routers/notifications.py
rename to mih_api_hub/routers/notifications.py
diff --git a/backend/routers/patient_access.py b/mih_api_hub/routers/patient_access.py
similarity index 100%
rename from backend/routers/patient_access.py
rename to mih_api_hub/routers/patient_access.py
diff --git a/backend/routers/patients.py b/mih_api_hub/routers/patients.py
similarity index 100%
rename from backend/routers/patients.py
rename to mih_api_hub/routers/patients.py
diff --git a/backend/routers/patients_files.py b/mih_api_hub/routers/patients_files.py
similarity index 100%
rename from backend/routers/patients_files.py
rename to mih_api_hub/routers/patients_files.py
diff --git a/backend/routers/patients_notes.py b/mih_api_hub/routers/patients_notes.py
similarity index 100%
rename from backend/routers/patients_notes.py
rename to mih_api_hub/routers/patients_notes.py
diff --git a/backend/routers/patients_queue.py b/mih_api_hub/routers/patients_queue.py
similarity index 100%
rename from backend/routers/patients_queue.py
rename to mih_api_hub/routers/patients_queue.py
diff --git a/backend/routers/user_consent.py b/mih_api_hub/routers/user_consent.py
similarity index 100%
rename from backend/routers/user_consent.py
rename to mih_api_hub/routers/user_consent.py
diff --git a/backend/routers/users.py b/mih_api_hub/routers/users.py
similarity index 100%
rename from backend/routers/users.py
rename to mih_api_hub/routers/users.py
diff --git a/backend/temp_logofile b/mih_api_hub/temp_logofile
similarity index 100%
rename from backend/temp_logofile
rename to mih_api_hub/temp_logofile
diff --git a/Frontend/.gitignore b/mih_ui/.gitignore
similarity index 100%
rename from Frontend/.gitignore
rename to mih_ui/.gitignore
diff --git a/mih_ui/.metadata b/mih_ui/.metadata
new file mode 100644
index 00000000..ee6984a4
--- /dev/null
+++ b/mih_ui/.metadata
@@ -0,0 +1,30 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+ revision: "6fba2447e95c451518584c35e25f5433f14d888c"
+ channel: "stable"
+
+project_type: app
+
+# Tracks metadata for the flutter migrate command
+migration:
+ platforms:
+ - platform: root
+ create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
+ base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
+ - platform: linux
+ create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
+ base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
+
+ # User provided section
+
+ # List of Local paths (relative to this file) that should be
+ # ignored by the migrate tool.
+ #
+ # Files that are not part of the templates will be ignored by default.
+ unmanaged_files:
+ - 'lib/main.dart'
+ - 'ios/Runner.xcodeproj/project.pbxproj'
diff --git a/Frontend/Dockerfile b/mih_ui/Dockerfile
similarity index 100%
rename from Frontend/Dockerfile
rename to mih_ui/Dockerfile
diff --git a/Frontend/README.md b/mih_ui/README.md
similarity index 100%
rename from Frontend/README.md
rename to mih_ui/README.md
diff --git a/Frontend/analysis_options.yaml b/mih_ui/analysis_options.yaml
similarity index 100%
rename from Frontend/analysis_options.yaml
rename to mih_ui/analysis_options.yaml
diff --git a/Frontend/android/.gitignore b/mih_ui/android/.gitignore
similarity index 100%
rename from Frontend/android/.gitignore
rename to mih_ui/android/.gitignore
diff --git a/Frontend/android/app/build.gradle.kts b/mih_ui/android/app/build.gradle.kts
similarity index 94%
rename from Frontend/android/app/build.gradle.kts
rename to mih_ui/android/app/build.gradle.kts
index c96f5437..0aea73ef 100644
--- a/Frontend/android/app/build.gradle.kts
+++ b/mih_ui/android/app/build.gradle.kts
@@ -3,6 +3,9 @@ import java.io.FileInputStream
plugins {
id("com.android.application")
+ // START: FlutterFire Configuration
+ id("com.google.gms.google-services")
+ // END: FlutterFire Configuration
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
diff --git a/mih_ui/android/app/google-services.json b/mih_ui/android/app/google-services.json
new file mode 100644
index 00000000..4f9479a5
--- /dev/null
+++ b/mih_ui/android/app/google-services.json
@@ -0,0 +1,29 @@
+{
+ "project_info": {
+ "project_number": "33677883408",
+ "project_id": "mzansi-innovation-hub",
+ "storage_bucket": "mzansi-innovation-hub.firebasestorage.app"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:33677883408:android:ebd8565991c56257223295",
+ "android_client_info": {
+ "package_name": "za.co.mzansiinnovationhub.mih"
+ }
+ },
+ "oauth_client": [],
+ "api_key": [
+ {
+ "current_key": "AIzaSyBUkjWdu9YcgiF-e9TC5hoiEoCjPyjA5hU"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": []
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/Frontend/android/app/proguard-rules.pro b/mih_ui/android/app/proguard-rules.pro
similarity index 100%
rename from Frontend/android/app/proguard-rules.pro
rename to mih_ui/android/app/proguard-rules.pro
diff --git a/Frontend/android/app/src/debug/AndroidManifest.xml b/mih_ui/android/app/src/debug/AndroidManifest.xml
similarity index 100%
rename from Frontend/android/app/src/debug/AndroidManifest.xml
rename to mih_ui/android/app/src/debug/AndroidManifest.xml
diff --git a/Frontend/android/app/src/main/AndroidManifest.xml b/mih_ui/android/app/src/main/AndroidManifest.xml
similarity index 100%
rename from Frontend/android/app/src/main/AndroidManifest.xml
rename to mih_ui/android/app/src/main/AndroidManifest.xml
diff --git a/Frontend/android/app/src/main/kotlin/za/co/mzansiinnovationhub/mih/MainActivity.kt b/mih_ui/android/app/src/main/kotlin/za/co/mzansiinnovationhub/mih/MainActivity.kt
similarity index 100%
rename from Frontend/android/app/src/main/kotlin/za/co/mzansiinnovationhub/mih/MainActivity.kt
rename to mih_ui/android/app/src/main/kotlin/za/co/mzansiinnovationhub/mih/MainActivity.kt
diff --git a/Frontend/android/app/src/main/res/drawable-hdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-hdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-hdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-hdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-hdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-hdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-hdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-hdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-hdpi/branding.png b/mih_ui/android/app/src/main/res/drawable-hdpi/branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-hdpi/branding.png
rename to mih_ui/android/app/src/main/res/drawable-hdpi/branding.png
diff --git a/mih_ui/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/mih_ui/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
new file mode 100644
index 00000000..c2334020
Binary files /dev/null and b/mih_ui/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png differ
diff --git a/Frontend/android/app/src/main/res/drawable-hdpi/splash.png b/mih_ui/android/app/src/main/res/drawable-hdpi/splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-hdpi/splash.png
rename to mih_ui/android/app/src/main/res/drawable-hdpi/splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-mdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-mdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-mdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-mdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-mdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-mdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-mdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-mdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-mdpi/branding.png b/mih_ui/android/app/src/main/res/drawable-mdpi/branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-mdpi/branding.png
rename to mih_ui/android/app/src/main/res/drawable-mdpi/branding.png
diff --git a/mih_ui/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/mih_ui/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
new file mode 100644
index 00000000..7ba3e88d
Binary files /dev/null and b/mih_ui/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png differ
diff --git a/Frontend/android/app/src/main/res/drawable-mdpi/splash.png b/mih_ui/android/app/src/main/res/drawable-mdpi/splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-mdpi/splash.png
rename to mih_ui/android/app/src/main/res/drawable-mdpi/splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-hdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-night-hdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-hdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-night-hdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-mdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-night-mdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-mdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-night-mdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-xhdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-night-xhdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-xhdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-night-xhdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-v21/background.png b/mih_ui/android/app/src/main/res/drawable-v21/background.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-v21/background.png
rename to mih_ui/android/app/src/main/res/drawable-v21/background.png
diff --git a/Frontend/android/app/src/main/res/drawable-v21/launch_background.xml b/mih_ui/android/app/src/main/res/drawable-v21/launch_background.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-v21/launch_background.xml
rename to mih_ui/android/app/src/main/res/drawable-v21/launch_background.xml
diff --git a/Frontend/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-xhdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-xhdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xhdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-xhdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-xhdpi/branding.png b/mih_ui/android/app/src/main/res/drawable-xhdpi/branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xhdpi/branding.png
rename to mih_ui/android/app/src/main/res/drawable-xhdpi/branding.png
diff --git a/mih_ui/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/mih_ui/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 00000000..42375e79
Binary files /dev/null and b/mih_ui/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png differ
diff --git a/Frontend/android/app/src/main/res/drawable-xhdpi/splash.png b/mih_ui/android/app/src/main/res/drawable-xhdpi/splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xhdpi/splash.png
rename to mih_ui/android/app/src/main/res/drawable-xhdpi/splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-xxhdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-xxhdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xxhdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-xxhdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-xxhdpi/branding.png b/mih_ui/android/app/src/main/res/drawable-xxhdpi/branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xxhdpi/branding.png
rename to mih_ui/android/app/src/main/res/drawable-xxhdpi/branding.png
diff --git a/mih_ui/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/mih_ui/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 00000000..a025358b
Binary files /dev/null and b/mih_ui/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png differ
diff --git a/Frontend/android/app/src/main/res/drawable-xxhdpi/splash.png b/mih_ui/android/app/src/main/res/drawable-xxhdpi/splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xxhdpi/splash.png
rename to mih_ui/android/app/src/main/res/drawable-xxhdpi/splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png b/mih_ui/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png
rename to mih_ui/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png
diff --git a/Frontend/android/app/src/main/res/drawable-xxxhdpi/android12splash.png b/mih_ui/android/app/src/main/res/drawable-xxxhdpi/android12splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xxxhdpi/android12splash.png
rename to mih_ui/android/app/src/main/res/drawable-xxxhdpi/android12splash.png
diff --git a/Frontend/android/app/src/main/res/drawable-xxxhdpi/branding.png b/mih_ui/android/app/src/main/res/drawable-xxxhdpi/branding.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xxxhdpi/branding.png
rename to mih_ui/android/app/src/main/res/drawable-xxxhdpi/branding.png
diff --git a/mih_ui/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/mih_ui/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 00000000..b3f25f77
Binary files /dev/null and b/mih_ui/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/Frontend/android/app/src/main/res/drawable-xxxhdpi/splash.png b/mih_ui/android/app/src/main/res/drawable-xxxhdpi/splash.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable-xxxhdpi/splash.png
rename to mih_ui/android/app/src/main/res/drawable-xxxhdpi/splash.png
diff --git a/Frontend/android/app/src/main/res/drawable/background.png b/mih_ui/android/app/src/main/res/drawable/background.png
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/background.png
rename to mih_ui/android/app/src/main/res/drawable/background.png
diff --git a/Frontend/android/app/src/main/res/drawable/calculator.xml b/mih_ui/android/app/src/main/res/drawable/calculator.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/calculator.xml
rename to mih_ui/android/app/src/main/res/drawable/calculator.xml
diff --git a/Frontend/android/app/src/main/res/drawable/launch_background.xml b/mih_ui/android/app/src/main/res/drawable/launch_background.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/launch_background.xml
rename to mih_ui/android/app/src/main/res/drawable/launch_background.xml
diff --git a/Frontend/android/app/src/main/res/drawable/mih_calculator_sc.xml b/mih_ui/android/app/src/main/res/drawable/mih_calculator_sc.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/mih_calculator_sc.xml
rename to mih_ui/android/app/src/main/res/drawable/mih_calculator_sc.xml
diff --git a/Frontend/android/app/src/main/res/drawable/mih_home_sc.xml b/mih_ui/android/app/src/main/res/drawable/mih_home_sc.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/mih_home_sc.xml
rename to mih_ui/android/app/src/main/res/drawable/mih_home_sc.xml
diff --git a/Frontend/android/app/src/main/res/drawable/mih_logo.xml b/mih_ui/android/app/src/main/res/drawable/mih_logo.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/mih_logo.xml
rename to mih_ui/android/app/src/main/res/drawable/mih_logo.xml
diff --git a/Frontend/android/app/src/main/res/drawable/mzansi_ai.xml b/mih_ui/android/app/src/main/res/drawable/mzansi_ai.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/mzansi_ai.xml
rename to mih_ui/android/app/src/main/res/drawable/mzansi_ai.xml
diff --git a/Frontend/android/app/src/main/res/drawable/mzansi_ai_sc.xml b/mih_ui/android/app/src/main/res/drawable/mzansi_ai_sc.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/mzansi_ai_sc.xml
rename to mih_ui/android/app/src/main/res/drawable/mzansi_ai_sc.xml
diff --git a/mih_ui/android/app/src/main/res/drawable/mzansi_directory.xml b/mih_ui/android/app/src/main/res/drawable/mzansi_directory.xml
new file mode 100644
index 00000000..5cd49d32
--- /dev/null
+++ b/mih_ui/android/app/src/main/res/drawable/mzansi_directory.xml
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/mih_ui/android/app/src/main/res/drawable/mzansi_directory_sc.xml b/mih_ui/android/app/src/main/res/drawable/mzansi_directory_sc.xml
new file mode 100644
index 00000000..74928e30
--- /dev/null
+++ b/mih_ui/android/app/src/main/res/drawable/mzansi_directory_sc.xml
@@ -0,0 +1,14 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Frontend/android/app/src/main/res/drawable/mzansi_wallet.xml b/mih_ui/android/app/src/main/res/drawable/mzansi_wallet.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/mzansi_wallet.xml
rename to mih_ui/android/app/src/main/res/drawable/mzansi_wallet.xml
diff --git a/Frontend/android/app/src/main/res/drawable/mzansi_wallet_sc.xml b/mih_ui/android/app/src/main/res/drawable/mzansi_wallet_sc.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/mzansi_wallet_sc.xml
rename to mih_ui/android/app/src/main/res/drawable/mzansi_wallet_sc.xml
diff --git a/Frontend/android/app/src/main/res/drawable/test.xml b/mih_ui/android/app/src/main/res/drawable/test.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/drawable/test.xml
rename to mih_ui/android/app/src/main/res/drawable/test.xml
diff --git a/Frontend/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml b/mih_ui/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml
rename to mih_ui/android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml
diff --git a/Frontend/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/mih_ui/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from Frontend/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to mih_ui/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/mih_ui/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/mih_ui/android/app/src/main/res/mipmap-hdpi/launcher_icon.png
new file mode 100644
index 00000000..a629ce16
Binary files /dev/null and b/mih_ui/android/app/src/main/res/mipmap-hdpi/launcher_icon.png differ
diff --git a/Frontend/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/mih_ui/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from Frontend/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to mih_ui/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/mih_ui/android/app/src/main/res/mipmap-mdpi/launcher_icon.png b/mih_ui/android/app/src/main/res/mipmap-mdpi/launcher_icon.png
new file mode 100644
index 00000000..93deda87
Binary files /dev/null and b/mih_ui/android/app/src/main/res/mipmap-mdpi/launcher_icon.png differ
diff --git a/Frontend/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/mih_ui/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from Frontend/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to mih_ui/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/mih_ui/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/mih_ui/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
new file mode 100644
index 00000000..bfda05d5
Binary files /dev/null and b/mih_ui/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png differ
diff --git a/Frontend/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/mih_ui/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from Frontend/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to mih_ui/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/mih_ui/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/mih_ui/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
new file mode 100644
index 00000000..51b6e608
Binary files /dev/null and b/mih_ui/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png differ
diff --git a/Frontend/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/mih_ui/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from Frontend/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to mih_ui/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/mih_ui/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/mih_ui/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
new file mode 100644
index 00000000..adbce8e0
Binary files /dev/null and b/mih_ui/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png differ
diff --git a/Frontend/android/app/src/main/res/values-night-v31/styles.xml b/mih_ui/android/app/src/main/res/values-night-v31/styles.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/values-night-v31/styles.xml
rename to mih_ui/android/app/src/main/res/values-night-v31/styles.xml
diff --git a/Frontend/android/app/src/main/res/values-night/styles.xml b/mih_ui/android/app/src/main/res/values-night/styles.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/values-night/styles.xml
rename to mih_ui/android/app/src/main/res/values-night/styles.xml
diff --git a/Frontend/android/app/src/main/res/values-v31/styles.xml b/mih_ui/android/app/src/main/res/values-v31/styles.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/values-v31/styles.xml
rename to mih_ui/android/app/src/main/res/values-v31/styles.xml
diff --git a/Frontend/android/app/src/main/res/values/arrays.xml b/mih_ui/android/app/src/main/res/values/arrays.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/values/arrays.xml
rename to mih_ui/android/app/src/main/res/values/arrays.xml
diff --git a/mih_ui/android/app/src/main/res/values/colors.xml b/mih_ui/android/app/src/main/res/values/colors.xml
new file mode 100644
index 00000000..152a652e
--- /dev/null
+++ b/mih_ui/android/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+
+
+ #3A4454
+
+
+
+ #3A4454
+ #bedcfe
+
\ No newline at end of file
diff --git a/Frontend/android/app/src/main/res/values/styles.xml b/mih_ui/android/app/src/main/res/values/styles.xml
similarity index 100%
rename from Frontend/android/app/src/main/res/values/styles.xml
rename to mih_ui/android/app/src/main/res/values/styles.xml
diff --git a/Frontend/android/app/src/profile/AndroidManifest.xml b/mih_ui/android/app/src/profile/AndroidManifest.xml
similarity index 100%
rename from Frontend/android/app/src/profile/AndroidManifest.xml
rename to mih_ui/android/app/src/profile/AndroidManifest.xml
diff --git a/Frontend/android/build.gradle.kts b/mih_ui/android/build.gradle.kts
similarity index 100%
rename from Frontend/android/build.gradle.kts
rename to mih_ui/android/build.gradle.kts
diff --git a/Frontend/android/build/reports/problems/problems-report.html b/mih_ui/android/build/reports/problems/problems-report.html
similarity index 100%
rename from Frontend/android/build/reports/problems/problems-report.html
rename to mih_ui/android/build/reports/problems/problems-report.html
diff --git a/Frontend/android/gradle.properties b/mih_ui/android/gradle.properties
similarity index 100%
rename from Frontend/android/gradle.properties
rename to mih_ui/android/gradle.properties
diff --git a/Frontend/android/gradle/wrapper/gradle-wrapper.properties b/mih_ui/android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from Frontend/android/gradle/wrapper/gradle-wrapper.properties
rename to mih_ui/android/gradle/wrapper/gradle-wrapper.properties
diff --git a/Frontend/android/settings.gradle.kts b/mih_ui/android/settings.gradle.kts
similarity index 83%
rename from Frontend/android/settings.gradle.kts
rename to mih_ui/android/settings.gradle.kts
index ab39a10a..bd7522f7 100644
--- a/Frontend/android/settings.gradle.kts
+++ b/mih_ui/android/settings.gradle.kts
@@ -19,6 +19,9 @@ pluginManagement {
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.7.3" apply false
+ // START: FlutterFire Configuration
+ id("com.google.gms.google-services") version("4.3.15") apply false
+ // END: FlutterFire Configuration
id("org.jetbrains.kotlin.android") version "2.1.0" apply false
}
diff --git a/Frontend/devtools_options.yaml b/mih_ui/devtools_options.yaml
similarity index 100%
rename from Frontend/devtools_options.yaml
rename to mih_ui/devtools_options.yaml
diff --git a/mih_ui/firebase.json b/mih_ui/firebase.json
new file mode 100644
index 00000000..d3d23465
--- /dev/null
+++ b/mih_ui/firebase.json
@@ -0,0 +1 @@
+{"flutter":{"platforms":{"android":{"default":{"projectId":"mzansi-innovation-hub","appId":"1:33677883408:android:ebd8565991c56257223295","fileOutput":"android/app/google-services.json"}},"ios":{"default":{"projectId":"mzansi-innovation-hub","appId":"1:33677883408:ios:2048dac086428716223295","uploadDebugSymbols":false,"fileOutput":"ios/Runner/GoogleService-Info.plist"}},"macos":{"default":{"projectId":"mzansi-innovation-hub","appId":"1:33677883408:ios:e2db11a42fc3452e223295","uploadDebugSymbols":false,"fileOutput":"macos/Runner/GoogleService-Info.plist"}},"dart":{"lib/firebase_options.dart":{"projectId":"mzansi-innovation-hub","configurations":{"android":"1:33677883408:android:ebd8565991c56257223295","ios":"1:33677883408:ios:2048dac086428716223295","macos":"1:33677883408:ios:e2db11a42fc3452e223295","web":"1:33677883408:web:47b8021df7fcacd2223295","windows":"1:33677883408:web:e08becaef3261c59223295"}}}}}}
\ No newline at end of file
diff --git a/mih_ui/firepit-log.txt b/mih_ui/firepit-log.txt
new file mode 100644
index 00000000..cf8334ba
--- /dev/null
+++ b/mih_ui/firepit-log.txt
@@ -0,0 +1,13 @@
+Welcome to firepit v1.1.0!
+Doing JSON parses for version checks at /snapshot/firepit/vendor/node_modules/firebase-tools/package.json
+is-ci,mime,rc,yaml,abbrev,abort-controller,accepts,acorn,acorn-walk,agent-base,ajv,ajv-formats,ansi-align,ansi-escapes,ansi-regex,ansi-styles,any-promise,anymatch,archiver,archiver-utils,arg,argparse,array-flatten,arrify,as-array,ast-types,async,async-lock,asynckit,b4a,balanced-match,bare-events,base64-js,basic-auth,basic-auth-connect,basic-ftp,bignumber.js,binary-extensions,bl,body-parser,boxen,brace-expansion,braces,buffer,buffer-crc32,buffer-equal-constant-time,bytes,cacache,call-bind-apply-helpers,call-bound,call-me-maybe,camelcase,chalk,char-regex,chardet,chokidar,chownr,ci-info,cjson,cli-boxes,cli-cursor,cli-highlight,cli-spinners,cli-table3,cli-width,cliui,clone,color,color-convert,color-name,color-string,colorette,combined-stream,commander,compress-commons,compressible,compression,concat-map,config-chain,configstore,connect,content-disposition,content-type,cookie,cookie-signature,core-util-is,cors,crc-32,crc32-stream,create-require,cross-env,cross-spawn,crypto-random-string,csv-parse,data-uri-to-buffer,debug,deep-equal-in-any-order,deep-extend,deep-freeze,deep-is,defaults,degenerator,delayed-stream,depd,destroy,diff,discontinuous-range,dot-prop,dunder-proto,duplexify,eastasianwidth,ecdsa-sig-formatter,ee-first,emoji-regex,emojilib,enabled,encodeurl,encoding,end-of-stream,env-paths,environment,err-code,es-define-property,es-errors,es-object-atoms,es-set-tostringtag,escalade,escape-goat,escape-html,escodegen,esprima,estraverse,esutils,etag,event-target-shim,events,events-listener,events-universal,eventsource,eventsource-parser,exegesis,exegesis-express,exponential-backoff,express,express-rate-limit,extend,fast-deep-equal,fast-fifo,fast-uri,fecha,fetch-blob,filesize,fill-range,finalhandler,firebase-tools,fn.name,foreground-child,form-data,formdata-polyfill,forwarded,fresh,fs-extra,fs-minipass,function-bind,fuzzy,gaxios,gcp-metadata,get-caller-file,get-intrinsic,get-proto,get-uri,glob,glob-parent,glob-slash,glob-slasher,global-dirs,google-auth-library,google-gax,google-logging-utils,googleapis-common,gopd,graceful-fs,gtoken,has-flag,has-symbols,has-tostringtag,has-yarn,hasown,heap-js,highlight.js,hosted-git-info,http-cache-semantics,http-errors,http-proxy-agent,https-proxy-agent,iconv-lite,ieee754,ignore,import-lazy,imurmurhash,infer-owner,inherits,ini,install-artifact-from-github,ip-address,ip-regex,ipaddr.js,is-binary-path,is-buffer,is-extglob,is-fullwidth-code-point,is-glob,is-installed-globally,is-interactive,is-npm,is-number,is-obj,is-path-inside,is-promise,is-stream,is-stream-ended,is-typedarray,is-unicode-supported,is-url,is-wsl,is-yarn-global,is2,isarray,isexe,isomorphic-fetch,jackspeak,jju,join-path,jose,js-yaml,json-bigint,json-parse-helpfulerror,json-ptr,json-schema-traverse,jsonfile,jsonwebtoken,jwa,jws,kind-of,kuler,lazystream,leven,libsodium,libsodium-wrappers,lodash,lodash._objecttypes,lodash.camelcase,lodash.includes,lodash.isboolean,lodash.isinteger,lodash.isnumber,lodash.isobject,lodash.isplainobject,lodash.isstring,lodash.mapvalues,lodash.once,lodash.snakecase,log-symbols,logform,long,lru-cache,lsofi,make-dir,make-error,make-fetch-happen,marked,marked-terminal,math-intrinsics,media-typer,merge-descriptors,methods,mime-db,mime-types,mimic-fn,minimatch,minimist,minipass,minipass-collect,minipass-fetch,minipass-flush,minipass-pipeline,minipass-sized,minizlib,mkdirp,moo,morgan,ms,mute-stream,mz,nan,nearley,negotiator,netmask,node-domexception,node-emoji,node-fetch,node-gyp,nopt,normalize-path,npm-install-checks,npm-normalize-package-bin,npm-package-arg,npm-pick-manifest,object-assign,object-hash,object-inspect,on-finished,on-headers,once,one-time,onetime,open,openapi3-ts,ora,p-defer,p-limit,p-map,p-throttle,pac-proxy-agent,pac-resolver,package-json-from-dist,parse5,parse5-htmlparser2-tree-adapter,parseurl,path-key,path-scurry,path-to-regexp,pg,pg-cloudflare,pg-connection-string,pg-gateway,pg-int8,pg-pool,pg-protocol,pg-types,pglite-2,pgpass,picomatch,pkce-challenge,portfinder,postgres-array,postgres-bytea,postgres-date,postgres-interval,proc-log,process,process-nextick-args,progress,promise-breaker,promise-retry,proto-list,proto3-json-serializer,protobufjs,proxy-addr,proxy-agent,proxy-from-env,pupa,qs,railroad-diagrams,randexp,range-parser,raw-body,re2,readable-stream,readdir-glob,readdirp,registry-auth-token,registry-url,require-directory,require-from-string,restore-cursor,ret,retry,retry-request,rimraf,router,safe-buffer,safe-stable-stringify,safer-buffer,semver,semver-diff,send,serve-static,setprototypeof,shebang-command,shebang-regex,side-channel,side-channel-list,side-channel-map,side-channel-weakmap,signal-exit,skin-tone,smart-buffer,socks,socks-proxy-agent,sort-any,source-map,split2,sprintf-js,sql-formatter,ssri,stack-trace,statuses,stream-chain,stream-events,stream-json,stream-shift,streamx,string-width,string-width-cjs,string_decoder,strip-ansi,strip-ansi-cjs,strip-json-comments,stubs,superstatic,supports-color,supports-hyperlinks,tar,tar-stream,tcp-port-used,teeny-request,text-decoder,text-hex,thenify,thenify-all,through2,tinyglobby,tmp,to-regex-range,toidentifier,toxic,tr46,triple-beam,ts-node,tslib,tsscmp,type-fest,type-is,typedarray-to-buffer,typescript,undici-types,unicode-emoji-modifier-base,unique-filename,unique-slug,unique-string,universal-analytics,universalify,unpipe,update-notifier-cjs,url-join,url-template,util-deprecate,utils-merge,uuid,v8-compile-cache-lib,valid-url,validate-npm-package-name,vary,wcwidth,web-streams-polyfill,webidl-conversions,whatwg-fetch,whatwg-url,which,widest-line,winston,winston-transport,wrap-ansi,wrap-ansi-cjs,wrappy,write-file-atomic,ws,xdg-basedir,xtend,y18n,yallist,yargs,yargs-parser,yn,yocto-queue,yoctocolors-cjs,zip-stream,zod,zod-to-json-schema,@apidevtools,@apphosting,@colors,@cspotcode,@dabh,@electric-sql,@google-cloud,@googleapis,@grpc,@inquirer,@isaacs,@jridgewell,@js-sdsl,@jsdevtools,@modelcontextprotocol,@npmcli,@opentelemetry,@pkgjs,@pnpm,@protobufjs,@sindresorhus,@so-ric,@tootallnate,@tsconfig,@types
+Installed ft@14.27.0 and packaged ft@14.27.0
+Checking for npm/bin/npm-cli install at /home/yaso/.cache/firebase/tools/lib/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /home/yaso/.cache/firebase/tools/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /snapshot/firepit/node_modules/npm/bin/npm-cli
+Found npm/bin/npm-cli install.
+Checking for npm/bin/npm-cli install at /home/yaso/.cache/firebase/tools/lib/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /home/yaso/.cache/firebase/tools/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /snapshot/firepit/node_modules/npm/bin/npm-cli
+Found npm/bin/npm-cli install.
+ShellJSInternalError: ENOENT: no such file or directory, chmod '/home/yaso/.cache/firebase/runtime/shell'
\ No newline at end of file
diff --git a/Frontend/flutter_launcher_icons.yaml b/mih_ui/flutter_launcher_icons.yaml
similarity index 73%
rename from Frontend/flutter_launcher_icons.yaml
rename to mih_ui/flutter_launcher_icons.yaml
index 8d972e9f..c64c3808 100644
--- a/Frontend/flutter_launcher_icons.yaml
+++ b/mih_ui/flutter_launcher_icons.yaml
@@ -1,40 +1,40 @@
# flutter pub run flutter_launcher_icons
flutter_launcher_icons:
# Original
- # image_path: "lib/mih_package_components/assets/images/app_icon/mih_logo_app.png"
+ image_path: "lib/mih_package_components/assets/images/app_icon/mih_logo_app.png"
# Women For Change
- image_path: "lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png"
+ # image_path: "lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png"
android: "launcher_icon"
min_sdk_android: 21 # android min sdk min:16, default 21
# Original
- # adaptive_icon_background: "#3A4454"
- # adaptive_icon_foreground: "lib/mih_package_components/assets/images/app_icon/mih_logo_app.png"
+ adaptive_icon_background: "#3A4454"
+ adaptive_icon_foreground: "lib/mih_package_components/assets/images/app_icon/mih_logo_app.png"
# Women For Change
- adaptive_icon_background: "#6641b2"
- adaptive_icon_foreground: "lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png"
+ # adaptive_icon_background: "#6641b2"
+ # adaptive_icon_foreground: "lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png"
ios: true
# Original
- # image_path_ios: "lib/mih_package_components/assets/images/app_icon/mih_logo_app.png"
+ image_path_ios: "lib/mih_package_components/assets/images/app_icon/mih_logo_app.png"
# Women For Change
- image_path_ios: "lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png"
+ # image_path_ios: "lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png"
remove_alpha_channel_ios: true
web:
generate: true
# Original
- # image_path: "lib/mih_package_components/assets/images/app_icon/mih_logo_web.png"
- # background_color: "#3A4454"
- # theme_color: "#3A4454"
+ image_path: "lib/mih_package_components/assets/images/app_icon/mih_logo_web.png"
+ background_color: "#3A4454"
+ theme_color: "#3A4454"
# Women For Change
- image_path: "lib/mih_package_components/assets/images/app_icon/mih_logo_web_w4c.png"
- background_color: "#6641b2"
- theme_color: "#6641b2"
+ # image_path: "lib/mih_package_components/assets/images/app_icon/mih_logo_web_w4c.png"
+ # background_color: "#6641b2"
+ # theme_color: "#6641b2"
windows:
generate: true
diff --git a/Frontend/ios/.gitignore b/mih_ui/ios/.gitignore
similarity index 100%
rename from Frontend/ios/.gitignore
rename to mih_ui/ios/.gitignore
diff --git a/Frontend/ios/Flutter/AppFrameworkInfo.plist b/mih_ui/ios/Flutter/AppFrameworkInfo.plist
similarity index 100%
rename from Frontend/ios/Flutter/AppFrameworkInfo.plist
rename to mih_ui/ios/Flutter/AppFrameworkInfo.plist
diff --git a/Frontend/ios/Flutter/Debug.xcconfig b/mih_ui/ios/Flutter/Debug.xcconfig
similarity index 100%
rename from Frontend/ios/Flutter/Debug.xcconfig
rename to mih_ui/ios/Flutter/Debug.xcconfig
diff --git a/Frontend/ios/Flutter/Release.xcconfig b/mih_ui/ios/Flutter/Release.xcconfig
similarity index 100%
rename from Frontend/ios/Flutter/Release.xcconfig
rename to mih_ui/ios/Flutter/Release.xcconfig
diff --git a/Frontend/ios/Podfile b/mih_ui/ios/Podfile
similarity index 100%
rename from Frontend/ios/Podfile
rename to mih_ui/ios/Podfile
diff --git a/Frontend/ios/Podfile.lock b/mih_ui/ios/Podfile.lock
similarity index 83%
rename from Frontend/ios/Podfile.lock
rename to mih_ui/ios/Podfile.lock
index 5de20c98..9d987bad 100644
--- a/Frontend/ios/Podfile.lock
+++ b/mih_ui/ios/Podfile.lock
@@ -7,9 +7,6 @@ PODS:
- PromisesObjC (~> 2.4)
- camera_avfoundation (0.0.1):
- Flutter
- - CwlCatchException (2.2.1):
- - CwlCatchExceptionSupport (~> 2.2.1)
- - CwlCatchExceptionSupport (2.2.1)
- device_info_plus (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.9):
@@ -51,47 +48,47 @@ PODS:
- Flutter
- file_selector_ios (0.0.1):
- Flutter
- - Firebase/Auth (12.4.0):
+ - Firebase/Auth (12.8.0):
- Firebase/CoreOnly
- - FirebaseAuth (~> 12.4.0)
- - Firebase/CoreOnly (12.4.0):
- - FirebaseCore (~> 12.4.0)
+ - FirebaseAuth (~> 12.8.0)
+ - Firebase/CoreOnly (12.8.0):
+ - FirebaseCore (~> 12.8.0)
- firebase_app_check (0.4.1-2):
- - Firebase/CoreOnly (~> 12.4.0)
+ - Firebase/CoreOnly (~> 12.8.0)
- firebase_core
- - FirebaseAppCheck (~> 12.4.0)
+ - FirebaseAppCheck (~> 12.8.0)
- Flutter
- firebase_auth (6.1.2):
- - Firebase/Auth (= 12.4.0)
+ - Firebase/Auth (= 12.8.0)
- firebase_core
- Flutter
- - firebase_core (4.2.1):
- - Firebase/CoreOnly (= 12.4.0)
+ - firebase_core (4.4.0):
+ - Firebase/CoreOnly (= 12.8.0)
- Flutter
- - FirebaseAppCheck (12.4.0):
+ - FirebaseAppCheck (12.8.0):
- AppCheckCore (~> 11.0)
- - FirebaseAppCheckInterop (~> 12.4.0)
- - FirebaseCore (~> 12.4.0)
+ - FirebaseAppCheckInterop (~> 12.8.0)
+ - FirebaseCore (~> 12.8.0)
- GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/UserDefaults (~> 8.1)
- - FirebaseAppCheckInterop (12.4.0)
- - FirebaseAuth (12.4.0):
- - FirebaseAppCheckInterop (~> 12.4.0)
- - FirebaseAuthInterop (~> 12.4.0)
- - FirebaseCore (~> 12.4.0)
- - FirebaseCoreExtension (~> 12.4.0)
+ - FirebaseAppCheckInterop (12.8.0)
+ - FirebaseAuth (12.8.0):
+ - FirebaseAppCheckInterop (~> 12.8.0)
+ - FirebaseAuthInterop (~> 12.8.0)
+ - FirebaseCore (~> 12.8.0)
+ - FirebaseCoreExtension (~> 12.8.0)
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
- GoogleUtilities/Environment (~> 8.1)
- GTMSessionFetcher/Core (< 6.0, >= 3.4)
- RecaptchaInterop (~> 101.0)
- - FirebaseAuthInterop (12.4.0)
- - FirebaseCore (12.4.0):
- - FirebaseCoreInternal (~> 12.4.0)
+ - FirebaseAuthInterop (12.8.0)
+ - FirebaseCore (12.8.0):
+ - FirebaseCoreInternal (~> 12.8.0)
- GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/Logger (~> 8.1)
- - FirebaseCoreExtension (12.4.0):
- - FirebaseCore (~> 12.4.0)
- - FirebaseCoreInternal (12.4.0):
+ - FirebaseCoreExtension (12.8.0):
+ - FirebaseCore (~> 12.8.0)
+ - FirebaseCoreInternal (12.8.0):
- "GoogleUtilities/NSData+zlib (~> 8.1)"
- fl_downloader (0.0.1):
- Flutter
@@ -115,7 +112,7 @@ PODS:
- GoogleMobileAdsMediationFacebook (6.20.1.0):
- FBAudienceNetwork (= 6.20.1)
- Google-Mobile-Ads-SDK (~> 12.0)
- - GoogleUserMessagingPlatform (3.0.0)
+ - GoogleUserMessagingPlatform (3.1.0)
- GoogleUtilities/AppDelegateSwizzler (8.1.0):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
@@ -164,18 +161,14 @@ PODS:
- Flutter
- screen_brightness_ios (0.1.0):
- Flutter
- - SDWebImage (5.20.0):
- - SDWebImage/Core (= 5.20.0)
- - SDWebImage/Core (5.20.0)
+ - SDWebImage (5.21.5):
+ - SDWebImage/Core (= 5.21.5)
+ - SDWebImage/Core (5.21.5)
- share_plus (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- - speech_to_text (7.2.0):
- - CwlCatchException
- - Flutter
- - FlutterMacOS
- sqflite_darwin (0.0.4):
- Flutter
- FlutterMacOS
@@ -216,7 +209,6 @@ DEPENDENCIES:
- screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`)
- share_plus (from `.symlinks/plugins/share_plus/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- - speech_to_text (from `.symlinks/plugins/speech_to_text/darwin`)
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
- syncfusion_flutter_pdfviewer (from `.symlinks/plugins/syncfusion_flutter_pdfviewer/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
@@ -225,8 +217,6 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- AppCheckCore
- - CwlCatchException
- - CwlCatchExceptionSupport
- DKImagePickerController
- DKPhotoGallery
- FBAudienceNetwork
@@ -303,8 +293,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/share_plus/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
- speech_to_text:
- :path: ".symlinks/plugins/speech_to_text/darwin"
sqflite_darwin:
:path: ".symlinks/plugins/sqflite_darwin/darwin"
syncfusion_flutter_pdfviewer:
@@ -318,8 +306,6 @@ SPEC CHECKSUMS:
app_settings: 5127ae0678de1dcc19f2293271c51d37c89428b2
AppCheckCore: cc8fd0a3a230ddd401f326489c99990b013f0c4f
camera_avfoundation: be3be85408cd4126f250386828e9b1dfa40ab436
- CwlCatchException: 7acc161b299a6de7f0a46a6ed741eae2c8b4d75a
- CwlCatchExceptionSupport: 54ccab8d8c78907b57f99717fb19d4cc3bce02dc
device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
@@ -327,17 +313,17 @@ SPEC CHECKSUMS:
file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be
file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6
file_selector_ios: f92e583d43608aebc2e4a18daac30b8902845502
- Firebase: f07b15ae5a6ec0f93713e30b923d9970d144af3e
- firebase_app_check: 61fb3578a0761c806533482aca240a2d5cc5b5ef
- firebase_auth: 9225db04db5d8e3b46dc8940e04bc6aec6833e27
- firebase_core: f1aafb21c14f497e5498f7ffc4dc63cbb52b2594
- FirebaseAppCheck: 73721d98fa29cf199da6004e57715cbaddd49651
- FirebaseAppCheckInterop: f734c802f21fe1da0837708f0f9a27218c8a4ed0
- FirebaseAuth: 4a2aed737c84114a9d9b33d11ae1b147d6b94889
- FirebaseAuthInterop: 858e6b754966e70740a4370dd1503dfffe6dbb49
- FirebaseCore: bb595f3114953664e3c1dc032f008a244147cfd3
- FirebaseCoreExtension: 7e1f7118ee970e001a8013719fb90950ee5e0018
- FirebaseCoreInternal: d7f5a043c2cd01a08103ab586587c1468047bca6
+ Firebase: 9a58fdbc9d8655ed7b79a19cf9690bb007d3d46d
+ firebase_app_check: 9756167f67afd4844027314bea522e42599631b5
+ firebase_auth: 2ebdb4dbe0da3a75585694dcba711f7a8a926601
+ firebase_core: ee30637e6744af8e0c12a6a1e8a9718506ec2398
+ FirebaseAppCheck: 11da425929a45c677d537adfff3520ccd57c1690
+ FirebaseAppCheckInterop: ba3dc604a89815379e61ec2365101608d365cf7d
+ FirebaseAuth: 4c289b1a43f5955283244a55cf6bd616de344be5
+ FirebaseAuthInterop: 95363fe96493cb4f106656666a0768b420cba090
+ FirebaseCore: 0dbad74bda10b8fb9ca34ad8f375fb9dd3ebef7c
+ FirebaseCoreExtension: 6605938d51f765d8b18bfcafd2085276a252bee2
+ FirebaseCoreInternal: fe5fa466aeb314787093a7dce9f0beeaad5a2a21
fl_downloader: dc99aa8dd303f862cccb830087f37acc9b0156ee
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf
@@ -347,7 +333,7 @@ SPEC CHECKSUMS:
Google-Mobile-Ads-SDK: 1dfb0c3cb46c7e2b00b0f4de74a1e06d9ea25d67
google_mobile_ads: 535223588a6791b7a3cc3513a1bc7b89d12f3e62
GoogleMobileAdsMediationFacebook: b11a92ae3bfdae19853b882252b7e62791c18162
- GoogleUserMessagingPlatform: f8d0cdad3ca835406755d0a69aa634f00e76d576
+ GoogleUserMessagingPlatform: befe603da6501006420c206222acd449bba45a9c
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
GTMSessionFetcher: 02d6e866e90bc236f48a703a041dfe43e6221a29
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
@@ -361,10 +347,9 @@ SPEC CHECKSUMS:
RecaptchaInterop: 11e0b637842dfb48308d242afc3f448062325aba
record_ios: f75fa1d57f840012775c0e93a38a7f3ceea1a374
screen_brightness_ios: 9953fd7da5bd480f1a93990daeec2eb42d4f3b52
- SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8
+ SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
- speech_to_text: 3b313d98516d3d0406cea424782ec25470c59d19
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
syncfusion_flutter_pdfviewer: 90dc48305d2e33d4aa20681d1e98ddeda891bc14
diff --git a/Frontend/ios/Runner.xcodeproj/project.pbxproj b/mih_ui/ios/Runner.xcodeproj/project.pbxproj
similarity index 98%
rename from Frontend/ios/Runner.xcodeproj/project.pbxproj
rename to mih_ui/ios/Runner.xcodeproj/project.pbxproj
index 17117b47..d8dfea8d 100644
--- a/Frontend/ios/Runner.xcodeproj/project.pbxproj
+++ b/mih_ui/ios/Runner.xcodeproj/project.pbxproj
@@ -12,6 +12,7 @@
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
71E3C54FEF20104FD7A5C7E5 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 277EDD110F2042FAAC4E5333 /* Pods_Runner.framework */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+ 75DB4569FB42001E83B22FC4 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 486D5A0EDC898EC440394271 /* GoogleService-Info.plist */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
@@ -52,6 +53,7 @@
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
+ 486D5A0EDC898EC440394271 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; };
523DAF296A6B559B71F587AF /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
52DEBFF4174C303DD5BF01CA /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
@@ -138,6 +140,7 @@
331C8082294A63A400263BE5 /* RunnerTests */,
7241FE2A1582C644953298C9 /* Pods */,
7A61115B6A9E6DA8069C4DD9 /* Frameworks */,
+ 486D5A0EDC898EC440394271 /* GoogleService-Info.plist */,
);
sourceTree = "";
};
@@ -266,6 +269,7 @@
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
+ 75DB4569FB42001E83B22FC4 /* GoogleService-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/Frontend/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/mih_ui/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from Frontend/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to mih_ui/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/Frontend/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/mih_ui/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from Frontend/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to mih_ui/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/Frontend/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/mih_ui/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
similarity index 100%
rename from Frontend/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
rename to mih_ui/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
diff --git a/Frontend/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/mih_ui/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
similarity index 100%
rename from Frontend/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
rename to mih_ui/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
diff --git a/Frontend/ios/Runner.xcworkspace/contents.xcworkspacedata b/mih_ui/ios/Runner.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from Frontend/ios/Runner.xcworkspace/contents.xcworkspacedata
rename to mih_ui/ios/Runner.xcworkspace/contents.xcworkspacedata
diff --git a/Frontend/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/mih_ui/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from Frontend/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to mih_ui/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/Frontend/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/mih_ui/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
similarity index 100%
rename from Frontend/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
rename to mih_ui/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
diff --git a/Frontend/ios/Runner/AppDelegate.swift b/mih_ui/ios/Runner/AppDelegate.swift
similarity index 100%
rename from Frontend/ios/Runner/AppDelegate.swift
rename to mih_ui/ios/Runner/AppDelegate.swift
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
new file mode 100644
index 00000000..f0f27c8a
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
new file mode 100644
index 00000000..6ae27623
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
new file mode 100644
index 00000000..9018b9e0
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
new file mode 100644
index 00000000..64136536
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
new file mode 100644
index 00000000..7a235f79
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
new file mode 100644
index 00000000..2b6771f8
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
new file mode 100644
index 00000000..a1c7a255
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
new file mode 100644
index 00000000..9018b9e0
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
new file mode 100644
index 00000000..4e609d8a
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
new file mode 100644
index 00000000..3bd904e3
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
new file mode 100644
index 00000000..40c1ee29
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
new file mode 100644
index 00000000..2819fbca
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
new file mode 100644
index 00000000..822fc1c7
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
new file mode 100644
index 00000000..3a76fe77
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
new file mode 100644
index 00000000..3bd904e3
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
new file mode 100644
index 00000000..41091940
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
new file mode 100644
index 00000000..a629ce16
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
new file mode 100644
index 00000000..51b6e608
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
new file mode 100644
index 00000000..24325c69
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
new file mode 100644
index 00000000..8e600112
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ
diff --git a/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
new file mode 100644
index 00000000..efa19e5c
Binary files /dev/null and b/mih_ui/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ
diff --git a/Frontend/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage.png b/mih_ui/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage.png
rename to mih_ui/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage@2x.png b/mih_ui/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage@2x.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage@2x.png
rename to mih_ui/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage@2x.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage@3x.png b/mih_ui/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage@3x.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage@3x.png
rename to mih_ui/ios/Runner/Assets.xcassets/BrandingImage.imageset/BrandingImage@3x.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/BrandingImage.imageset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/BrandingImage.imageset/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/BrandingImage.imageset/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/BrandingImage.imageset/Contents.json
diff --git a/Frontend/ios/Runner/Assets.xcassets/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/Contents.json
diff --git a/Frontend/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json
diff --git a/Frontend/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png b/mih_ui/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png
rename to mih_ui/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
diff --git a/Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
rename to mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
rename to mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
rename to mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
diff --git a/Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
rename to mih_ui/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
diff --git a/Frontend/ios/Runner/Assets.xcassets/mih_calculator_sc.imageset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/mih_calculator_sc.imageset/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/mih_calculator_sc.imageset/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/mih_calculator_sc.imageset/Contents.json
diff --git a/Frontend/ios/Runner/Assets.xcassets/mih_calculator_sc.imageset/calculator.svg b/mih_ui/ios/Runner/Assets.xcassets/mih_calculator_sc.imageset/calculator.svg
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/mih_calculator_sc.imageset/calculator.svg
rename to mih_ui/ios/Runner/Assets.xcassets/mih_calculator_sc.imageset/calculator.svg
diff --git a/Frontend/ios/Runner/Assets.xcassets/mih_home_sc.imageset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/mih_home_sc.imageset/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/mih_home_sc.imageset/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/mih_home_sc.imageset/Contents.json
diff --git a/Frontend/ios/Runner/Assets.xcassets/mih_home_sc.imageset/mih_logo.svg b/mih_ui/ios/Runner/Assets.xcassets/mih_home_sc.imageset/mih_logo.svg
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/mih_home_sc.imageset/mih_logo.svg
rename to mih_ui/ios/Runner/Assets.xcassets/mih_home_sc.imageset/mih_logo.svg
diff --git a/Frontend/ios/Runner/Assets.xcassets/mzansi_ai_sc.imageset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/mzansi_ai_sc.imageset/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/mzansi_ai_sc.imageset/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/mzansi_ai_sc.imageset/Contents.json
diff --git a/Frontend/ios/Runner/Assets.xcassets/mzansi_ai_sc.imageset/mzansi_ai.svg b/mih_ui/ios/Runner/Assets.xcassets/mzansi_ai_sc.imageset/mzansi_ai.svg
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/mzansi_ai_sc.imageset/mzansi_ai.svg
rename to mih_ui/ios/Runner/Assets.xcassets/mzansi_ai_sc.imageset/mzansi_ai.svg
diff --git a/mih_ui/ios/Runner/Assets.xcassets/mzansi_directory_sc.imageset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/mzansi_directory_sc.imageset/Contents.json
new file mode 100644
index 00000000..41b7428c
--- /dev/null
+++ b/mih_ui/ios/Runner/Assets.xcassets/mzansi_directory_sc.imageset/Contents.json
@@ -0,0 +1,15 @@
+{
+ "images" : [
+ {
+ "filename" : "mzansi_directory.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ },
+ "properties" : {
+ "preserves-vector-representation" : true
+ }
+}
diff --git a/mih_ui/ios/Runner/Assets.xcassets/mzansi_directory_sc.imageset/mzansi_directory.svg b/mih_ui/ios/Runner/Assets.xcassets/mzansi_directory_sc.imageset/mzansi_directory.svg
new file mode 100644
index 00000000..5f22d7f9
--- /dev/null
+++ b/mih_ui/ios/Runner/Assets.xcassets/mzansi_directory_sc.imageset/mzansi_directory.svg
@@ -0,0 +1,21 @@
+
+
+
+
diff --git a/Frontend/ios/Runner/Assets.xcassets/mzansi_wallet_sc.imageset/Contents.json b/mih_ui/ios/Runner/Assets.xcassets/mzansi_wallet_sc.imageset/Contents.json
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/mzansi_wallet_sc.imageset/Contents.json
rename to mih_ui/ios/Runner/Assets.xcassets/mzansi_wallet_sc.imageset/Contents.json
diff --git a/Frontend/ios/Runner/Assets.xcassets/mzansi_wallet_sc.imageset/mzansi_wallet.svg b/mih_ui/ios/Runner/Assets.xcassets/mzansi_wallet_sc.imageset/mzansi_wallet.svg
similarity index 100%
rename from Frontend/ios/Runner/Assets.xcassets/mzansi_wallet_sc.imageset/mzansi_wallet.svg
rename to mih_ui/ios/Runner/Assets.xcassets/mzansi_wallet_sc.imageset/mzansi_wallet.svg
diff --git a/Frontend/ios/Runner/Base.lproj/LaunchScreen.storyboard b/mih_ui/ios/Runner/Base.lproj/LaunchScreen.storyboard
similarity index 100%
rename from Frontend/ios/Runner/Base.lproj/LaunchScreen.storyboard
rename to mih_ui/ios/Runner/Base.lproj/LaunchScreen.storyboard
diff --git a/Frontend/ios/Runner/Base.lproj/Main.storyboard b/mih_ui/ios/Runner/Base.lproj/Main.storyboard
similarity index 100%
rename from Frontend/ios/Runner/Base.lproj/Main.storyboard
rename to mih_ui/ios/Runner/Base.lproj/Main.storyboard
diff --git a/mih_ui/ios/Runner/GoogleService-Info.plist b/mih_ui/ios/Runner/GoogleService-Info.plist
new file mode 100644
index 00000000..afac0e1e
--- /dev/null
+++ b/mih_ui/ios/Runner/GoogleService-Info.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ API_KEY
+ AIzaSyDRqY5I5CXjEtWkUX1YUfKT8IUlln9PUuY
+ GCM_SENDER_ID
+ 33677883408
+ PLIST_VERSION
+ 1
+ BUNDLE_ID
+ za.co.mzansiinnovationhub.mih
+ PROJECT_ID
+ mzansi-innovation-hub
+ STORAGE_BUCKET
+ mzansi-innovation-hub.firebasestorage.app
+ IS_ADS_ENABLED
+
+ IS_ANALYTICS_ENABLED
+
+ IS_APPINVITE_ENABLED
+
+ IS_GCM_ENABLED
+
+ IS_SIGNIN_ENABLED
+
+ GOOGLE_APP_ID
+ 1:33677883408:ios:2048dac086428716223295
+
+
\ No newline at end of file
diff --git a/Frontend/ios/Runner/Info.plist b/mih_ui/ios/Runner/Info.plist
similarity index 100%
rename from Frontend/ios/Runner/Info.plist
rename to mih_ui/ios/Runner/Info.plist
diff --git a/Frontend/ios/Runner/Runner-Bridging-Header.h b/mih_ui/ios/Runner/Runner-Bridging-Header.h
similarity index 100%
rename from Frontend/ios/Runner/Runner-Bridging-Header.h
rename to mih_ui/ios/Runner/Runner-Bridging-Header.h
diff --git a/Frontend/ios/Runner/Runner.entitlements b/mih_ui/ios/Runner/Runner.entitlements
similarity index 100%
rename from Frontend/ios/Runner/Runner.entitlements
rename to mih_ui/ios/Runner/Runner.entitlements
diff --git a/Frontend/ios/RunnerTests/RunnerTests.swift b/mih_ui/ios/RunnerTests/RunnerTests.swift
similarity index 100%
rename from Frontend/ios/RunnerTests/RunnerTests.swift
rename to mih_ui/ios/RunnerTests/RunnerTests.swift
diff --git a/mih_ui/lib/firebase_options.dart b/mih_ui/lib/firebase_options.dart
new file mode 100644
index 00000000..b606fb0e
--- /dev/null
+++ b/mih_ui/lib/firebase_options.dart
@@ -0,0 +1,89 @@
+// File generated by FlutterFire CLI.
+// ignore_for_file: type=lint
+import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
+import 'package:flutter/foundation.dart'
+ show defaultTargetPlatform, kIsWeb, TargetPlatform;
+
+/// Default [FirebaseOptions] for use with your Firebase apps.
+///
+/// Example:
+/// ```dart
+/// import 'firebase_options.dart';
+/// // ...
+/// await Firebase.initializeApp(
+/// options: DefaultFirebaseOptions.currentPlatform,
+/// );
+/// ```
+class DefaultFirebaseOptions {
+ static FirebaseOptions get currentPlatform {
+ if (kIsWeb) {
+ return web;
+ }
+ switch (defaultTargetPlatform) {
+ case TargetPlatform.android:
+ return android;
+ case TargetPlatform.iOS:
+ return ios;
+ case TargetPlatform.macOS:
+ return macos;
+ case TargetPlatform.windows:
+ return windows;
+ case TargetPlatform.linux:
+ return web;
+ // throw UnsupportedError(
+ // 'DefaultFirebaseOptions have not been configured for linux - '
+ // 'you can reconfigure this by running the FlutterFire CLI again.',
+ // );
+ default:
+ throw UnsupportedError(
+ 'DefaultFirebaseOptions are not supported for this platform.',
+ );
+ }
+ }
+
+ static const FirebaseOptions web = FirebaseOptions(
+ apiKey: 'AIzaSyDN-f4sJ4n_fyvrLR193_IIkTsccRVUQxw',
+ appId: '1:33677883408:web:47b8021df7fcacd2223295',
+ messagingSenderId: '33677883408',
+ projectId: 'mzansi-innovation-hub',
+ authDomain: 'mzansi-innovation-hub.firebaseapp.com',
+ storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
+ measurementId: 'G-Y3B5E3HCJY',
+ );
+
+ static const FirebaseOptions android = FirebaseOptions(
+ apiKey: 'AIzaSyBUkjWdu9YcgiF-e9TC5hoiEoCjPyjA5hU',
+ appId: '1:33677883408:android:ebd8565991c56257223295',
+ messagingSenderId: '33677883408',
+ projectId: 'mzansi-innovation-hub',
+ storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
+ );
+
+ static const FirebaseOptions ios = FirebaseOptions(
+ apiKey: 'AIzaSyDRqY5I5CXjEtWkUX1YUfKT8IUlln9PUuY',
+ appId: '1:33677883408:ios:2048dac086428716223295',
+ messagingSenderId: '33677883408',
+ projectId: 'mzansi-innovation-hub',
+ storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
+ iosBundleId: 'za.co.mzansiinnovationhub.mih',
+ );
+
+ static const FirebaseOptions macos = FirebaseOptions(
+ apiKey: 'AIzaSyDRqY5I5CXjEtWkUX1YUfKT8IUlln9PUuY',
+ appId: '1:33677883408:ios:e2db11a42fc3452e223295',
+ messagingSenderId: '33677883408',
+ projectId: 'mzansi-innovation-hub',
+ storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
+ iosBundleId: 'com.example.patientManager',
+ );
+
+ static const FirebaseOptions windows = FirebaseOptions(
+ apiKey: 'AIzaSyDN-f4sJ4n_fyvrLR193_IIkTsccRVUQxw',
+ appId: '1:33677883408:web:e08becaef3261c59223295',
+ messagingSenderId: '33677883408',
+ projectId: 'mzansi-innovation-hub',
+ authDomain: 'mzansi-innovation-hub.firebaseapp.com',
+ storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
+ measurementId: 'G-FKKENBX8TT',
+ );
+}
diff --git a/Frontend/lib/main.dart b/mih_ui/lib/main.dart
similarity index 93%
rename from Frontend/lib/main.dart
rename to mih_ui/lib/main.dart
index d7c10422..edf94144 100644
--- a/Frontend/lib/main.dart
+++ b/mih_ui/lib/main.dart
@@ -1,3 +1,5 @@
+import 'dart:io';
+
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
@@ -50,6 +52,10 @@ class _MzansiInnovationHubState extends State {
KenLogger.success("ShortCut: mihHome");
widget.router.goNamed("mihHome");
}
+ if (shortcutType == 'mzansiDirectory') {
+ KenLogger.success("ShortCut: mzansiDirectory");
+ widget.router.goNamed("mzansiDirectory");
+ }
if (shortcutType == 'mzansiWallet') {
KenLogger.success("ShortCut: mzansiWallet");
widget.router.goNamed("mzansiWallet");
@@ -65,6 +71,11 @@ class _MzansiInnovationHubState extends State {
});
// Set the quick actions
quickActions.setShortcutItems([
+ const ShortcutItem(
+ type: 'mzansiDirectory',
+ localizedTitle: 'Mzansi Directory',
+ icon: 'mzansi_directory_sc',
+ ),
const ShortcutItem(
type: 'mzansiWallet',
localizedTitle: 'Mzansi Wallet',
@@ -92,7 +103,7 @@ class _MzansiInnovationHubState extends State {
@override
void initState() {
super.initState();
- if (!kIsWeb) {
+ if (!kIsWeb && (Platform.isAndroid || Platform.isIOS)) {
_initializeQuickActions();
}
theme = MihTheme();
diff --git a/Frontend/lib/main_dev.dart b/mih_ui/lib/main_dev.dart
similarity index 80%
rename from Frontend/lib/main_dev.dart
rename to mih_ui/lib/main_dev.dart
index c0bd70f0..437c62b9 100644
--- a/Frontend/lib/main_dev.dart
+++ b/mih_ui/lib/main_dev.dart
@@ -1,3 +1,5 @@
+import 'dart:io';
+
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
@@ -19,7 +21,13 @@ void main() async {
apiDomain: AppEnviroment.baseApiUrl,
apiBasePath: "/auth",
);
- if (!kIsWeb) {
+ // await Firebase.initializeApp(
+ // // options: DefaultFirebaseOptions.currentPlatform,
+ // options: (Platform.isLinux)
+ // ? DefaultFirebaseOptions.web // Forces Linux to use the Web config
+ // : DefaultFirebaseOptions.currentPlatform,
+ // );
+ if (!kIsWeb && (Platform.isAndroid || Platform.isIOS)) {
const List testDeviceIds = ['733d4c68-9b54-453a-9622-2df407310f40'];
MobileAds.instance.updateRequestConfiguration(
RequestConfiguration(
diff --git a/Frontend/lib/main_prod.dart b/mih_ui/lib/main_prod.dart
similarity index 83%
rename from Frontend/lib/main_prod.dart
rename to mih_ui/lib/main_prod.dart
index 2facd8be..c8ce2935 100644
--- a/Frontend/lib/main_prod.dart
+++ b/mih_ui/lib/main_prod.dart
@@ -1,3 +1,5 @@
+import 'dart:io';
+
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
@@ -19,7 +21,10 @@ void main() async {
apiDomain: AppEnviroment.baseApiUrl,
apiBasePath: "/auth",
);
- if (!kIsWeb) {
+ // await Firebase.initializeApp(
+ // options: DefaultFirebaseOptions.currentPlatform,
+ // );
+ if (!kIsWeb && (Platform.isAndroid || Platform.isIOS)) {
MobileAds.instance.initialize();
} else {
usePathUrlStrategy();
@@ -29,5 +34,7 @@ void main() async {
});
final GoRouter appRouter = MihGoRouter().mihRouter;
FlutterNativeSplash.remove();
- runApp(MzansiInnovationHub(router: appRouter,));
+ runApp(MzansiInnovationHub(
+ router: appRouter,
+ ));
}
diff --git a/Frontend/lib/mih_config/mih_colors.dart b/mih_ui/lib/mih_config/mih_colors.dart
similarity index 77%
rename from Frontend/lib/mih_config/mih_colors.dart
rename to mih_ui/lib/mih_config/mih_colors.dart
index 6c21eee8..8422230e 100644
--- a/Frontend/lib/mih_config/mih_colors.dart
+++ b/mih_ui/lib/mih_config/mih_colors.dart
@@ -4,41 +4,41 @@ class MihColors {
bool women4Change = true;
static Color getPrimaryColor(bool darkMode) {
if (darkMode == true) {
- // return const Color(0XFF3A4454); // Original
- return const Color(0XFF6641b2); // Women4change
+ return const Color(0XFF3A4454); // Original
+ // return const Color(0XFF6641b2); // Women4change
} else {
- // return const Color(0XFFbedcfe); // Original
- return const Color(0xFFE0D1FF); // Women4change
+ return const Color(0XFFbedcfe); // Original
+ // return const Color(0xFFE0D1FF); // Women4change
}
}
static Color getSecondaryColor(bool darkMode) {
if (darkMode == true) {
- // return const Color(0XFFbedcfe); // Original
- return const Color(0xFFE0D1FF); // Women4change
+ return const Color(0XFFbedcfe); // Original
+ // return const Color(0xFFE0D1FF); // Women4change
} else {
- // return const Color(0XFF3A4454); // Original
- return const Color(0XFF6641b2); // Women4change
+ return const Color(0XFF3A4454); // Original
+ // return const Color(0XFF6641b2); // Women4change
}
}
static Color getSecondaryInvertedColor(bool darkMode) {
if (darkMode == true) {
- // return const Color(0XFF412301); // Original
- return const Color(0XFF1f2e00); // Women4change
+ return const Color(0XFF412301); // Original
+ // return const Color(0XFF1f2e00); // Women4change
} else {
- // return const Color(0XFFc5bbab); // Original
- return const Color(0XFF99be4d); // Women4change
+ return const Color(0XFFc5bbab); // Original
+ // return const Color(0XFF99be4d); // Women4change
}
}
static Color getHighlightColor(bool darkMode) {
if (darkMode == true) {
- // return const Color(0XFF9bc7fa);
- return const Color(0xFFC8AFFB); // Women4change
+ return const Color(0XFF9bc7fa);
+ // return const Color(0xFFC8AFFB); // Women4change
} else {
- // return const Color(0XFF354866);
- return const Color(0XFF6641b2); // Women4change
+ return const Color(0XFF354866);
+ // return const Color(0XFF6641b2); // Women4change
}
}
diff --git a/Frontend/lib/mih_config/mih_env.dart b/mih_ui/lib/mih_config/mih_env.dart
similarity index 100%
rename from Frontend/lib/mih_config/mih_env.dart
rename to mih_ui/lib/mih_config/mih_env.dart
diff --git a/Frontend/lib/mih_config/mih_go_router.dart b/mih_ui/lib/mih_config/mih_go_router.dart
similarity index 99%
rename from Frontend/lib/mih_config/mih_go_router.dart
rename to mih_ui/lib/mih_config/mih_go_router.dart
index f23dbfcf..545d04d3 100644
--- a/Frontend/lib/mih_config/mih_go_router.dart
+++ b/mih_ui/lib/mih_config/mih_go_router.dart
@@ -198,6 +198,7 @@ class MihGoRouter {
}
return MzansiBusinessProfileView(
businessId: businessId,
+ fromMzansiDirectory: businessId == null,
);
},
),
diff --git a/mih_ui/lib/mih_config/mih_theme.dart b/mih_ui/lib/mih_config/mih_theme.dart
new file mode 100644
index 00000000..dd7ea4c1
--- /dev/null
+++ b/mih_ui/lib/mih_config/mih_theme.dart
@@ -0,0 +1,145 @@
+import 'package:flutter/material.dart';
+import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
+import "package:universal_html/html.dart" as html;
+
+class MihTheme {
+ late String mode;
+ late String screenType;
+ late AssetImage loading;
+ late String loadingAssetText;
+ late TargetPlatform platform;
+ bool kIsWeb = const bool.fromEnvironment('dart.library.js_util');
+ String latestVersion = "1.2.5";
+ MihTheme() {
+ mode = "Dark";
+ }
+
+ ThemeData getData(bool bool) {
+ return ThemeData(
+ fontFamily: 'Segoe UI',
+ scaffoldBackgroundColor: MihColors.getPrimaryColor(mode == "Dark"),
+ colorScheme: ColorScheme(
+ brightness: getBritness(),
+ primary: MihColors.getSecondaryColor(mode == "Dark"),
+ onPrimary: MihColors.getPrimaryColor(mode == "Dark"),
+ secondary: MihColors.getPrimaryColor(mode == "Dark"),
+ onSecondary: MihColors.getSecondaryColor(mode == "Dark"),
+ error: MihColors.getRedColor(mode == "Dark"),
+ onError: MihColors.getPrimaryColor(mode == "Dark"),
+ surface: MihColors.getPrimaryColor(mode == "Dark"),
+ onSurface: MihColors.getSecondaryColor(mode == "Dark"),
+ ),
+ datePickerTheme: DatePickerThemeData(
+ backgroundColor: MihColors.getPrimaryColor(mode == "Dark"),
+ headerBackgroundColor: MihColors.getSecondaryColor(mode == "Dark"),
+ headerForegroundColor: MihColors.getPrimaryColor(mode == "Dark"),
+ ),
+ appBarTheme: AppBarTheme(
+ color: MihColors.getSecondaryColor(mode == "Dark"),
+ foregroundColor: MihColors.getPrimaryColor(mode == "Dark"),
+ titleTextStyle: TextStyle(
+ color: MihColors.getPrimaryColor(mode == "Dark"),
+ fontSize: 25,
+ fontWeight: FontWeight.bold,
+ ),
+ ),
+ floatingActionButtonTheme: FloatingActionButtonThemeData(
+ backgroundColor: MihColors.getSecondaryColor(mode == "Dark"),
+ foregroundColor: MihColors.getPrimaryColor(mode == "Dark"),
+ extendedTextStyle:
+ TextStyle(color: MihColors.getPrimaryColor(mode == "Dark")),
+ ),
+ drawerTheme: DrawerThemeData(
+ backgroundColor: MihColors.getPrimaryColor(mode == "Dark"),
+ ),
+ textSelectionTheme: TextSelectionThemeData(
+ cursorColor: MihColors.getPrimaryColor(mode == "Dark"),
+ selectionColor:
+ MihColors.getPrimaryColor(mode == "Dark").withOpacity(0.25),
+ selectionHandleColor: MihColors.getPrimaryColor(mode == "Dark"),
+ ),
+ tooltipTheme: TooltipThemeData(
+ decoration: BoxDecoration(
+ color: MihColors.getSecondaryColor(mode == "Dark"),
+ borderRadius: BorderRadius.circular(6),
+ border: Border.all(
+ width: 1.0,
+ color: MihColors.getPrimaryColor(mode == "Dark"),
+ ),
+ boxShadow: [
+ BoxShadow(
+ color:
+ MihColors.getPrimaryColor(mode == "Dark").withOpacity(0.18),
+ blurRadius: 6,
+ offset: const Offset(0, 2),
+ ),
+ ],
+ ),
+ textStyle: TextStyle(
+ color: MihColors.getPrimaryColor(mode == "Dark"),
+ fontSize: 13,
+ height: 1.2,
+ ),
+ waitDuration: const Duration(milliseconds: 500),
+ showDuration: const Duration(seconds: 3),
+ preferBelow: true,
+ verticalOffset: 24,
+ padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
+ triggerMode: TooltipTriggerMode.longPress,
+ ),
+ );
+ }
+
+ String getPlatform() {
+ if (kIsWeb) {
+ return "Web";
+ } else if (!kIsWeb) {
+ if (platform == TargetPlatform.android) {
+ return "Android";
+ } else if (platform == TargetPlatform.iOS) {
+ return "iOS";
+ }
+ }
+ return "Other";
+ }
+
+ bool isPwa() {
+ return html.window.matchMedia('(display-mode: standalone)').matches;
+ }
+
+ void setMode(String m) {
+ mode;
+ }
+
+ String getLatestVersion() {
+ return latestVersion;
+ }
+
+ ThemeData getThemeData() {
+ return getData(mode == "Dark");
+ }
+
+ ThemeData darkMode() {
+ return getData(mode == "Dark");
+ }
+
+ ThemeData lightMode() {
+ return getData(mode == "Dark");
+ }
+
+ Brightness getBritness() {
+ if (mode == "Dark") {
+ return Brightness.dark;
+ } else {
+ return Brightness.light;
+ }
+ }
+
+ void setScreenType(double width) {
+ if (width <= 800) {
+ screenType = "mobile";
+ } else {
+ screenType = "desktop";
+ }
+ }
+}
diff --git a/Frontend/lib/mih_objects/access_request.dart b/mih_ui/lib/mih_objects/access_request.dart
similarity index 100%
rename from Frontend/lib/mih_objects/access_request.dart
rename to mih_ui/lib/mih_objects/access_request.dart
diff --git a/Frontend/lib/mih_objects/app_user.dart b/mih_ui/lib/mih_objects/app_user.dart
similarity index 100%
rename from Frontend/lib/mih_objects/app_user.dart
rename to mih_ui/lib/mih_objects/app_user.dart
diff --git a/Frontend/lib/mih_objects/appointment.dart b/mih_ui/lib/mih_objects/appointment.dart
similarity index 100%
rename from Frontend/lib/mih_objects/appointment.dart
rename to mih_ui/lib/mih_objects/appointment.dart
diff --git a/Frontend/lib/mih_objects/arguments.dart b/mih_ui/lib/mih_objects/arguments.dart
similarity index 100%
rename from Frontend/lib/mih_objects/arguments.dart
rename to mih_ui/lib/mih_objects/arguments.dart
diff --git a/Frontend/lib/mih_objects/bookmarked_business.dart b/mih_ui/lib/mih_objects/bookmarked_business.dart
similarity index 100%
rename from Frontend/lib/mih_objects/bookmarked_business.dart
rename to mih_ui/lib/mih_objects/bookmarked_business.dart
diff --git a/Frontend/lib/mih_objects/business.dart b/mih_ui/lib/mih_objects/business.dart
similarity index 100%
rename from Frontend/lib/mih_objects/business.dart
rename to mih_ui/lib/mih_objects/business.dart
diff --git a/Frontend/lib/mih_objects/business_employee.dart b/mih_ui/lib/mih_objects/business_employee.dart
similarity index 100%
rename from Frontend/lib/mih_objects/business_employee.dart
rename to mih_ui/lib/mih_objects/business_employee.dart
diff --git a/Frontend/lib/mih_objects/business_review.dart b/mih_ui/lib/mih_objects/business_review.dart
similarity index 100%
rename from Frontend/lib/mih_objects/business_review.dart
rename to mih_ui/lib/mih_objects/business_review.dart
diff --git a/Frontend/lib/mih_objects/business_user.dart b/mih_ui/lib/mih_objects/business_user.dart
similarity index 100%
rename from Frontend/lib/mih_objects/business_user.dart
rename to mih_ui/lib/mih_objects/business_user.dart
diff --git a/Frontend/lib/mih_objects/claim_statement_file.dart b/mih_ui/lib/mih_objects/claim_statement_file.dart
similarity index 100%
rename from Frontend/lib/mih_objects/claim_statement_file.dart
rename to mih_ui/lib/mih_objects/claim_statement_file.dart
diff --git a/Frontend/lib/mih_objects/currency.dart b/mih_ui/lib/mih_objects/currency.dart
similarity index 100%
rename from Frontend/lib/mih_objects/currency.dart
rename to mih_ui/lib/mih_objects/currency.dart
diff --git a/Frontend/lib/mih_objects/email_and_patient_screen_args.dart b/mih_ui/lib/mih_objects/email_and_patient_screen_args.dart
similarity index 100%
rename from Frontend/lib/mih_objects/email_and_patient_screen_args.dart
rename to mih_ui/lib/mih_objects/email_and_patient_screen_args.dart
diff --git a/Frontend/lib/mih_objects/files.dart b/mih_ui/lib/mih_objects/files.dart
similarity index 100%
rename from Frontend/lib/mih_objects/files.dart
rename to mih_ui/lib/mih_objects/files.dart
diff --git a/Frontend/lib/mih_objects/icd10_code.dart.dart b/mih_ui/lib/mih_objects/icd10_code.dart.dart
similarity index 100%
rename from Frontend/lib/mih_objects/icd10_code.dart.dart
rename to mih_ui/lib/mih_objects/icd10_code.dart.dart
diff --git a/Frontend/lib/mih_objects/loyalty_card.dart b/mih_ui/lib/mih_objects/loyalty_card.dart
similarity index 100%
rename from Frontend/lib/mih_objects/loyalty_card.dart
rename to mih_ui/lib/mih_objects/loyalty_card.dart
diff --git a/Frontend/lib/mih_objects/medicine.dart b/mih_ui/lib/mih_objects/medicine.dart
similarity index 100%
rename from Frontend/lib/mih_objects/medicine.dart
rename to mih_ui/lib/mih_objects/medicine.dart
diff --git a/Frontend/lib/mih_objects/minesweeper_player_score.dart b/mih_ui/lib/mih_objects/minesweeper_player_score.dart
similarity index 100%
rename from Frontend/lib/mih_objects/minesweeper_player_score.dart
rename to mih_ui/lib/mih_objects/minesweeper_player_score.dart
diff --git a/Frontend/lib/mih_objects/notes.dart b/mih_ui/lib/mih_objects/notes.dart
similarity index 100%
rename from Frontend/lib/mih_objects/notes.dart
rename to mih_ui/lib/mih_objects/notes.dart
diff --git a/Frontend/lib/mih_objects/notification.dart b/mih_ui/lib/mih_objects/notification.dart
similarity index 100%
rename from Frontend/lib/mih_objects/notification.dart
rename to mih_ui/lib/mih_objects/notification.dart
diff --git a/Frontend/lib/mih_objects/patient_access.dart b/mih_ui/lib/mih_objects/patient_access.dart
similarity index 100%
rename from Frontend/lib/mih_objects/patient_access.dart
rename to mih_ui/lib/mih_objects/patient_access.dart
diff --git a/Frontend/lib/mih_objects/patient_queue.dart b/mih_ui/lib/mih_objects/patient_queue.dart
similarity index 100%
rename from Frontend/lib/mih_objects/patient_queue.dart
rename to mih_ui/lib/mih_objects/patient_queue.dart
diff --git a/Frontend/lib/mih_objects/patients.dart b/mih_ui/lib/mih_objects/patients.dart
similarity index 100%
rename from Frontend/lib/mih_objects/patients.dart
rename to mih_ui/lib/mih_objects/patients.dart
diff --git a/Frontend/lib/mih_objects/perscription.dart b/mih_ui/lib/mih_objects/perscription.dart
similarity index 100%
rename from Frontend/lib/mih_objects/perscription.dart
rename to mih_ui/lib/mih_objects/perscription.dart
diff --git a/mih_ui/lib/mih_objects/profile_link.dart b/mih_ui/lib/mih_objects/profile_link.dart
new file mode 100644
index 00000000..103a1e72
--- /dev/null
+++ b/mih_ui/lib/mih_objects/profile_link.dart
@@ -0,0 +1,35 @@
+class ProfileLink {
+ final int idprofile_links;
+ final String app_id;
+ final String business_id;
+ final String destination;
+ final String web_link;
+
+ const ProfileLink({
+ required this.idprofile_links,
+ required this.app_id,
+ required this.business_id,
+ required this.destination,
+ required this.web_link,
+ });
+
+ factory ProfileLink.fromJson(Map json) {
+ return ProfileLink(
+ idprofile_links: json['idprofile_links'],
+ app_id: json['app_id'],
+ business_id: json['business_id'],
+ destination: json['destination'],
+ web_link: json['web_link'],
+ );
+ }
+
+ Map toJson() {
+ return {
+ 'idprofile_links': idprofile_links,
+ 'app_id': app_id,
+ 'business_id': business_id,
+ 'destination': destination,
+ 'web_link': web_link,
+ };
+ }
+}
diff --git a/Frontend/lib/mih_objects/session_st.dart b/mih_ui/lib/mih_objects/session_st.dart
similarity index 100%
rename from Frontend/lib/mih_objects/session_st.dart
rename to mih_ui/lib/mih_objects/session_st.dart
diff --git a/Frontend/lib/mih_objects/user_consent.dart b/mih_ui/lib/mih_objects/user_consent.dart
similarity index 100%
rename from Frontend/lib/mih_objects/user_consent.dart
rename to mih_ui/lib/mih_objects/user_consent.dart
diff --git a/Frontend/lib/mih_package_components/Example/package_test.dart b/mih_ui/lib/mih_package_components/Example/package_test.dart
similarity index 90%
rename from Frontend/lib/mih_package_components/Example/package_test.dart
rename to mih_ui/lib/mih_package_components/Example/package_test.dart
index a85355ec..f69cb639 100644
--- a/Frontend/lib/mih_package_components/Example/package_test.dart
+++ b/mih_ui/lib/mih_package_components/Example/package_test.dart
@@ -1,4 +1,5 @@
import 'package:go_router/go_router.dart';
+import 'package:mzansi_innovation_hub/mih_package_components/Example/package_tools/package_tool_three.dart';
import 'package:mzansi_innovation_hub/mih_package_components/Example/package_tools/package_tool_zero.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_action.dart';
@@ -31,9 +32,11 @@ class _PackageTestState extends State {
});
MzansiProfileProvider mzansiProfileProvider =
context.read();
- await MihDataHelperServices().loadUserDataWithBusinessesData(
- mzansiProfileProvider,
- );
+ if (mzansiProfileProvider.user == null) {
+ await MihDataHelperServices().loadUserDataWithBusinessesData(
+ mzansiProfileProvider,
+ );
+ }
setState(() {
_isLoadingInitialData = false;
});
@@ -60,21 +63,26 @@ class _PackageTestState extends State {
MihPackageTools getTools() {
Map temp = Map();
- temp[const Icon(Icons.warning)] = () {
+ temp[const Icon(Icons.link)] = () {
setState(() {
_selcetedIndex = 0;
});
};
- temp[const Icon(Icons.inbox)] = () {
+ temp[const Icon(Icons.warning)] = () {
setState(() {
_selcetedIndex = 1;
});
};
- temp[const Icon(Icons.outbond)] = () {
+ temp[const Icon(Icons.inbox)] = () {
setState(() {
_selcetedIndex = 2;
});
};
+ temp[const Icon(Icons.outbond)] = () {
+ setState(() {
+ _selcetedIndex = 3;
+ });
+ };
return MihPackageTools(
tools: temp,
selcetedIndex: _selcetedIndex,
@@ -89,6 +97,7 @@ class _PackageTestState extends State {
MzansiProfileProvider profileProvider =
context.read();
List toolBodies = [
+ const PackageToolThree(),
const PackageToolZero(),
PackageToolOne(
user: profileProvider.user!,
diff --git a/Frontend/lib/mih_package_components/Example/package_tiles/test_package_tile.dart b/mih_ui/lib/mih_package_components/Example/package_tiles/test_package_tile.dart
similarity index 68%
rename from Frontend/lib/mih_package_components/Example/package_tiles/test_package_tile.dart
rename to mih_ui/lib/mih_package_components/Example/package_tiles/test_package_tile.dart
index 6cf7c228..a3c2ca54 100644
--- a/Frontend/lib/mih_package_components/Example/package_tiles/test_package_tile.dart
+++ b/mih_ui/lib/mih_package_components/Example/package_tiles/test_package_tile.dart
@@ -1,20 +1,13 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:mzansi_innovation_hub/main.dart';
-import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
-import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
-import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tile.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
class TestPackageTile extends StatefulWidget {
- final AppUser signedInUser;
- final Business? business;
final double packageSize;
const TestPackageTile({
super.key,
- required this.signedInUser,
- required this.business,
required this.packageSize,
});
@@ -29,10 +22,6 @@ class _TestPackageTileState extends State {
onTap: () {
context.goNamed(
'testPackage',
- extra: TestArguments(
- widget.signedInUser,
- widget.business,
- ),
);
// Navigator.of(context).pushNamed(
// '/package-dev',
@@ -49,9 +38,7 @@ class _TestPackageTileState extends State {
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
),
iconSize: widget.packageSize,
- primaryColor: MihColors.getSecondaryColor(
- MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
- secondaryColor: MihColors.getPrimaryColor(
+ textColor: MihColors.getSecondaryColor(
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
);
}
diff --git a/Frontend/lib/mih_package_components/Example/package_tools/package_tool_one.dart b/mih_ui/lib/mih_package_components/Example/package_tools/package_tool_one.dart
similarity index 96%
rename from Frontend/lib/mih_package_components/Example/package_tools/package_tool_one.dart
rename to mih_ui/lib/mih_package_components/Example/package_tools/package_tool_one.dart
index 0bb85e04..3406a341 100644
--- a/Frontend/lib/mih_package_components/Example/package_tools/package_tool_one.dart
+++ b/mih_ui/lib/mih_package_components/Example/package_tools/package_tool_one.dart
@@ -8,12 +8,9 @@ import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_banner_ad.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_business_profile_preview.dart';
-import 'package:mzansi_innovation_hub/mih_package_components/mih_personal_profile_preview.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_loading_circle.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart';
-// import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart';
+import 'package:mzansi_innovation_hub/mih_package_components/mih_business_info_card.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_location_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
@@ -157,11 +154,7 @@ class _PackageToolOneState extends State {
super.initState();
setState(() {
imagePreview = null;
- // const NetworkImage(
- // "https://lh3.googleusercontent.com/nW4ZZ89Q1ATz7Ht3nsAVWXL_cwNi4gNusqQZiL60UuuI3FG-VM7bTYDoJ-sUr2kDTdorfQYjxo5PjDM-0MO5rA=s512");
});
-
- // myCoordinates = MIHLocationAPI().getGPSPosition(context);
}
Widget getBody(double width) {
@@ -343,9 +336,9 @@ class _PackageToolOneState extends State {
],
),
const SizedBox(height: 10),
- MihPersonalProfilePreview(
- user: widget.user,
- ),
+ // MihPersonalProfilePreview(
+ // user: widget.user,
+ // ),
const SizedBox(height: 10),
Row(
mainAxisAlignment: MainAxisAlignment.center,
@@ -393,16 +386,16 @@ class _PackageToolOneState extends State {
child: Center(child: Text("Location unavailable")),
);
} else {
- final myLocation = asyncSnapshot.data
- .toString()
- .replaceAll("Latitude: ", "")
- .replaceAll("Longitude: ", "");
- print("My Location is this: $myLocation");
- return widget.business != null
- ? MihBusinessProfilePreview(
- business: widget.business!,
- )
- : Text("NoBusiness Data");
+ // final myLocation = asyncSnapshot.data
+ // .toString()
+ // .replaceAll("Latitude: ", "")
+ // .replaceAll("Longitude: ", "");
+ // print("My Location is this: $myLocation");
+ // return widget.business != null
+ // ? MihBusinessProfilePreview(
+ // business: widget.business!,
+ // )
+ return Text("NoBusiness Data");
}
}),
// const SizedBox(height: 10),
diff --git a/mih_ui/lib/mih_package_components/Example/package_tools/package_tool_three.dart b/mih_ui/lib/mih_package_components/Example/package_tools/package_tool_three.dart
new file mode 100644
index 00000000..1682426a
--- /dev/null
+++ b/mih_ui/lib/mih_package_components/Example/package_tools/package_tool_three.dart
@@ -0,0 +1,127 @@
+import 'package:flutter/material.dart';
+import 'package:mzansi_innovation_hub/mih_objects/profile_link.dart';
+import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
+import 'package:mzansi_innovation_hub/mih_package_components/mih_profile_links.dart';
+import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
+
+class PackageToolThree extends StatefulWidget {
+ const PackageToolThree({super.key});
+
+ @override
+ State createState() => _PackageToolThreeState();
+}
+
+class _PackageToolThreeState extends State {
+ @override
+ Widget build(BuildContext context) {
+ return MihPackageToolBody(
+ borderOn: false,
+ bodyItem: getBody(),
+ );
+ }
+
+ Widget getBody() {
+ List links = [
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "Youtube",
+ web_link: "https://www.youtube.com/@MzansiInnovationHub",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "Threads",
+ web_link: "https://www.threads.com/@mzansi.innovation.hub",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "TikTok",
+ web_link: "https://www.tiktok.com/@mzansiinnovationhub",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "WhatsApp",
+ web_link: "https://whatsapp.com/channel/0029Vax3INCIyPtMn8KgeM2F",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "Twitch",
+ web_link: "https://www.twitch.tv/mzansiinnovationhub",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "Instagram",
+ web_link: "https://www.instagram.com/mzansi.innovation.hub/",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "X",
+ web_link: "https://x.com/mzansi_inno_hub",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "LinkedIn",
+ web_link: "https://www.linkedin.com/in/yasien-meth-172352108/",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "Facebook",
+ web_link: "https://www.facebook.com/profile.php?id=61565345762136",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "Reddit",
+ web_link: "https://www.reddit.com/r/Mzani_Innovation_Hub/",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "Discord",
+ web_link: "https://discord.gg/ZtTZYd5d",
+ ),
+ ProfileLink(
+ idprofile_links: 1,
+ app_id: "1234",
+ business_id: "",
+ destination: "My App",
+ web_link: "https://app.mzansi-innovation-hub.co.za/about",
+ ),
+ ];
+
+ return Stack(
+ children: [
+ MihSingleChildScroll(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ MihProfileLinks(
+ links: links,
+ // links: [],
+ ),
+ ],
+ ),
+ ),
+ ],
+ );
+ }
+}
diff --git a/Frontend/lib/mih_package_components/Example/package_tools/package_tool_two.dart b/mih_ui/lib/mih_package_components/Example/package_tools/package_tool_two.dart
similarity index 100%
rename from Frontend/lib/mih_package_components/Example/package_tools/package_tool_two.dart
rename to mih_ui/lib/mih_package_components/Example/package_tools/package_tool_two.dart
diff --git a/Frontend/lib/mih_package_components/Example/package_tools/package_tool_zero.dart b/mih_ui/lib/mih_package_components/Example/package_tools/package_tool_zero.dart
similarity index 100%
rename from Frontend/lib/mih_package_components/Example/package_tools/package_tool_zero.dart
rename to mih_ui/lib/mih_package_components/Example/package_tools/package_tool_zero.dart
diff --git a/Frontend/lib/mih_package_components/assets/fonts/Mih_Icons.ttf b/mih_ui/lib/mih_package_components/assets/fonts/Mih_Icons.ttf
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/fonts/Mih_Icons.ttf
rename to mih_ui/lib/mih_package_components/assets/fonts/Mih_Icons.ttf
diff --git a/Frontend/lib/mih_package_components/assets/fonts/icomoon_link.txt b/mih_ui/lib/mih_package_components/assets/fonts/icomoon_link.txt
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/fonts/icomoon_link.txt
rename to mih_ui/lib/mih_package_components/assets/fonts/icomoon_link.txt
diff --git a/Frontend/lib/mih_package_components/assets/fonts/style.css b/mih_ui/lib/mih_package_components/assets/fonts/style.css
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/fonts/style.css
rename to mih_ui/lib/mih_package_components/assets/fonts/style.css
diff --git a/Frontend/lib/mih_package_components/assets/images/app_icon/circle_logo.png b/mih_ui/lib/mih_package_components/assets/images/app_icon/circle_logo.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/app_icon/circle_logo.png
rename to mih_ui/lib/mih_package_components/assets/images/app_icon/circle_logo.png
diff --git a/Frontend/lib/mih_package_components/assets/images/app_icon/mih_app_icon.png b/mih_ui/lib/mih_package_components/assets/images/app_icon/mih_app_icon.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/app_icon/mih_app_icon.png
rename to mih_ui/lib/mih_package_components/assets/images/app_icon/mih_app_icon.png
diff --git a/Frontend/lib/mih_package_components/assets/images/app_icon/mih_logo_app.png b/mih_ui/lib/mih_package_components/assets/images/app_icon/mih_logo_app.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/app_icon/mih_logo_app.png
rename to mih_ui/lib/mih_package_components/assets/images/app_icon/mih_logo_app.png
diff --git a/Frontend/lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png b/mih_ui/lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png
rename to mih_ui/lib/mih_package_components/assets/images/app_icon/mih_logo_app_w4c.png
diff --git a/Frontend/lib/mih_package_components/assets/images/app_icon/mih_logo_web.png b/mih_ui/lib/mih_package_components/assets/images/app_icon/mih_logo_web.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/app_icon/mih_logo_web.png
rename to mih_ui/lib/mih_package_components/assets/images/app_icon/mih_logo_web.png
diff --git a/Frontend/lib/mih_package_components/assets/images/app_icon/mih_logo_web_w4c.png b/mih_ui/lib/mih_package_components/assets/images/app_icon/mih_logo_web_w4c.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/app_icon/mih_logo_web_w4c.png
rename to mih_ui/lib/mih_package_components/assets/images/app_icon/mih_logo_web_w4c.png
diff --git a/Frontend/lib/mih_package_components/assets/images/founder.jpg b/mih_ui/lib/mih_package_components/assets/images/founder.jpg
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/founder.jpg
rename to mih_ui/lib/mih_package_components/assets/images/founder.jpg
diff --git a/Frontend/lib/mih_package_components/assets/images/i-dont-know-dark.png b/mih_ui/lib/mih_package_components/assets/images/i-dont-know-dark.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/i-dont-know-dark.png
rename to mih_ui/lib/mih_package_components/assets/images/i-dont-know-dark.png
diff --git a/Frontend/lib/mih_package_components/assets/images/i-dont-know-light.png b/mih_ui/lib/mih_package_components/assets/images/i-dont-know-light.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/i-dont-know-light.png
rename to mih_ui/lib/mih_package_components/assets/images/i-dont-know-light.png
diff --git a/Frontend/lib/mih_package_components/assets/images/logo_light.png b/mih_ui/lib/mih_package_components/assets/images/logo_light.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/logo_light.png
rename to mih_ui/lib/mih_package_components/assets/images/logo_light.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/apple_tree-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/apple_tree-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/apple_tree-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/apple_tree-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/auchan-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/auchan-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/auchan-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/auchan-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/best_before-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/best_before-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/best_before-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/best_before-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/big_save-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/big_save-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/big_save-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/big_save-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/boxer-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/boxer-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/boxer-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/boxer-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/bp-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/bp-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/bp-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/bp-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/builders-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/builders-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/builders-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/builders-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/carrefour-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/carrefour-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/carrefour-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/carrefour-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/checkers-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/checkers-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/checkers-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/checkers-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/choppies-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/choppies-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/choppies-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/choppies-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/clicks-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/clicks-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/clicks-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/clicks-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/continente-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/continente-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/continente-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/continente-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/cotton_on-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/cotton_on-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/cotton_on-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/cotton_on-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/dischem-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/dischem-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/dischem-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/dischem-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/edgars-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/edgars-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/edgars-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/edgars-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/engen-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/engen-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/engen-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/engen-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/eskom-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/eskom-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/eskom-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/eskom-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/exclusive_books-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/exclusive_books-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/exclusive_books-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/exclusive_books-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/fresh_stop-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/fresh_stop-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/fresh_stop-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/fresh_stop-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/fresmart-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/fresmart-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/fresmart-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/fresmart-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/infinity-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/infinity-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/infinity-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/infinity-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/jet-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/jet-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/jet-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/jet-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/justrite-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/justrite-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/justrite-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/justrite-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/kero-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/kero-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/kero-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/kero-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/leroy_merlin-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/leroy_merlin-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/leroy_merlin-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/leroy_merlin-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/makro-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/makro-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/makro-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/makro-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/naivas-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/naivas-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/naivas-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/naivas-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/ok_food-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/ok_food-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/ok_food-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/ok_food-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/panarottis-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/panarottis-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/panarottis-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/panarottis-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/pick_n_pay-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/pick_n_pay-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/pick_n_pay-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/pick_n_pay-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/plus_more-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/plus_more-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/plus_more-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/plus_more-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/pna-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/pna-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/pna-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/pna-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/pq-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/pq-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/pq-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/pq-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/rage-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/rage-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/rage-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/rage-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/sasol-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/sasol-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/sasol-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/sasol-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/sefalana-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/sefalana-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/sefalana-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/sefalana-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/shell-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/shell-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/shell-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/shell-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/shoprite-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/shoprite-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/shoprite-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/shoprite-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/signature_cosmetics-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/signature_cosmetics-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/signature_cosmetics-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/signature_cosmetics-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/spar-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/spar-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/spar-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/spar-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/spur-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/spur-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/spur-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/spur-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/tfg-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/tfg-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/tfg-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/tfg-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/total_energies-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/total_energies-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/total_energies-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/total_energies-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/toysrus-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/toysrus-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/toysrus-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/toysrus-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/woermann_brock-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/woermann_brock-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/woermann_brock-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/woermann_brock-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/woolworths-min.png b/mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/woolworths-min.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/loyalty_cards/mini/woolworths-min.png
rename to mih_ui/lib/mih_package_components/assets/images/loyalty_cards/mini/woolworths-min.png
diff --git a/Frontend/lib/mih_package_components/assets/images/splash_screen/mih_branding_splash.png b/mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_branding_splash.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/splash_screen/mih_branding_splash.png
rename to mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_branding_splash.png
diff --git a/Frontend/lib/mih_package_components/assets/images/splash_screen/mih_branding_splash_temp.gif b/mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_branding_splash_temp.gif
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/splash_screen/mih_branding_splash_temp.gif
rename to mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_branding_splash_temp.gif
diff --git a/Frontend/lib/mih_package_components/assets/images/splash_screen/mih_image_splash.png b/mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_image_splash.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/splash_screen/mih_image_splash.png
rename to mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_image_splash.png
diff --git a/Frontend/lib/mih_package_components/assets/images/splash_screen/mih_image_splash_android.png b/mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_image_splash_android.png
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/splash_screen/mih_image_splash_android.png
rename to mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_image_splash_android.png
diff --git a/Frontend/lib/mih_package_components/assets/images/splash_screen/mih_image_splash_temp.gif b/mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_image_splash_temp.gif
similarity index 100%
rename from Frontend/lib/mih_package_components/assets/images/splash_screen/mih_image_splash_temp.gif
rename to mih_ui/lib/mih_package_components/assets/images/splash_screen/mih_image_splash_temp.gif
diff --git a/Frontend/lib/mih_package_components/mih_banner_ad.dart b/mih_ui/lib/mih_package_components/mih_banner_ad.dart
similarity index 100%
rename from Frontend/lib/mih_package_components/mih_banner_ad.dart
rename to mih_ui/lib/mih_package_components/mih_banner_ad.dart
diff --git a/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart b/mih_ui/lib/mih_package_components/mih_business_info_card.dart
similarity index 98%
rename from Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart
rename to mih_ui/lib/mih_package_components/mih_business_info_card.dart
index fa5b1440..b17b53a6 100644
--- a/Frontend/lib/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart
+++ b/mih_ui/lib/mih_package_components/mih_business_info_card.dart
@@ -15,6 +15,7 @@ import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profi
import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_business_details_services.dart';
+import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
import 'package:provider/provider.dart';
import 'package:redacted/redacted.dart';
@@ -573,8 +574,16 @@ class _MihBusinessCardState extends State {
businessSearchResults = await MihBusinessDetailsServices()
.searchBusinesses(directoryProvider.searchTerm,
directoryProvider.businessTypeFilter, context);
+ Map> busImagesUrl = {};
+ Future businessLogoUrl;
+ for (var bus in businessSearchResults) {
+ businessLogoUrl = MihFileApi.getMinioFileUrl(bus.logo_path);
+ busImagesUrl[bus.business_id] = businessLogoUrl;
+ }
directoryProvider.setSearchedBusinesses(
- searchedBusinesses: businessSearchResults);
+ searchedBusinesses: businessSearchResults,
+ businessesImagesUrl: busImagesUrl,
+ );
setState(() {
_businessReviewFuture = getUserReview();
});
diff --git a/Frontend/lib/mih_package_components/mih_business_profile_preview.dart b/mih_ui/lib/mih_package_components/mih_business_profile_preview.dart
similarity index 74%
rename from Frontend/lib/mih_package_components/mih_business_profile_preview.dart
rename to mih_ui/lib/mih_package_components/mih_business_profile_preview.dart
index 45864d3d..81cdcf6b 100644
--- a/Frontend/lib/mih_package_components/mih_business_profile_preview.dart
+++ b/mih_ui/lib/mih_package_components/mih_business_profile_preview.dart
@@ -1,4 +1,3 @@
-import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:mzansi_innovation_hub/main.dart';
import 'package:mzansi_innovation_hub/mih_objects/business.dart';
@@ -6,15 +5,18 @@ import 'package:mzansi_innovation_hub/mih_package_components/mih_circle_avatar.d
import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_providers/mzansi_directory_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
-import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_location_services.dart';
import 'package:provider/provider.dart';
class MihBusinessProfilePreview extends StatefulWidget {
final Business business;
+ final ImageProvider