Project Description

سیستم آموزش مجازی مبتنی ،‎‏‏ سیستمی است که مدیریت دانش آموزان و کلاس‎های آنلاین و همچنین آموزش های ویدئو محور را از راه دور مدیریت می کند. شما میتوانید از طریق این سیستم ها محتوای تعاملی تولید کرده و اقدام به برگزاری کلاس نمایید و در نهایت از شاگردان کلاس خود آزمون تهیه نموده و برای آنها مدرک پایان دوره صادر نمایید. همچنین میتوانید برای درصد بالای (این درصد اختیاری است و قابل سفاشی سازی است) مدال شایستگی صادر نمایید و شاگردان از آن بصورت یک رزومه آموزشی در هنگام استخدام یاد مینمایند.  اساس این سیستم ها برای راحتی دانش آموزان، دانشجویان، مدرسان و صاحبان آموزشگاه ها تهیه شده اند. از این رو سعی در بهینه سازی این سیستم سعی نموده ایم تا کاملا فارسی بوده و به همراه تمامی نیازهایی باشد که یک شاگرد و استاد در کلاس درس نیاز دارند.
چرا باید برای شرکت در کلاس از خانه یا محیط کار خارج شویم؟ و با وجود تمام شرایط محیطی مثل بیماری های واگیردار (مانند کرنا)، هزینه رفت و آمد، پرداخت هزینه محیط کلاسی و … سر کلاس حاضر شویم؟ با استفاده از سیستم آموزش مجازی می توان در خانه یا در محیط کار خود نشسته، سر کلاس حاضر شویم، تمرین حل کنیم و حتی از همان‎جا آزمون دهیم و مدرک خود را دریافت کنیم.

نقش ها

  • استاد
  • استاد با حق ویرایش
  • دانشجو
  • کاربر مهمان (قابل تغییر می باشد)
  • کاربر وارد شده به سیستم (این کاربرتنها در سیستم ثبت نام کرده و به هیچ کدام از درس ها درسترسی ندارد  از این رو صرفا میتواند توصیحات درس مورد نظر را مشاهده نماید)
  • مدیر سیستم (با تمام دسترسی ها)

نقش های بالاتر می توانند در نقش های پایین تر وارد شوند. مثلا مدیر سیستم می تواند به عنوان استاد در کلاس وارد شود و در کلاس تدریس کند یا به عنوان دانشجو در کلاس حضور داشته باشد اما دانشجو نمی‎تواند در کلاسی بع عنوان استاد وارد شود مگر این که نقش استاد به وی داده شود.

امنیت

قابلیت پیاده سازی WAF (Web Application Firewall):

در سیستم های آموزش مجازی کاربران درگاه های زیادی جهت ورود اطلاعات دارند. درگاه هایی از قبیل:

  1. ارسال تمرین
  2. ارسال تکلیف
  3. ارتباط از طریق سیستم چت (گفتگو)
  4. ارتباط از طریق انجمن های گفتگو
  5. ارسال محتوای بلاگ بر روی سیستم آموزش مجازی
  6. تکمیل دانشنامه توسط اعضای کلاس
  7. و…

از این رو یاد آور میشود که تمامی این ورودی ها میتوانند نقطه ورود به سیستم آموزش مجازی شما باشند. یا خود نرم افزار آموزش مجازی باید از خیلی از این حملات جلوگیری کند یا این که با استفاده از WAF می توان از این حملات جلوگیری نمود.

تیم تحلیلیار این موارد را مورد بررسی قرار داده است و از هر دو حالت (جهت امنیت بیشتر و اطمینان خاطر استفاده می کند.) WAF در سطح سیستم عامل و وب سرور و همچنین در سطح خود سیستم آموزش مجازی.

قابلیت افزودن https

با HTTPS می توانید بستر ارسال داده ها را ایمن سازی کنید تا از حملات sniffing جلوگیری شود.

3 نوع https می‎توان راه اندازی کرد:

  1. اختصاصی: در این حالت شما می‎توانید از شرکت های بسیار معتبر و دارای ضمانت پشتیبانی اعتبارنامه ssl تهیه کنید و به صورت اختصاصی نصب و راه اندازی کنید.
  2. Lets Encrypt: سیستم اعتبار رایگان و مناسب برای اینترنت می باشد. همچنین رایگان بودن آن محبوبیت بسیاری برای آن فراهم کرده است. این سیستم بسیار مناسب شرکت هایی است که در بستر اینترنت فعالیت می کنند و در شروع کار خود هستند. اما بعد از مدتی بهتر است به گزینه اول مهاجرت کنند. در این روش به دلیل شلوغ بودن سرور های Lets Encrypt امکان حذف بسته ها وجود دارد و در صورتی که سیستم شما مانتور شده باشد Packet Lost های رخ داده شده را مشاهده خواهید کرد.
  3. Self-sign Encryption: در این حالت خود سرور خدمات رسان جوابگوی تایید اعتبارنامه https می باشد. این حالت مناسب سیستم های سازمانی است.

شایان ذکر است که این 3 روش رسمی ترین راه های تعریف https هستند.

سیستم عامل امن

محیط پیاده سازی سیستم آموزش مجازی بسیار مهم است. امکان استفاده از سیستم عامل های ایمن مثل Centos که مناسب سرور‎ها طراحی شده‎اند به امنیت سیستم‎ها کمک می کند.

شایان ذکر است که اکثر هاستینگ های مطرح از CentOS استفاده می کنند.

انواع لاگهای سیستم LMS

سیستم آموزش مجازی برای تمام لاگها امکان گرفتن خروجی با فرمت های CSV ، Excel و JSON را فراهم نموده است. اگر سیستم شما از کار بیفتد یا اخلالی ایجاد شود این سیستم با انجام تنظیمانی برای شما تمامی فعالیت های سیستمی و کلاسی را ثبت می نماید. که شامل موارد زیر است.

لاگ زنده:

تمام رفتارهای هرکاربر را در لحظه نشان می‎دهد. این لاگها شامل هر فعالیتی که در سیستم انجام داده و هر قسمتی از سامانه را که مشاهده نموده می شود. تمام این موارد درسیستم ثبت می گردد.

لاگ مشارکت ها:

مشارکت و فعالیت تمامی شاگردان کلاس قابل بررسی می باشد.

گزارش فعالیت به ازای هر کاربر:

هم شاگرد و مربی (استاد) و هم مدیر سیستم میتواند از وضعیت فعالیت شاگردان مطلع شود. از این رو میتوانید وضعیت فعالیت یک شاگرد را بصورت اختصاصی مورد بررسی قرار دهید.

آمار بر اساس درس ها:

میتوانید وضعیت فعالیت شاگردان یک کلاس را بصورت اختصاصی مورد بررسی قرار دهید.

بررسی موارد امنیتی :

از داخل پنل مدیریت و گزارش ها می توان مرور موارد امنیتی را مشاهده نمود.

لاگ پیکربندی:

هرگونه تغییر مربوط به ساختار نرم افزار در آن قید می گردد. این لاگها کلی هستند و خلاف لاگهای بالا می باشد که مربروط به هر درس یا کاربر می شدند.

گزارش نسخه های پشتیبان:

هر پشتیبانی گیری خودکاری که صورت می گیرد از این قسمت قابل مشاهده می باشد.

پاک کننده هرز نوشته ها:

با استفاده از این ماژول می توان پروفایل های کاربران را جستجو نمود و کاربرانی که عناوین نامناسب و نابهنجار استفاده نموده اند را پاک نمود.

دستورات نظارت بر رویدادها:

می‎توان برای هر رویدادی مثل مشاهده درس، مشاهده مدرک پایان دوره و… دستورات نظارتی فعال نمود. مثلا نمایش دهیم که چه کاربری در حال حاضر درس خاصی را مشاهده نموده است.

قفل نمودن حسابهایی که تلاش ناموفق جهت ورود به سیستم دارند:

تعداد تلاش های ناموفق برای ورود به سیستم که حساب کاربری بعد از آن باید قفل شود 3 مرحله می باشد (پیشفرض). وبعد از آن در بازه نظارت 30 دقیقه ای قرار می گیرد. بعد از 30 دقیقه درصورتی که تلاش ناموفق مجددی صورت نگیرد حساب قفل شده مجددا باز می‎گردد. ضمنا می‎توان زمان 30 دقیقه و تعداد تلاش ناموفق را تغییر داد.

شرایط رمز ورود:

  1. امکان تعریف شرایط رمز ورود
  2. امکان تعریف شرایط بر اساس طول رمز ورود
  3. امکان تعریف شرایط بر اساس تعداد رقم ها
  4. امکان تعریف شرایط بر اساس تعدا حروف کوچک و بزرگ
  5. امکان تعریف شرایط بر اساس حروف خاص
  6. امکان تعریف شرایط بر اساس حروف یکسان متوالی
  7. امکان محدودیت چرخش رمز ورود (رمز های قدیمی را دیگر نمی توان استفاده کرد.) و این مورد می‎تواند فاصله‎ی تکرار تعریف کرد (مثلا این که کاربر می تواند بعد از تغییر 3 بار رمز ورود دوباه رمز قدیمی خود را وارد کند).

به خاطر سپردن نام کاربری

اگر می‎خواهید به هنگام ورود کاربران نام‎های کاربری در کوکی‎های دائمی نگهداری شوند این تنظیم را فعال کنید. البته در حال حاضر این مورد اختیاری است و کاربر خود این مورد را انتخاب می‎کند و شایان ذکر است که از پنل مدیریت می‎توان این دسترسی را از کاربر گرفت.

در صورت اتصال به سرویس پست الکترونیکی

تلاش‎های ناموفق برای ورود به سایت را می‎توان برای مدیر سایت یا هر فرد دیگر که مدیر تشخیص دهد اطلاع رسانی کرد.

عدم ورود همزان با یک حساب کاربری

این امکان وجود دارد تا حساب های کاربری را به تعداد نشست محدود نمود. در نتیجه می توانید مشخصی کنید که حساب های کاربری از چند دستگاه قابل دسترس باشند. این موارد بیشتر کاربرد امنیتی و جلوگیری از تقلب دارد.

بهینه سازی سیستم:

بسیاری از سیستم ها در هر بارگزاری تعداد زیادی فایل را بارگذاری می کنند از این رو در هر مورد سرکشی به وبسایت بار اضافی روی سیستم دانشجو و پهنای باند شبکه و سمت سرور اعمال می شود. این سیستم اولین بار که روی مرورگر کاربر بالا آید (در اولین درخواست) بسیاری از فایل هایی که کاربر نیاز دارد را دریافت و ذخیره می نماید (به این عملیات کش کردن می گویند). همچنین در سری های بعد دیگر آنها را از سرور دریافت نمی‎کند.

عملیات مورد نظر را کش کردن می‎نامیم که در 2 مرحله انجام می شود:

  1. سمت سرور: برای جلوگیری از تکرار بار اضافه و عدم مصرف منابعی مثل CPU و RAM برای افزایش سرعت.
  2. سمت کلاینت: برای جلوگیری از تکرار درخواست های مربوط به محتوای ایستا

روش‎های زیادی برای عملیات کش وجود دارد که شامل Reverse Proxy، CDN و… می شود.

این سیستم حاصل تجربیات تیمی از سال 1396 می باشد و یک شبه بدست نیامده. تیم ما صد ها ساعت بازخورد دریافت کرده اند تا شرایط بهینه برای این سیستم را تعمین کنند.

امکانات:

بسته های استانداردی برای موارد زیر تدارک دیده شده است:

قابلیت ساخت فیلد سفارشی

امکان تعریف کلاس

ثبت نام دانش آموزان در کلاس

تعریف استاد کلاس

امکان تعریف تمرین برای درس ها توسط نقش استاد

امکان برگذاری آزمون

محدود سازی کاربران به مشاهده پیشنیاز های هر کلیپ از یک درس (مثلا: درصورت مشاهده درس 2 می‎‏توانید درس 3 را نیز مشاهده نمایید)

امکان صدور مدرک پایان دوره با قالب اختصاصی

امکان ضبط جلسات (دارای دکمه اختصاصی برای ضبط جلسه)

درگاه پرداخت برای اکثر بانکها

دریافت هزینه برای ثبت نام در کل دروس

دریافت هزینه برای ثبت نام در هر درس بصورت جداگانه

جدا بودن هسته سیستم از سایر ماژول ها (کاملا ماژولار)

سعی ما بر آن بوده تا کلیه نیاز‎ها را ماژولار تهیه کنیم تا بتوانیم همیشه سیستم را ارتقاء دهیم و همیشه قابلیت انتقال به نسخه جدید وجود داشته باشد. همچنین زمانی که کارفرما احتیاجی به نیاز مورد نظر نداشته باشد بتوان برای وی آن قابلیت را به راحتی حذف کرد تا از بار اضافه بر سیستم جلوگیری شود.

امکان برگزاری کلاس آنلاین

در این صورت باید برای سرور برگزاری کلاس آنلاین سرور جداگانه ای در نظر بگیرید که بسته به شرکت کنندگان در جلسه نیازمند منابع بیشتر می باشد.

امکان برگزاری کلاس آنلاین بر بستر  Bigbluebutton

امکان برگزاری جلسه بر بستر هرمز

امکان برگزاری کلاس آنلاین بر بستر  Adobe Connect

امکان محدود کننده شرکت در جلسه بدون حل تمرین جلسه قبل

امکان عدم اجازه کلیک راست روی صفحه جهت محافظت از داده ها

غیرفعال کردن کلیک راست

غیرفعال کردن برش، کپی و جایگذاری

غیر فعال کردن ابزار های مخصوص برنامه نویسان

قابلیت شبکه سازی

‎ارتباط یک سایت آموزشی را با سایر سایت های آموزشی مقدور می سازد.

سیستم پیام رسان

قابلیت اتصال به پیام رسان های زیر امکان پذیر است:

  1. پیام رسان داخلی سامانه (پیشفرض)
    1. امکان ارسال پیام بصورت خصوصی
    2. امکان ارسال پیام بصورت گروهی
  2. Jabber
  3. پست الکترونیکی

ایجاد محتوای تعاملی (H5P – Interactive Content)

استفاده از سایر پایگاه‎داده‎ها برای تایید هویت کاربران

با پشتیبانی از اکثر پایگاه داده‎های مطرح مثل:

  • MySQL
  • MariaDB
  • PostgreSQL
  • Oracle
  • و …

احراز همیت از طریق سرویس LADP

قابلیت فعال کردن وضعیت تعمیر و نگهداری

قالب:

  • قالب واکنشگرا
  • فونت فارسی ایران سنس وب
  • دارای اسلایدر در صفحه اول

سفارشی سازی:

با توجه به جداسازی صورت گرفته در این سامانه قالب این سامانه از هسته سامانه جدا بوده و می توان این قالب را سفارشی سازی کرد بدون این که کل سامانه دچار مشکل شود.

بستر پیاده سازی:

می توانید سامانه مورد نظر را روی سرور های ویندوزی و یا لینوکسی و همچنین هاست های اشتراکی و غیر اشتراکی پیاده سازی کنید.

اما توصیه ما پیاده سازی بر روی سیستم عامل لینوکس می باشد. از بین توزیع های لینوکس میتوانید CentOS را انتخاب کنید که جزء بهترین سیستم عامل‎هایی است که مناسب سیستم‎های سرویس‎دهنده است. چرا که اکثر هاستینگ ها (در حال حاضر) از این سیستم عامل استفاده می کنند.

توصیه پیاده سازی:

توصیه کارشناسان تیم طراحی و توسعه ما استفاده از سرور لینوکس است. سرور های لینوکسی ایمن تر (در صورتی که به خوبی تنظیمات امنیتی آنها انجام شود)، کاراتر (استفاده از منابع برای سرویس دهی نه استفاده از منابع برای راحتی استفاده کننده مثل ویندز) می باشد.
یک توصیه دیگر استفاده از لینوکس بصورت Minimal است تا منابع سرور صرف هدف سیستم شما شود و هزینه صرف محیط گرافیکی و ابزار های غیر ضروری نشود. این هزینه‎ها در بلندمدت خودشان را نشان می دهند. با این وجود اگر از محیط گرافیکی هم استفاده کنید باز سرور های لینوکسی بهینه‎تر و کاراتر از سرور های ویندوزی می باشند.

سرور های لینوکسی مزایای بیشماری دارند که بررسی آنها  نیاز به زمان بیشتری می باشد.

پیش نیاز های پیاده سازی:

سخت افزاری:

  • حداقل 200 مگابایت برای کد سیستم مدیریت آموزش آنلاین
  • حداقل 1 گیگاهرتز پردازنده – توصیه ما 2 گیگاهرتر می باشد.
  • حداقل 512 مگابایت حافظه موقت و توصیه ما 1 گیگابایت می باشد، اما اگر در محیط های عملیاتی بزرگ استفاده می کنید باید حداقل 8 گیگابایت حافظه موقت استفاده کنید.
  • روش بهتر برای محیط عملیاتی بهتر است دو سرور استفاده گردد:
    • یکی برای Frontend
    • یکی هم برای پایگاه داده

قطعا هرچه سیستم شما بزرگتر شود منابع شما نیز باید ارتقاء یابد و لازمه ی هر سیستم اطلاعاتی می باشد.

مقایسه Moodle با سایر سیستم های LMS

wp-lms یا مودل؟

همان گونه که از نام wp-lms پیداست این سیستم مبتنی بر وردپرس است که بسته‎ی نرم افزاری برای نیاز های سیستم های  LMS فراهم شده است. از طرفی این بسته ها رایگان نیستند و برای این سیستم باید هزینه (75 دلار) پرداخت شود و هزینه پشتیبانی آن 23.63 دلار برای بازه 12 ماهه می باشد. لازم به ذکر است که استفاده از این پشتیبانی بنا به شرایط تحریم ممکن نمی باشد. گاها برخی سیستم های پرداختی اعتبارنامه دارند که در مدت زمان معینی به پایان می رسد و یا این که نسخه های بروز شده‎ی آنها با دریافت هزینه ارائه خواهد شد.
در مقابل Moodle کاملا متن باز بوده و وابستگی به هیچ کشوری ندارد و مورد پشتیبانی در تمام دنیا می باشد و همچنین از پایه مناسب کلاس های آنلاین می باشد.

Moodle داده های خود را هم سمت مرورگر کاربر کش می کند و هم سمت سرور تا داده های تکراری بازسازی مجدد نشوند و سرعت بیشتری در سیستم احساس گردد. حال آنکه وردپرس این امکانات را ندارد و باید برای آن افزونه ها و بسته های مناسب این امکانات را فراهم نمود.