diff --git a/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin
index d22ff67..058aa0a 100644
--- a/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin
+++ b/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin
@@ -2,27 +2,27 @@ C/C++ Structured Logz
 x
 v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/additional_project_files.txtC
 A
-?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint	Ï³£²Ô2 ž•‚ŽÑ2w
+?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint	ß¶§ÕÔ2 ž•‚ŽÑ2w
 u
-s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build.json	Ï³£²Ô2Í Ç•‚ŽÑ2|
+s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build.json	ß¶§ÕÔ2Í Ç•‚ŽÑ2|
 z
-x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build_mini.json	Ï³£²Ô2æ ò•‚ŽÑ2i
+x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build_mini.json	ß¶§ÕÔ2æ ò•‚ŽÑ2i
 g
-e/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja	Ï³£²Ô2 º ¾”‚ŽÑ2m
+e/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja	à¶§ÕÔ2 º ¾”‚ŽÑ2m
 k
-i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja.txt	Ï³£²Ô2r
+i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja.txt	à¶§ÕÔ2r
 p
-n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build_file_index.txt	Ï³£²Ô2
^ ô•‚ŽÑ2s
+n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build_file_index.txt	à¶§ÕÔ2
^ ô•‚ŽÑ2s
 q
-o/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json	Ï³£²Ô2w
+o/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json	à¶§ÕÔ2w
 u
