Pharmacio is a smart pharmacy management system supporting both Web and Mobile (Flutter) platforms.
It is designed to:
- Manage inventory and product tracking
- Handle purchase orders from warehouses
- Display smart notifications
- Support multi-language (Arabic / English)
- Integrate AI-powered analysis for PDF/image files (OCR)
- Flutter >= 3.35.4
- Dart >= 3.9.2
- FVM (Flutter Version Manager)
- Android Studio or VS Code
- Emulator or physical device (Android / iOS)
git clone https://github.com/georgeAlNa/pharmacio-web.git
cd pharmacio_flutter_webdart pub global activate fvmEnsure that the path below is added to your system PATH:
C:\Users\<username>\AppData\Local\Pub\Cache\bin
fvm use 3.35.4fvm flutter pub getfvm flutter run -d chromeImportant: Always use
fvm flutterfor Flutter commands to ensure consistent versioning.
Use colors from:
AppColors.nameOfColorDo not use
Colors.whateverdirectly.
Use text styles from:
AppTextStyles.nameOfStyleAll static strings should be placed in:
AppStringsAll image paths should be defined in:
imagesAll API URLs should be placed in:
AppLinkUrlUse ScreenUtil for all widgets to support responsive layouts:
Container(
width: 100.w,
height: 50.h,
)Use spacing helpers from spacing.dart:
verticalSpace(10),
horizontalSpace(20),Use context extensions from extensions.dart:
context.navigateTo(Routes.nameOfScreen)Leverage reusable widgets from the public widget folder to reduce duplication.
Always add new pages in:
routes.dart
app_router.dart- Do not use hardcoded values for colors, text styles, strings, images, or API URLs.
- Use
ScreenUtilfor all UI widgets. - Reuse widgets from the public widgets folder whenever possible.
- Always add new pages to
routes.dartandapp_router.dart. - Use
fvm flutterfor all Flutter commands to ensure consistent versioning.
- Always run
fvm flutter cleanbefore building if you encounter issues:
fvm flutter clean
fvm flutter pub get- Follow Git branching strategy: create a branch per feature before merging into
main. - Review routes and navigation extensions when adding new pages.