★ সবচেয়ে সহজ পথ (প্রতি ক্লায়েন্টের জন্য ২ মিনিট) ★
=====================================================
প্রতিটি বিক্রিত স্কুল সফটওয়্যারে সুপার অ্যাডমিনে ঢোকারই দরকার নেই:

  ১) osi_connector.php ও osi_hub.php রাখুন (ধাপ ১) এবং init.php-তে ২ লাইন (ধাপ ২) — একবারই, সফটওয়্যার তৈরির সময় আপনার মূল কপিতে করে রাখুন।
  ২) ক্লায়েন্টের সার্ভারে config-osi.sample.php কে  config/osi.php  নামে কপি করে ২ লাইন লিখুন:
         OSI_PLATFORM_URL = https://osiltd.com.bd
         OSI_LICENSE_KEY  = (OSI -> License Control থেকে ঐ ক্লায়েন্টের key)
  ৩) শেষ। সফটওয়্যার নিজেই OSI-র সাথে যুক্ত হয়ে প্যাকেজ/মেয়াদ/ফিচার/নোটিশ নামিয়ে আনে, আপনার যোগাযোগ নম্বর
     "সাবস্ক্রিপশন বন্ধ" পেজে নিজে বসে যায় (vendor_contact পেজে যেতে হবে না)।

কোন সুপার অ্যাডমিন পেজ আর লাগবে না (এক ইনস্টলে একটি স্কুল হলে):
  schools.php, school_edit.php, plans.php, vendor_contact.php, license_sync.php  -> ব্যবহার করবেন না (চাইলে মুছে ফেলুন; বাকি সফটওয়্যারের কিছুই ভাঙবে না)।
  রাখুন শুধু:  login.php, logout.php, osi_hub.php (সংযোগ ঠিক আছে কিনা দেখার জন্য একটি পেজ), setup.php (প্রথমবার লগইন বানাতে, তারপর মুছে দিন)।
  মাল্টি-স্কুলের ডাটাবেস গঠন (school_id কলাম) যেমন আছে তেমনই থাকবে — ওটা ছোঁবেন না; শুধু ম্যানেজ করার পেজ লাগছে না।
  (পুরো গাইডে নিচের "প্যানেল" ধাপগুলো তখনই লাগবে যদি এক ইনস্টলে একাধিক স্কুল রাখেন।)

স্কুল ম্যানেজমেন্ট সফটওয়্যারকে OSI প্ল্যাটফর্ম থেকে নিয়ন্ত্রণ — ইনস্টল গাইড
=========================================================================

লক্ষ্য: স্কুল সফটওয়্যারের সুপার অ্যাডমিনে আপনাকে আর কিছু করতে হবে না। সব কিছু osiltd.com.bd থেকে হবে।
স্কুল সফটওয়্যারে শুধু ৩টা ছোট কাজ (একবারই):

ধাপ ১ — ২টি ফাইল রাখুন (স্কুল সফটওয়্যারের ফোল্ডারে)
   school-connector/includes/osi_connector.php   ->  includes/osi_connector.php
   school-connector/superadmin/osi_hub.php       ->  superadmin/osi_hub.php

ধাপ ২ — includes/init.php ফাইলের একদম শেষে ২ লাইন যোগ করুন
   require_once __DIR__ . '/osi_connector.php';
   osi_connector_tick($pdo);

   (এটা প্রতি ~১০ মিনিটে প্রতিটি সংযুক্ত স্কুলের তথ্য OSI-তে পাঠায় এবং আপনার নোটিশ নামিয়ে আনে। কোনো সমস্যা হলে সাইট থামায় না।)

ধাপ ৩ — স্কুলের অ্যাডমিন প্যানেলের হেডার/ড্যাশবোর্ডে (যেখানে নোটিশ দেখাতে চান) ১ লাইন
   <?= osi_notices_html($pdo) ?>

   নোটিশ না দেখালে স্কুলের আইডি দিয়ে দিন:  <?= osi_notices_html($pdo, $school_id) ?>   ($school_id = ঐ পেজে যে ভ্যারিয়েবলে বর্তমান স্কুলের আইডি থাকে)

ধাপ ৪ — OSI প্ল্যাটফর্মে (osiltd.com.bd) license-portal.zip এর ফাইলগুলো আপলোড করুন
   নতুন:  api_license_ping.php, software/notices.php
   আপডেট: includes/license_portal.php, api_check_license.php, software/license-control.php

ধাপ ৫ — সংযোগ দিন
   স্কুল সফটওয়্যারে লগইন করে খুলুন:  yourschoolsite.com/superadmin/osi_hub.php
   (১) OSI প্ল্যাটফর্মের ঠিকানা বসান (https://osiltd.com.bd) -> সেভ
   (২) OSI -> Software -> License Control এ "School Management" সফটওয়্যারের লাইসেন্স বানান (প্রতি স্কুলের জন্য একটি)
       চাবির আইকন থেকে License Key কপি করুন -> osi_hub এ ঐ স্কুলের ঘরে বসান -> সেভ -> "সিঙ্ক"
   (৩) "সংযুক্ত" লেখা এলে কাজ শেষ।

এরপর আপনার প্রতিদিনের কাজ — সব OSI প্ল্যাটফর্ম থেকে
   * স্কুল বন্ধ/চালু করা, মেয়াদ বাড়ানো          -> Software -> License Control (Suspend / +১ মাস / +১ বছর)
   * প্যাকেজ ও ফিচার বদলানো                       -> License Control (Edit) + Package Builder
   * পেমেন্ট যাচাই ও মেয়াদ বাড়ানো                -> Software -> Payment Requests (Approve)
   * সব স্কুলকে / একটি স্কুলকে নোটিশ পাঠানো      -> Software -> Send Notice
   * কে কতটা ব্যবহার করছে (শিক্ষার্থী, ইউজার, শেষ দেখা) -> License Control -> চাবির আইকন -> "ব্যবহারের অবস্থা"
   * bKash/Nagad/QR, যোগাযোগ নম্বর বদলানো        -> Software -> Contact & Payment Methods

স্কুল সফটওয়্যারের পুরনো সুপার অ্যাডমিন পেজগুলো (plans.php, school_edit.php ইত্যাদি)
   * মুছতে হবে না। কিন্তু সংযুক্ত স্কুলের প্যাকেজ/মেয়াদ/স্ট্যাটাস সেখানে হাতে বদলাবেন না — পরের সিঙ্কে OSI-র তথ্য সেটা বদলে দেবে।
   * নতুন স্কুল তৈরি (superadmin/schools.php) আগের মতোই; তৈরির পর OSI-তে লাইসেন্স বানিয়ে key টি osi_hub এ বসান।
   * setup.php ফাইলটি সার্ভার থেকে মুছে ফেলুন (নিরাপত্তা)।

কাজ না করলে
   * osi_hub এ স্কুলের ঘরে লাল "সিঙ্ক সমস্যা" লেখাটি পড়ুন; "টেস্ট" বাটন সার্ভারের হুবহু উত্তর দেখায়।
   * "unknown license key" -> key ভুল বা OSI-তে ঐ লাইসেন্স নেই / key নতুন করে বানানো হয়েছে।
   * HTTP 0 / cURL error -> স্কুল সফটওয়্যারের হোস্টিংয়ে cURL বন্ধ বা OSI ঠিকানা ভুল।
   * OSI প্ল্যাটফর্ম অবশ্যই ইন্টারনেটে লাইভ থাকতে হবে (শুধু XAMPP-তে থাকলে স্কুল সফটওয়্যার তাকে পাবে না)।

হাসপাতাল সফটওয়্যারের জন্য: একই পদ্ধতি। হাসপাতালের superadmin/ ও includes/ ফোল্ডার পাঠালে একই রকম কানেক্টর বানিয়ে দেব।