-s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json.bin	Ï³£²Ô2	}
+s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json.bin	à¶§ÕÔ2	}
 {
-y/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/metadata_generation_command.txt	Ï³£²Ô2
+y/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/metadata_generation_command.txt	à¶§ÕÔ2
 Ã ô•‚ŽÑ2p
 n
-l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/prefab_config.json	Ï³£²Ô2
( ô•‚ŽÑ2u
+l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/prefab_config.json	à¶§ÕÔ2
( ô•‚ŽÑ2u
 s
-q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/symbol_folder_index.txt	Ï³£²Ô2
h ô•‚ŽÑ2b
+q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/symbol_folder_index.txt	à¶§ÕÔ2
h ô•‚ŽÑ2b
 `
-^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt	Ï³£²Ô2
¤ ˆÈ¼�Ñ2
\ No newline at end of file
+^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt	à¶§ÕÔ2
¤ ˆÈ¼�Ñ2
\ No newline at end of file
diff --git a/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin
index 3e12eaa..b785511 100644
--- a/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin
+++ b/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin
@@ -2,27 +2,27 @@ C/C++ Structured Log|
 z
 x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/additional_project_files.txtC
 A
-?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint	«´£²Ô2 Åî‚ŽÑ2y
+?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint	Ã·§ÕÔ2 Åî‚ŽÑ2y
 w
-u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build.json	«´£²Ô2Ñ Æî‚ŽÑ2~
+u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build.json	Ã·§ÕÔ2Ñ Æî‚ŽÑ2~
 |
-z/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build_mini.json	«´£²Ô2ê Çî‚ŽÑ2k
+z/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build_mini.json	Ã·§ÕÔ2ê Çî‚ŽÑ2k
 i
-g/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja	«´£²Ô2ªº ¼î‚ŽÑ2o
+g/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja	Ã·§ÕÔ2ªº ¼î‚ŽÑ2o
 m
-k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja.txt	«´£²Ô2t
+k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja.txt	Ã·§ÕÔ2t
 r
-p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build_file_index.txt	«´£²Ô2
^ Èî‚ŽÑ2u
+p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build_file_index.txt	Ã·§ÕÔ2
^ Èî‚ŽÑ2u
 s
-q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json	«´£²Ô2y
+q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json	Ã·§ÕÔ2y
 w
-u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json.bin	«´£²Ô2	
+u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json.bin	Ã·§ÕÔ2	
 }
-{/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/metadata_generation_command.txt	«´£²Ô2
+{/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/metadata_generation_command.txt	Ã·§ÕÔ2
 Í Èî‚ŽÑ2r
 p
-n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/prefab_config.json	«´£²Ô2
( Èî‚ŽÑ2w
+n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/prefab_config.json	Ã·§ÕÔ2
( Èî‚ŽÑ2w
 u
-s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/symbol_folder_index.txt	«´£²Ô2
j Èî‚ŽÑ2b
+s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/symbol_folder_index.txt	Ä·§ÕÔ2
j Èî‚ŽÑ2b
 `
-^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt	«´£²Ô2
¤ ˆÈ¼�Ñ2
\ No newline at end of file
+^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt	Ä·§ÕÔ2
¤ ˆÈ¼�Ñ2
\ No newline at end of file
diff --git a/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin
index 756fb5b..24010ea 100644
--- a/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin
+++ b/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin
@@ -2,27 +2,27 @@ C/C++ Structured Logt
 r
 p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/additional_project_files.txtC
 A
-?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint	î´£²Ô2 –ð‚ŽÑ2q
+?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint	€¸§ÕÔ2 –ð‚ŽÑ2q
 o
-m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build.json	î´£²Ô2Á ˜ð‚ŽÑ2v
+m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build.json	€¸§ÕÔ2Á ˜ð‚ŽÑ2v
 t
-r/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build_mini.json	î´£²Ô2Ú šð‚ŽÑ2c
+r/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build_mini.json	€¸§ÕÔ2Ú šð‚ŽÑ2c
 a
-_/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja	î´£²Ô2‚º Žð‚ŽÑ2g
+_/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja	€¸§ÕÔ2‚º Žð‚ŽÑ2g
 e
-c/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja.txt	î´£²Ô2l
+c/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja.txt	€¸§ÕÔ2l
 j
-h/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build_file_index.txt	î´£²Ô2
^ ›ð‚ŽÑ2m
+h/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build_file_index.txt	€¸§ÕÔ2
^ ›ð‚ŽÑ2m
 k
-i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json	î´£²Ô2q
+i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json	€¸§ÕÔ2q
 o
-m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json.bin	î´£²Ô2	w
+m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json.bin	€¸§ÕÔ2	w
 u
-s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/metadata_generation_command.txt	î´£²Ô2
+s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/metadata_generation_command.txt	€¸§ÕÔ2
 ¥ ›ð‚ŽÑ2j
 h
-f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/prefab_config.json	î´£²Ô2
( ›ð‚ŽÑ2o
+f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/prefab_config.json	€¸§ÕÔ2
( ›ð‚ŽÑ2o
 m
-k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/symbol_folder_index.txt	î´£²Ô2
b ›ð‚ŽÑ2b
+k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/symbol_folder_index.txt	€¸§ÕÔ2
b ›ð‚ŽÑ2b
 `
-^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt	î´£²Ô2
¤ ˆÈ¼�Ñ2
\ No newline at end of file
+^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt	€¸§ÕÔ2
¤ ˆÈ¼�Ñ2
\ No newline at end of file
diff --git a/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin
index 11934a9..bc71260 100644
--- a/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin
+++ b/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin
@@ -2,27 +2,27 @@ C/C++ Structured Logw
 u
 s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/additional_project_files.txtC
 A
-?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint	½µ£²Ô2 ßñ‚ŽÑ2t
+?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint	Š¸§ÕÔ2 ßñ‚ŽÑ2t
 r
-p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build.json	½µ£²Ô2Ç àñ‚ŽÑ2y
+p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build.json	Š¸§ÕÔ2Ç àñ‚ŽÑ2y
 w
-u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build_mini.json	½µ£²Ô2à áñ‚ŽÑ2f
+u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build_mini.json	Š¸§ÕÔ2à áñ‚ŽÑ2f
 d
-b/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja	½µ£²Ô2‘º Úñ‚ŽÑ2j
+b/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja	Š¸§ÕÔ2‘º Úñ‚ŽÑ2j
 h
-f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja.txt	½µ£²Ô2o
+f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja.txt	Š¸§ÕÔ2o
 m
-k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build_file_index.txt	½µ£²Ô2
^ âñ‚ŽÑ2p
+k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build_file_index.txt	Š¸§ÕÔ2
^ âñ‚ŽÑ2p
 n
-l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json	½µ£²Ô2t
+l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json	Š¸§ÕÔ2t
 r
-p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json.bin	½µ£²Ô2	z
+p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json.bin	Š¸§ÕÔ2	z
 x
-v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/metadata_generation_command.txt	½µ£²Ô2
+v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/metadata_generation_command.txt	Š¸§ÕÔ2
 ´ âñ‚ŽÑ2m
 k
-i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/prefab_config.json	½µ£²Ô2
( âñ‚ŽÑ2r
+i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/prefab_config.json	Š¸§ÕÔ2
( âñ‚ŽÑ2r
 p
-n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/symbol_folder_index.txt	½µ£²Ô2
e âñ‚ŽÑ2b
+n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/symbol_folder_index.txt	Š¸§ÕÔ2
e âñ‚ŽÑ2b
 `
-^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt	½µ£²Ô2
¤ ˆÈ¼�Ñ2
\ No newline at end of file
+^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt	Š¸§ÕÔ2
¤ ˆÈ¼�Ñ2
\ No newline at end of file
diff --git a/lib/main.dart b/lib/main.dart
index d39819c..2ca3e01 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:pharmacy_mobile/auth/auth_gate.dart';
 import 'package:pharmacy_mobile/pages/add_category_page.dart';
 import 'package:pharmacy_mobile/pages/add_generics_page.dart';
+import 'package:pharmacy_mobile/pages/add_manufactorer.dart';
 import 'package:pharmacy_mobile/pages/add_medicine_page.dart';
 import 'package:pharmacy_mobile/pages/add_stock_page.dart';
 import 'package:pharmacy_mobile/pages/add_type_page.dart';
@@ -53,6 +54,11 @@ final _router = GoRouter(
       path: '/main',
       builder: (context, state) => const MainPage(),
     ),
+    GoRoute(
+      name: 'addmanufactorer',
+      path: '/addmanufactorer',
+      builder: (context, state) => const AddManufactorerPage(),
+    ),
     GoRoute(
       name: 'addmedicines',
       path: '/addmedicines',
diff --git a/lib/pages/add_category_page.dart b/lib/pages/add_category_page.dart
index ac9b0f9..0e2ad95 100644
--- a/lib/pages/add_category_page.dart
+++ b/lib/pages/add_category_page.dart
@@ -29,16 +29,20 @@ class _AddCategoryPageState extends State<AddCategoryPage> {
 
     try {
       if (await InternetConnectionChecker.instance.hasConnection) {
-        await _refCategories.postCategory(_categoryController.text.toUpperCase());
+        final post = await _refCategories.postCategory(_categoryController.text.toUpperCase());
 
-        if (mounted) {
-          showNotification(context, 'Category Saved', true);
+        if (post && mounted) {
+          showNotification(context, 'Category saved', true);
 
           WidgetsBinding.instance.addPostFrameCallback((_) {
             if (mounted) {
               context.push('/main');
             }
           });
+        } else {
+          if (mounted) {
+            showNotification(context, 'Category not saved', false);
+          }
         }
       } else {
         if (mounted) {
diff --git a/lib/pages/add_generics_page.dart b/lib/pages/add_generics_page.dart
index dddebeb..417f334 100644
--- a/lib/pages/add_generics_page.dart
+++ b/lib/pages/add_generics_page.dart
@@ -1,3 +1,5 @@
+import 'dart:developer';
+
 import 'package:gap/gap.dart';
 import 'package:flutter/material.dart';
 import 'package:internet_connection_checker/internet_connection_checker.dart';
@@ -51,6 +53,11 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
     }
   }
 
+  Future<bool> _checkExisting() async {
+    final uuid = await _refGenericNames.getUUID(_nameController.text);
+    return uuid.isNotEmpty;
+  }
+
   void autoRun() async {
     if (await InternetConnectionChecker.instance.hasConnection) {
       _getList();
@@ -76,18 +83,31 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
 
     try {
       if (await InternetConnectionChecker.instance.hasConnection) {
+        final existing = await _checkExisting();
+
+        if (existing && mounted) {
+          showNotification(context, 'Generic Name already existing', false);
+          return;
+        }
+
         _categoryUUID = await _refCategories.getUUID(_selectedCategory);
+        log('_selectedCategory: $_selectedCategory');
+        log('_categoryUUID: $_categoryUUID');
 
-        await _refGenericNames.postGeneric(_nameController.text, _categoryUUID);
+        final post = await _refGenericNames.postGeneric(_nameController.text, _categoryUUID);
 
-        if (mounted) {
-          showNotification(context, 'Generic Name Saved', true);
+        if (post && mounted) {
+          showNotification(context, 'Generic name saved', true);
 
           WidgetsBinding.instance.addPostFrameCallback((_) {
             if (mounted) {
               context.push('/main');
             }
           });
+        } else {
+          if (mounted) {
+            showNotification(context, 'Generic name not saved', false);
+          }
         }
       } else {
         if (mounted) {
@@ -172,7 +192,7 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
                               list: _categoryList,
                               listTitle: 'category_name',
                               onChanged: _updateCategory,
-                              value: _selectedCategory,
+                              // value: _selectedCategory,
                             ),
                             const Gap(32),
                             if (_isLoading)
diff --git a/lib/pages/add_manufactorer.dart b/lib/pages/add_manufactorer.dart
new file mode 100644
index 0000000..0f66b26
--- /dev/null
+++ b/lib/pages/add_manufactorer.dart
@@ -0,0 +1,82 @@
+import 'package:flutter/material.dart';
+import 'package:gap/gap.dart';
+import 'package:internet_connection_checker/internet_connection_checker.dart';
+import 'package:pharmacy_mobile/widgets/button_widget.dart';
+import 'package:pharmacy_mobile/widgets/form_border_widget2.dart';
+import 'package:pharmacy_mobile/widgets/input_widget.dart';
+import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
+import 'package:pharmacy_mobile/widgets/text_widget.dart';
+import 'package:pharmacy_mobile/widgets/title_widget.dart';
+
+class AddManufactorerPage extends StatefulWidget {
+  const AddManufactorerPage({super.key});
+
+  @override
+  State<AddManufactorerPage> createState() => _AddManufactorerPageState();
+}
+
+class _AddManufactorerPageState extends State<AddManufactorerPage> {
+  final _formKey = GlobalKey<FormState>();
+  final _nameController = TextEditingController();
+  final _addressController = TextEditingController();
+
+  late bool _isLoading = false;
+
+  void saveManufactorer() async {
+    setState(() => _isLoading = true);
+
+    if (await InternetConnectionChecker.instance.hasConnection) {
+      // final existing = await _checkExisting();
+    }
+
+    setState(() => _isLoading = false);
+  }
+
+  @override
+  void dispose() {
+    _nameController.dispose();
+    _addressController.dispose();
+    super.dispose();
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      body: PageBackgroundWidget(
+          child: Center(
+        child: Column(
+          children: [
+            const Gap(96),
+            const TitleWidget(
+              firstTextSize: 14,
+              secondTextSize: 24,
+              logoSize: 90,
+            ),
+            const Gap(32),
+            const TextWidget(
+              text: 'Add Manufactorer',
+              title: true,
+            ),
+            const Gap(16),
+            FormBorderWidget2(
+                color: 'blue',
+                child: Form(
+                    key: _formKey,
+                    child: Column(
+                      children: [
+                        InputWidget(label: 'Name', controller: _nameController),
+                        const Gap(16),
+                        InputWidget(label: 'Address', controller: _addressController),
+                        const Gap(32),
+                        if (_isLoading)
+                          const Center(child: CircularProgressIndicator(color: Colors.white))
+                        else
+                          ButtonWidget(text: 'Add', onPressed: saveManufactorer)
+                      ],
+                    )))
+          ],
+        ),
+      )),
+    );
+  }
+}
diff --git a/lib/pages/add_medicine_page.dart b/lib/pages/add_medicine_page.dart
index a7d6a9d..13d2893 100644
--- a/lib/pages/add_medicine_page.dart
+++ b/lib/pages/add_medicine_page.dart
@@ -284,7 +284,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
                                   list: _genericNameList,
                                   listTitle: 'generic_name',
                                   onChanged: _updateGeneric,
-                                  value: _selectedGeneric,
+                                  // value: _selectedGeneric,
                                 ),
                                 const Gap(8),
                                 Padding(
@@ -297,7 +297,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
                                   list: _typeList,
                                   listTitle: 'type_name',
                                   onChanged: _updateType,
-                                  value: _selectedType,
+                                  // value: _selectedType,
                                 ),
                                 const Gap(16),
                                 DropDownWidget(
@@ -305,7 +305,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
                                   list: _manufactorerList,
                                   listTitle: 'manufactorer_name',
                                   onChanged: _updateManufactorer,
-                                  value: _selectedManufactorer,
+                                  // value: _selectedManufactorer,
                                 ),
                                 const Gap(16),
                                 InputWidget(label: 'Barcode', controller: _barcodeController),
diff --git a/lib/pages/add_stock_page.dart b/lib/pages/add_stock_page.dart
index 2d86533..a7b88cc 100644
--- a/lib/pages/add_stock_page.dart
+++ b/lib/pages/add_stock_page.dart
@@ -140,7 +140,7 @@ class _AddStockPageState extends State<AddStockPage> with WidgetsBindingObserver
                           list: _medicineList,
                           listTitle: 'medicine_name',
                           onChanged: _updateMedicine,
-                          value: _selectedMedicine,
+                          // value: _selectedMedicine,
                         ),
                         Row(
                           mainAxisAlignment: MainAxisAlignment.end,
diff --git a/lib/pages/delete_stock_page.dart b/lib/pages/delete_stock_page.dart
index 7c6e815..0982326 100644
--- a/lib/pages/delete_stock_page.dart
+++ b/lib/pages/delete_stock_page.dart
@@ -143,7 +143,7 @@ class _DeleteStockPageState extends State<DeleteStockPage> {
                         list: _stockList,
                         listTitle: 'medicine_name',
                         onChanged: _updateStock,
-                        value: _selectedStock,
+                        // value: _selectedStock,
                       ),
                       const Gap(16),
                       InputWidget(label: 'Quantity', controller: _quantityController, onChanged: _setQuantity),
diff --git a/lib/pages/main_page.dart b/lib/pages/main_page.dart
index 61819c6..a03b4ff 100644
--- a/lib/pages/main_page.dart
+++ b/lib/pages/main_page.dart
@@ -33,7 +33,7 @@ class _MainPageState extends State<MainPage> {
           resizeToAvoidBottomInset: false,
           body: SingleChildScrollView(
             child: PageBackgroundWidget(
-              height: MediaQuery.of(context).size.height + 400,
+              height: MediaQuery.of(context).size.height + 500,
               page: 'menu',
               child: Center(
                 child: Column(
@@ -50,6 +50,14 @@ class _MainPageState extends State<MainPage> {
                       title: true,
                     ),
                     const Gap(16),
+                    MenuWidget(
+                      icon: FontAwesomeIcons.circlePlus,
+                      text: 'Add Manufactorer',
+                      description: 'Add Manufactorer to the record',
+                      onPressed: () => {context.push('/addmanufactorer')},
+                      color: 'blue',
+                    ),
+                    const Gap(16),
                     MenuWidget(
                       icon: FontAwesomeIcons.circlePlus,
                       text: 'Add Type',
diff --git a/lib/tables/ref_categories.dart b/lib/tables/ref_categories.dart
index 8dfab27..5ba4d12 100644
--- a/lib/tables/ref_categories.dart
+++ b/lib/tables/ref_categories.dart
@@ -5,22 +5,40 @@ class RefCategories {
   final SupabaseClient _supabase = Supabase.instance.client;
 
   Future<List> getList() async {
-    final data = await _supabase.from('ref_categories').select('category_name').order('category_name', ascending: true);
-    return data.toList();
+    try {
+      final data =
+          await _supabase.from('ref_categories').select('category_name').order('category_name', ascending: true);
+      return data.toList();
+    } catch (e) {
+      return [];
+    }
   }
 
   Future<String> getUUID(String name) async {
-    final data = await _supabase.from('ref_categories').select('ref_categories_uuid').eq('category_name', name);
-    return data.first['ref_categories_uuid'];
+    try {
+      final data = await _supabase.from('ref_categories').select('ref_categories_uuid').eq('category_name', name);
+      return data.first['ref_categories_uuid'];
+    } catch (e) {
+      return '';
+    }
   }
 
   Future<String> getName(String uuid) async {
-    final data = await _supabase.from('ref_categories').select('category_name').eq('ref_categories_uuid', uuid);
-    return data.first['category_name'];
+    try {
+      final data = await _supabase.from('ref_categories').select('category_name').eq('ref_categories_uuid', uuid);
+      return data.first['category_name'];
+    } catch (e) {
+      return '';
+    }
   }
 
-  Future<void> postCategory(String name) async {
-    final categoryUUID = Uuid().v4();
-    await _supabase.from('ref_categories').insert({'ref_categories_uuid': categoryUUID, 'category_name': name});
+  Future<bool> postCategory(String name) async {
+    try {
+      final categoryUUID = Uuid().v4();
+      await _supabase.from('ref_categories').insert({'ref_categories_uuid': categoryUUID, 'category_name': name});
+      return true;
+    } catch (e) {
+      return false;
+    }
   }
 }
diff --git a/lib/tables/ref_generic_names.dart b/lib/tables/ref_generic_names.dart
index c3e2b9c..02abfc6 100644
--- a/lib/tables/ref_generic_names.dart
+++ b/lib/tables/ref_generic_names.dart
@@ -5,42 +5,52 @@ class RefGenericNames {
   final SupabaseClient _supabase = Supabase.instance.client;
 
   Future<List> getList() async {
-    final data =
-        await _supabase.from('ref_generic_names').select('generic_name').order('generic_name', ascending: true);
-    return data.toList();
+    try {
+      final data =
+          await _supabase.from('ref_generic_names').select('generic_name').order('generic_name', ascending: true);
+      return data.toList();
+    } catch (e) {
+      return [];
+    }
   }
 
   Future<String> getCategoryUUID(name) async {
-    final data = await _supabase.from('ref_generic_names').select('ref_categories_uuid').eq('generic_name', name);
-    return data.first['ref_categories_uuid'].toString();
+    try {
+      final data = await _supabase.from('ref_generic_names').select('ref_categories_uuid').eq('generic_name', name);
+      return data.first['ref_categories_uuid'].toString();
+    } catch (e) {
+      return '';
+    }
   }
 
   Future<String> getUUID(name) async {
-    final data = await _supabase.from('ref_generic_names').select('ref_generic_names_uuid').eq('generic_name', name);
-    return data.first['ref_generic_names_uuid'].toString();
+    try {
+      final data = await _supabase.from('ref_generic_names').select('ref_generic_names_uuid').eq('generic_name', name);
+      return data.first['ref_generic_names_uuid'].toString();
+    } catch (e) {
+      return '';
+    }
   }
 
-  Future<void> postGeneric(String name, String uuid) async {
-    final genericUUID = Uuid().v4();
+  Future<bool> postGeneric(String name, String uuid) async {
+    try {
+      final genericUUID = Uuid().v4();
 
-    await _supabase
-        .from('ref_generic_names')
-        .insert({'ref_generic_names_uuid': genericUUID, 'generic_name': name, 'ref_categories_uuid': uuid});
+      await _supabase
+          .from('ref_generic_names')
+          .insert({'ref_generic_names_uuid': genericUUID, 'generic_name': name, 'ref_categories_uuid': uuid});
+      return true;
+    } catch (e) {
+      return false;
+    }
   }
 
   Future<List> getSample() async {
-    final data = await _supabase.from('ref_generic_names').select('''generic_name, ref_categories(category_name)''');
-    return data.toList();
+    try {
+      final data = await _supabase.from('ref_generic_names').select('''generic_name, ref_categories(category_name)''');
+      return data.toList();
+    } catch (e) {
+      return [];
+    }
   }
 }
-
-
-// let { data: ref_generic_names, error } = await supabase
-//   .from('ref_generic_names')
-//   .select(`
-//     some_column,
-//     other_table (
-//       foreign_key
-//     )
-//   `)
-          
\ No newline at end of file
diff --git a/lib/widgets/dropdown_widget.dart b/lib/widgets/dropdown_widget.dart
index 8f70b10..bd52297 100644
--- a/lib/widgets/dropdown_widget.dart
+++ b/lib/widgets/dropdown_widget.dart
@@ -9,15 +9,15 @@ class DropDownWidget extends StatelessWidget {
   final List list;
   final String listTitle;
   final OnChangedCallback onChanged;
-  final String value;
+  // final String value;
 
-  const DropDownWidget(
-      {super.key,
-      required this.label,
-      required this.list,
-      required this.listTitle,
-      required this.onChanged,
-      required this.value});
+  const DropDownWidget({
+    super.key,
+    required this.label,
+    required this.list,
+    required this.listTitle,
+    required this.onChanged,
+  });
   @override
   Widget build(BuildContext context) {
     return Column(
@@ -41,7 +41,7 @@ class DropDownWidget extends StatelessWidget {
               for (var item in list)
                 DropdownMenuEntry(
                     label: item[listTitle].toString(),
-                    value: value,
+                    value: item[listTitle].toString(),
                     style: ButtonStyle(
                         foregroundColor: WidgetStateProperty.all<Color>(const Color.fromRGBO(10, 10, 10, 1)),
                         textStyle: WidgetStateProperty.all<TextStyle>(
