Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

90 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏫 smartSystemForSchools

GitHub stars GitHub forks GitHub issues Last commit FastAPI Flutter Java (Gradle) Kotlin Python

A comprehensive, state-of-the-art Flutter mobile application and AI-backend ecosystem designed to bridge the gap between school administration, canteens, and parents. The system offers parent control over child nutrition, health parameters, school payments, real-time location tracking, and instant school-parent communication.


🌟 Key Features

πŸ₯¦ Health & Nutrition Control

  • Allergy Management: Keep track of child allergies (Peanuts, Tree Nuts, Milk, Eggs, Wheat, Soy, Fish, Shellfish, etc.).
  • Daily Spending Limits: Parents can define and update limits on school canteen purchases.
  • AI Meal Recommendation: Custom meal guides powered by Gemini 2.0 Flash tailored to the child's age, weight, height, blood type, and allergy constraints.
  • TFLite Food Checker: On-device TensorFlow Lite model (food_choice_model.tflite) for instant local analysis of foods.
  • Deep Learning Food Analysis: Python-based FastAPI service leveraging a MobileNetV2 deep learning model for real-time classification, allergen detection, and calorie reporting.

πŸ’¬ Interactive AI Chatbot

  • AI School Assistant: A smart chatbot powered by Gemini 1.5 Flash to answer parent inquiries, provide guidance on child health, and retrieve school details.
  • Local Chat History: Persistent messaging history using SharedPreferences.
  • Typing Animation & Rich Media: Streamed typewriter visual feedback with support for image/file attachment contexts.

πŸ’³ School Payments & Wallets

  • Stripe Integration: Secure in-app credit/debit card transactions using flutter_stripe.
  • Transaction Ledger: Real-time statements for children's canteen purchases and parent top-ups.

πŸ“ Child Tracking & Attendance

  • Live Tracking: Integrated Google Maps for school bus routing and geolocator services.
  • Attendance Ledger: Calendar metrics showing student check-ins and check-outs.

πŸ”” Smart Notification System

  • Firebase Cloud Messaging (FCM): Remote push alerts for canteen confirmations and announcements.
  • Local Notifications: Scheduled and high-priority alarms fallback.

🌐 Universal Localization & UI

  • Multi-language Support: Complete translation engine (Arabic πŸ‡¦πŸ‡ͺ, English πŸ‡¬πŸ‡§, Spanish πŸ‡ͺπŸ‡Έ, French πŸ‡«πŸ‡·) with RTL layout handling.
  • Rich Aesthetics: Beautiful responsive dashboards with light/dark theme toggles, fluid custom animations, and a modern error overlay layout.

πŸ› οΈ Technology Stack

Mobile Application (Flutter)

Technology / Package Purpose
Flutter SDK (^3.5.3) Main cross-platform mobile framework
Flutter BLoC & Equatable Clean State Management & predictable state flow
Firebase Services Auth, Firestore Database, and Cloud Messaging (FCM)
Dio & Http REST API networking client with interceptors
Stripe SDK Processing school canteen top-ups and fees
Easy Localization Localizing resources dynamically across 4 languages
Google Maps Flutter Real-time map overlays for school tracking
Gemini 1.5 & 2.0 Flash AI Generative APIs for custom diet guidelines & chatbot services
Flutter Animate & Animate Do Premium visual micro-animations and physics-based transitions
SharedPreferences Local persistence of app configs and chat histories

AI Backend (Python)

Technology / Package Purpose
FastAPI High-performance API routing and async request handling
Uvicorn ASGI server run environment
TensorFlow & Keras MobileNetV2 transfer learning model pipeline for food identification
NumPy & Pillow Array manipulations and image preprocessing
Pydantic Payload schemas validation and type checks

πŸ“‚ Project Structure

smartsystemforschools/
β”‚
β”œβ”€β”€ android/ & ios/              # Native Platform Configurations
β”œβ”€β”€ assets/                      # App Assets
β”‚   β”œβ”€β”€ fonts/                   # Typography (Poppins, Cairo, Inspiration)
β”‚   β”œβ”€β”€ images/                  # Icons, logo, and artwork
β”‚   β”œβ”€β”€ translations/            # Localization dictionaries (ar, en, es, fr)
β”‚   └── food_choice_model.tflite # On-device ML model file
β”‚
β”œβ”€β”€ lib/                         # Flutter App Source Code
β”‚   β”œβ”€β”€ core/                    # Shared utilities, widgets, services & themes
β”‚   β”‚   β”œβ”€β”€ connectivity_cubit/  # Global network status tracker
β”‚   β”‚   β”œβ”€β”€ services/            # Stripe, Firebase, and Auth integrations
β”‚   β”‚   └── themes/              # Light & Dark Theme specs
β”‚   β”‚
β”‚   β””β”€β”€β”€β”œβ”€β”€ features
β”‚   β”‚   β”œβ”€β”€ Allergies
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ food_ai_service.dart
β”‚   β”‚   β”‚   β”‚   └── manager
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ Attendance
β”‚   β”‚   β”‚   β”œβ”€β”€ attendance_ai_service.dart
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   └── manager
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ chatbot
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ cubit
β”‚   β”‚   β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ model
β”‚   β”‚   β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚   β”‚   └── services
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ chat_bot_screen.dart
β”‚   β”‚   β”‚       └── chat_history_screen.dart
β”‚   β”‚   β”œβ”€β”€ child_details_view
β”‚   β”‚   β”‚   β”œβ”€β”€ manager
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ checkout_payment_cubit
β”‚   β”‚   β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ models
β”‚   β”‚   β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚   β”‚   └── spending_limit_cubit.dart
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   β”œβ”€β”€ views
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ child_details_view.dart
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ choose_balance_for_child.dart
β”‚   β”‚   β”‚   β”‚   └── spending_limits_view.dart
β”‚   β”‚   β”‚   └── widgets
β”‚   β”‚   β”‚       β”œβ”€β”€ CardDetailsChildWidget.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ CustomCardForSpendingAndRecharge.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ CustomSpendingDailyLimitWidget.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ buildAllegryChip.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ custom_allgeries_widget.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ custom_balance_widget.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ custom_button.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ custom_card_spending_limits.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ custom_card_spending_limits_new.dart
β”‚   β”‚   β”‚       └── restricted_products_widget.dart
β”‚   β”‚   β”œβ”€β”€ family
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   └── manager
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ food_ai_view
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ api_handler.dart
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ cubit
β”‚   β”‚   β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚   β”‚   └── models
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   β”œβ”€β”€ screens
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ food_ai_screen.dart
β”‚   β”‚   β”‚   β”‚   └── recommdation_screen.dart
β”‚   β”‚   β”‚   └── widgets
β”‚   β”‚   β”‚       └── loading_indicator_widget.dart
β”‚   β”‚   β”œβ”€β”€ home
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   └── models
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ login
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   └── models
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presenation
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ main_screen
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       └── views
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ notification_view
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ cubit
β”‚   β”‚   β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚   β”‚   └── models
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presenation
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ onBoarding
β”‚   β”‚   β”‚   β”œβ”€β”€ views
β”‚   β”‚   β”‚   β”‚   └── pageview.dart
β”‚   β”‚   β”‚   └── widgets
β”‚   β”‚   β”‚       β”œβ”€β”€ custom_button.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ custom_page_screen.dart
β”‚   β”‚   β”‚       β”œβ”€β”€ dot_indicator.dart
β”‚   β”‚   β”‚       └── dots_indicator.dart
β”‚   β”‚   β”œβ”€β”€ payment
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   └── models
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ manager
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ payment_parent
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ cubit
β”‚   β”‚   β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ models
β”‚   β”‚   β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”‚   β”‚   └── services
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ screens
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ schools
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       └── views
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ settings
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   └── manager
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ settings_view
β”‚   β”‚   β”‚   β”œβ”€β”€ data
β”‚   β”‚   β”‚   β”‚   └── models
β”‚   β”‚   β”‚   β”‚       └── ...
β”‚   β”‚   β”‚   └── presentation
β”‚   β”‚   β”‚       β”œβ”€β”€ manager
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ splash
β”‚   β”‚   β”‚   └── presenation
β”‚   β”‚   β”‚       β”œβ”€β”€ views
β”‚   β”‚   β”‚       β”‚   └── ...
β”‚   β”‚   β”‚       └── widgets
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   └── tracking
β”‚   β”‚       β”œβ”€β”€ data
β”‚   β”‚       β”‚   └── models
β”‚   β”‚       β”‚       └── ...
β”‚   β”‚       └── presentation
β”‚   β”‚           └── views
β”‚   β”‚               └── ...
β”‚   β”œβ”€β”€ firebase_options.dart
β”‚   β”œβ”€β”€ generated
β”‚   β”‚   β”œβ”€β”€ codegen_loader.g.dart
β”‚   β”‚   β”œβ”€β”€ intl
β”‚   β”‚   β”‚   β”œβ”€β”€ messages_all.dart
β”‚   β”‚   β”‚   └── messages_en.dart
β”‚   β”‚   β”œβ”€β”€ l10n.dart
β”‚   β”‚   └── locale_keys.g.dart
β”‚   β”œβ”€β”€ l10n
β”‚   β”‚   └── intl_en.arb
β”‚   └── main.dart
β”‚
β”œβ”€β”€ food_ai_service.py           # FastAPI Web Application Entrypoint
β”œβ”€β”€ food_recognition_model.py    # TensorFlow ML Model Engine
└── requirements.txt             # Python Backend Dependencies

πŸš€ Getting Started

1. Mobile App Setup

  1. Install Flutter SDK: Make sure you have Flutter >= 3.5.3 installed.
  2. Clone the Repository:
    git clone https://github.com/OmarAliSiad/smartSystemForSchools.git
    cd smartSystemForSchools
  3. Install Dependencies:
    flutter pub get
  4. Configure API Keys: Add your configuration keys to lib/core/utils/api_keys.dart.
  5. Run the App:
    flutter run

2. Python AI Service Setup

  1. Navigate to the root directory and create a virtual environment:
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  2. Install requirements:
    pip install -r requirements.txt
  3. Run the service:
    python food_ai_service.py
    The server will spin up locally on http://0.0.0.0:8000.

πŸ‘₯ Contributors

Thanks to everyone who has contributed to this project:

OmarAliSiad

See the full list of contributors β†’


πŸ‘₯ Contributing

Contributions are welcome! Here's the standard flow:

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/OmarAliSiad/smartSystemForSchools.git
  3. Branch: git checkout -b feature/your-feature
  4. Commit: git commit -m 'feat: add some feature'
  5. Push: git push origin feature/your-feature
  6. Open a pull request

Please follow the existing code style and include tests for new behavior where applicable.


About

No description, website, or topics provided.

Resources

Stars

16 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages