English

مستندات · نسخهٔ ۱٫۱

پنل آموزشی ونوس

اسکریپت کامل مدیریت مدرسه، راست‌به‌چپ و فارسی — راه‌اندازی، راهنمای مدیر، دبیر، مشاور، دانش‌آموز و اولیا، شخصی‌سازی و عیب‌یابی.

فریم‌ورک

Laravel 12 · PHP 8.2+

رابط کاربری

فارسی · راست‌چین · تاریک و روشن

نقش‌ها

مدیر · دبیر · مشاور · دانش‌آموز · ولی

فهرست مطالب

    معرفی

    «ونوس» یک سامانهٔ کامل مدیریت مدرسه برای مدارس فارسی‌زبان است. مدیر، دبیر، مشاور، دانش‌آموز و اولیا را در یک محیط یکپارچه و اپلیکیشن‌مانند کنار هم می‌آورد: نمرات و کارنامه، حضور و غیاب، آزمون آنلاین، تکالیف، برنامهٔ هفتگی، کتابخانه، مشاوره، نظرسنجی، پیام‌رسان و تحلیل‌های پیشرفت — همه با رابط راست‌به‌چپ، تاریخ شمسی، ارقام فارسی، تم تاریک و تجربهٔ موبایل شبیه اپ.

    نمای کلی قابلیت‌ها

    بخشامکانات
    مدیریتکلاس‌ها، سازندهٔ برنامهٔ هفتگی با تشخیص تداخل، دبیران (هر کدام چند درس)، دانش‌آموزان، پایه‌ها، کارنامهٔ رسمی با کنترل انتشار، اعلان‌ها، موارد انضباطی.
    تدریسدفتر نمره با چند کوییز در ماه، میان‌ترم و پایان‌ترم؛ حضور و غیاب بر اساس زنگ؛ تکلیف، محتوای آموزشی، کلاس آنلاین و آزمون آنلاین (تصحیح خودکار + دستی).
    یادگیریداشبورد شخصی، صفحهٔ درس‌ها، نمرات، کارنامهٔ ماهانه و رسمی، نمودارها، کتابخانه، مشاوره، الگوی مطالعه، نظرسنجی، تقویم، پیام‌ها و اعلان‌ها.
    تحلیلپیشرفت به تفکیک ماه، کلاس و پایه؛ توزیع سطح عملکرد؛ کارت دانش‌آموزان به ترتیب رتبه؛ فهرست نیازمندان توجه — همه متناسب با نقش واردشده.
    اولیا و پیامکپورتال اولیا (نمودار پیشرفت و پسرفت، کارنامه، انضباط، غیبت، دعوت‌نامه)، پیامک الگومحور با هشت درگاه ایرانی، مجوز پیامک برای هر کارمند و ماتریس سه‌لایهٔ «اولیا چه چیزی را ببینند».
    مشاوراننقش مشاور / مسئول پایه محدود به پایه‌های خودش؛ اختیارات (ثبت دانش‌آموز، بازنشانی رمز اولیا، تعیین دسترسی اولیا، پیامک) یکی‌یکی توسط مدیر داده می‌شود.
    تجربهٔ کاربریراست‌چین‌محور، فونت ایران‌یکان‌ایکس، تم تاریک/روشن، نوار کناری جمع‌شونده، پوستهٔ موبایل با نوار پایین، کارنامهٔ آمادهٔ چاپ.

    نقش‌ها و دسترسی‌ها

    نقشچه چیزی می‌بیندچه کارهایی می‌تواند بکند
    مدیرکل مدرسه.همه‌چیز: مدیریت کلاس‌ها، برنامه‌ها، دبیران، دانش‌آموزان، کارنامه‌ها؛ نمره‌دهی، حضور و غیاب، ثبت انضباطی.
    دبیرفقط کلاس‌ها و درس‌هایی که مدیر به او داده است.نمره‌دهی، حضور و غیاب، مدیریت محتوا، تکلیف، آزمون و کلاس آنلاین درس‌های خودش؛ مشاهدهٔ پروفایل دانش‌آموزان خودش.
    مشاورفقط پایه‌هایی که مسئول آن‌هاست (یک مشاور می‌تواند مسئول چند پایه باشد).تحلیل و انضباط همان پایه‌ها. بقیه را مدیر برای هر نفر جداگانه روشن می‌کند: ثبت دانش‌آموز و اولیا، بازنشانی رمز اولیا، تعیین دسترسی اولیا، ارسال پیامک‌های مجاز.
    دانش‌آموزفقط اطلاعات خودش و کلاس خودش.مطالعه، ارسال تکلیف، شرکت در آزمون، دیدن نمرات و کارنامه، پیام به کارکنان.
    ولیفقط فرزندان خودش، فقط‌خواندنی و فقط بخش‌هایی که مدرسه باز کرده است.نمودار پیشرفت و پسرفت، کارنامه، نمرات، انضباط، غیبت، تقویم، دعوت‌نامه‌ها؛ پیام به مدرسه.
    i
    کنترل دسترسی برای هر درخواست در سمت سرور انجام می‌شود. پنهان‌کردن آیتم منو هرگز تنها محافظ نیست — دبیری که نشانی کلاس دیگری را تایپ کند، صفحهٔ «۴۰۳ ممنوع» می‌بیند.

    پیش‌نیازها

    موردنیاز
    PHP۸٫۲ یا بالاتر (آزمون‌شده روی ۸٫۴ و ۸٫۵)
    افزونه‌های PHPgd (کپچا)، mbstring، fileinfo، openssl، ctype، json، tokenizer، xml و pdo_sqlite یا pdo_mysql
    پایگاه دادهSQLite (پیش‌فرض، نیازی به ساخت نیست) یا MySQL / MariaDB
    وب‌سرورApache (با mod_rewrite)، LiteSpeed یا Nginx
    فضای دیسکحدود ۶۰ مگابایت برای برنامه، به‌علاوهٔ فایل‌های بارگذاری‌شده
    Node.jsبرای اجرای اسکریپت لازم نیست. فقط اگر بخواهید ظاهر را تغییر دهید و دوباره بسازید (Node 20+).
    Cron / صفلازم نیست
    ✓
    یک هاست اشتراکی معمولی cPanel کافی است. اسکریپت روی هاست اشتراکی با PHP 8.4 و SQLite نصب و آزمایش شده است.

    نصب

    بسته یک برنامهٔ آمادهٔ اجراست: وابستگی‌ها (vendor) و فایل‌های ساخته‌شدهٔ ظاهر (public/build) از قبل داخل آن هستند. روشی را انتخاب کنید که با هاست شما می‌خواند.

    الف) نصب‌کنندهٔ وب (بدون خط فرمان)

    برای هاست اشتراکی توصیه می‌شود و فقط یک مرورگر می‌خواهد.

    ۱

    بارگذاری و استخراج

    فایل venus-script.zip را در پوشهٔ دامنه یا زیردامنه (مثلاً public_html یا demo.example.com) بارگذاری و همان‌جا استخراج کنید. پس از استخراج باید artisan، app، public و vendor مستقیماً داخل همان پوشه باشند.

    ۲

    انتخاب PHP 8.2+ و فعال‌کردن افزونه‌ها

    در cPanel بخش Select PHP Version (یا MultiPHP Manager) را باز کنید، PHP ۸٫۲ یا بالاتر را انتخاب و مطمئن شوید gd، mbstring، fileinfo و pdo_sqlite تیک خورده‌اند.

    ۳

    باز کردن نصب‌کننده

    نشانی https://your-domain/install.php را باز کنید. صفحه ده بررسی سرور را فهرست می‌کند و همه باید سبز باشند. نام مدرسه، نشانی سایت، پایگاه داده (پیش‌فرض SQLite) و نام، کد ملی و رمز مدیر را وارد کنید.

    ۴

    ورود و حذف نصب‌کننده

    دکمهٔ نصب را بزنید، سپس /login را باز کنید و با کد ملی و رمزی که انتخاب کردید وارد شوید. در پایان public/install.php را حذف کنید. این فایل دوباره اجرا نمی‌شود (فایل storage/installed.lock را می‌نویسد) اما حذفش کار درستی است.

    ✓
    می‌خواهید اول بگردید؟ دموی زنده را در https://demo.khoshgu.ir باز کنید (یک مدرسهٔ کاملاً پر: ۴۸۵ دانش‌آموز، ۱۸ کلاس، حدود ۴۴ هزار نمره). ورودهای نمایشی: مدیر 1111111111، دبیر 2222222222، مشاور 3333333333، دانش‌آموز 0012345678 — رمز همه password. ولی (تب دوم فرم ورود): کد ملی دانش‌آموز 0012345678 + موبایل 09120000001 + رمز password.
    !
    حساب‌های نمایشی رمز شناخته‌شده دارند؛ هرگز روی سایت واقعی مدرسه از آن‌ها استفاده نکنید. برای نصب دوبارهٔ از صفر، storage/installed.lock، .env و database/database.sqlite را حذف و نصب‌کننده را دوباره اجرا کنید.

    فایل .htaccess ریشه همهٔ درخواست‌ها را به پوشهٔ public می‌فرستد و دسترسی به .env، vendor، storage و پایگاه داده را می‌بندد؛ بنابراین در Apache/LiteSpeed لازم نیست ریشهٔ سایت را تغییر دهید. اگر هاست اجازه می‌دهد دامنه را مستقیم به public وصل کنید، کمی سریع‌تر است و همان‌قدر پشتیبانی می‌شود.

    ب) نصب‌کنندهٔ خط فرمان

    # inside the project folder
    cp .env.example .env
    php artisan key:generate
    # clean school with your own administrator (asks for name, national code, password)
    php artisan venus:install
    # ...or the full demo school
    php artisan venus:install --demo
    # non-interactive
    php artisan venus:install --first-name=Admin --last-name=School --codemeli=1234567890 --password=Str0ng-pass

    این دستور در حالت SQLite فایل پایگاه داده را می‌سازد، مهاجرت‌ها را اجرا می‌کند، سه پایهٔ تحصیلی (دهم، یازدهم، دوازدهم) و مدیر شما را می‌سازد. با --demo به‌جای آن، داده‌های نمایشی بارگذاری می‌شود.

    پ) سرور مجازی / اختصاصی (Nginx)

    بلاک سرور را به پوشهٔ public اشاره دهید:

    server {
        listen 80;
        server_name school.example.com;
        root /var/www/venus/public;
        index index.php;
    
        location / { try_files $uri $uri/ /index.php?$query_string; }
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        }
        location ~ /\.(?!well-known).* { deny all; }
        client_max_body_size 60M;     # matches the 50 MB content upload limit
    }
    sudo chown -R www-data:www-data storage bootstrap/cache database
    sudo chmod -R 775 storage bootstrap/cache database
    php artisan venus:install

    ت) توسعهٔ محلی

    composer install
    npm install
    cp .env.example .env && php artisan key:generate
    php artisan venus:install --demo
    npm run build          # or: npm run dev
    php artisan serve      # http://127.0.0.1:8000
    i
    APP_ENV=local و APP_DEBUG=true را فقط روی رایانهٔ خودتان بگذارید. سایت واقعی باید با APP_DEBUG=false اجرا شود.

    استفاده از MySQL / MariaDB

    در کنترل پنل یک پایگاه داده و کاربر خالی بسازید، سپس در نصب‌کنندهٔ وب MySQL را انتخاب کنید یا .env را ویرایش کنید:

    DB_CONNECTION=mysql
    DB_HOST=localhost
    DB_PORT=3306
    DB_DATABASE=venus
    DB_USERNAME=venus_user
    DB_PASSWORD=your-password

    اولین قدم‌ها پس از نصب

    مدرسهٔ تازه پیش از شروع کار دبیران و دانش‌آموزان به پنج کار نیاز دارد. به همین ترتیب انجام دهید:

    ۱

    ساخت کلاس‌ها

    بخش پایه‌ها و کلاس‌ها را باز کنید و فرم افزودن کلاس جدید را پر کنید (پایه، نام، رشته، ظرفیت). گزینهٔ کپی دروس را تیک بگذارید تا از فهرست دروس کلاس دیگری در همان پایه شروع کنید.

    ۲

    افزودن دبیران

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

    ۳

    ساخت برنامهٔ هفتگی

    هر کلاس را باز کنید (ویرایش و برنامه) و درس‌ها را در زنگ‌ها بچینید. دبیران دقیقاً همین زنگ‌ها را در حضور و غیاب می‌بینند.

    ۴

    افزودن دانش‌آموزان

    در صفحهٔ کلاس از افزودن دانش‌آموز استفاده کنید. هر دانش‌آموز کد ملی و رمز می‌گیرد و در همان کلاس قرار می‌گیرد؛ شمارهٔ همراه پدر و مادر را هم همان‌جا وارد کنید.

    ۵

    ساخت کارنامه‌ها

    بخش کارنامه‌ها و نمرات را باز کنید، کلاس را انتخاب و کارنامه‌های رسمی سال را بسازید (مثلاً یکی برای هر ماه). وقتی آماده شد منتشر کنید.

    ✓
    از همهٔ کاربران بخواهید پس از اولین ورود، رمز موقت را در تنظیمات ← رمز عبور عوض کنند.

    راهنمای مدیر

    در /login با کد ملی، رمز عبور و کد تصویر وارد شوید. در هر جایی که عدد تایپ می‌شود، ارقام فارسی هم پذیرفته می‌شوند.

    داشبورد

    داشبورد کل مدرسه را خلاصه می‌کند و با فیلتر پایه و کلاس بالای صفحه واکنش نشان می‌دهد؛ همهٔ کارت‌ها، نمودارها و فهرست‌ها برای انتخاب شما دوباره محاسبه می‌شوند. در مدرسهٔ تازه (بدون نمره) به‌جای عدد، «—» و «هنوز نمره‌ای ثبت نشده» نشان داده می‌شود.

    داشبورد مدیر با فیلتر پایه، کارت‌های خلاصه، کارت دانش‌آموز و نمودار پیشرفت
    داشبورد مدیر با فیلتر پایه، کارت‌های خلاصه، کارت دانش‌آموز و نمودار پیشرفت

    جعبهٔ جست‌وجوی بالای صفحه دانش‌آموزان را با نام (به هر ترتیب، مثلاً «امیر احمدی»)، کد ملی، پایه یا کلاس پیدا می‌کند.

    پایه‌ها و کلاس‌ها

    پایه‌ها و کلاس‌ها — برای هر کلاس یک کارت با میانگین و ظرفیت
    پایه‌ها و کلاس‌ها — برای هر کلاس یک کارت با میانگین و ظرفیت

    برنامهٔ هفتگی

    صفحهٔ هر کلاس یک جدول دارد؛ روزهای هفته (شنبه تا پنجشنبه) سطر و حداکثر هشت زنگ ستون است. برای هر خانه درس را انتخاب و ذخیرهٔ برنامه را بزنید.

    ویرایش کلاس و سازندهٔ برنامهٔ هفتگی
    ویرایش کلاس و سازندهٔ برنامهٔ هفتگی

    دبیران و درس‌ها

    اختصاص درس‌ها و کلاس‌ها به دبیر
    اختصاص درس‌ها و کلاس‌ها به دبیر
    i
    ضریب هر درس وزن آن در معدل وزنی است. ریاضی با ضریب ۴ دو برابر زبان با ضریب ۲ حساب می‌شود.

    دانش‌آموزان

    فهرست دانش‌آموزان با جست‌وجو و فیلتر پایه
    فهرست دانش‌آموزان با جست‌وجو و فیلتر پایه

    فهرست، دانش‌آموزان را با کد ملی، کلاس، معدل و وضعیت نشان می‌دهد. جست‌وجو چند کلمه را به هر ترتیب می‌پذیرد. پروندهٔ کامل را باز کنید: سربرگ درس‌ها، نمرات با ویرایش/حذف، تکالیف ارسالی، حضور و غیاب، موارد انضباطی و فرم‌های ثبت نمره، اعلان و مورد انضباطی.

    پروفایل دانش‌آموز برای کارکنان
    پروفایل دانش‌آموز برای کارکنان

    همین صفحه کارت‌هایی برای حساب کاربری (ویرایش مشخصات، انتقال به کلاس دیگر، رمز جدید، حذف)، غیبت روزانه، پروندهٔ شخصی، آمار ورود، اولیا و دسترسی اولیا دارد؛ همچنین دکمهٔ پروندهٔ جامع (تب‌دار). با حذف دانش‌آموز، حساب اولیایی که فرزند دیگری ندارند هم حذف می‌شود.

    دفتر نمره و کارنامه‌ها

    دفتر نمره: انتخاب پایه، کلاس، درس، ماه و نوع ارزیابی
    دفتر نمره: انتخاب پایه، کلاس، درس، ماه و نوع ارزیابی
    1. پایه ← کلاس ← درس ← ماه ← نوع (مستمر، کوییز، تکلیف، میان‌ترم، پایان‌ترم) را انتخاب کنید.
    2. برای مستمر و کوییز می‌توانید در هر ماه چند ثبت داشته باشید (کوییز ۱، کوییز ۲ …). از سربرگ‌های بالای جدول یا + جدید استفاده و برای هر کدام عنوان اختیاری بگذارید.
    3. نمره‌ها از ۰ تا ۲۰ با گام ۰٫۲۵ وارد می‌شوند. با Enter به دانش‌آموز بعدی بروید. تعداد و میانگین زنده بالای جدول دیده می‌شود.
    4. ذخیره را بزنید. فقط نمرات تغییرکرده نوشته می‌شوند و هر دانش‌آموز اعلان می‌گیرد. اگر مجوز پیامک داشته باشید، گزینهٔ «ارسال پیامک به اولیا» هم هست.

    زیر جدول، مدیر کارنامه‌های رسمی کلاس را می‌بیند. هر کارنامه تا زمان انتشار پیش‌نویس است و دانش‌آموزان فقط کارنامه‌های منتشرشده را می‌بینند. با کارنامهٔ جدید یکی بسازید (عنوان، تا کدام ماه، انتشار فوری). با انتشار، اعلان و (در صورت فعال‌بودن) پیامک برای اولیا می‌رود.

    فرم اعلان به کلاس برای همهٔ دانش‌آموزان کلاس انتخاب‌شده اعلان می‌فرستد.

    حضور و غیاب

    حضور و غیاب بر اساس زنگ
    حضور و غیاب بر اساس زنگ

    درس‌ها، محتوا، آزمون و کلاس آنلاین

    مدیریت درس با چهار سربرگ
    مدیریت درس با چهار سربرگ

    صفحهٔ هر درس چهار سربرگ دارد:

    هنگام ساخت تکلیف، محتوا یا کلاس آنلاین با یک تیک می‌توانید آن را برای همهٔ کلاس‌های همان درس و پایه اعمال کنید.

    سازندهٔ آزمون با سؤال‌های تستی و تشریحی
    سازندهٔ آزمون با سؤال‌های تستی و تشریحی
    ✓
    سؤال‌های تستی هنگام ارسال دانش‌آموز خودکار تصحیح می‌شوند. پاسخ تشریحی تا ثبت نمره «در انتظار تصحیح دبیر» می‌ماند و مجموع دانش‌آموز بلافاصله به‌روز می‌شود.

    پیشرفت و توزیع

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

    هر دو صفحه از سربرگ‌های پایهٔ بالا پیروی می‌کنند. پیشرفت میانگین ماهانه را مقایسه می‌کند و شش دانش‌آموز با بیشترین رشد و شش نفر نیازمند توجه را فهرست می‌کند. توزیع تعداد دانش‌آموزان هر سطح را برای هر کلاس می‌شمارد. دانش‌آموزان بدون نمره به‌جای صفر حساب‌شدن، از آمار کنار گذاشته می‌شوند.

    موارد انضباطی و آیین‌نامه

    از پروفایل دانش‌آموز، یک تذکر، تشویق یا تأخیر با عنوان، توضیح اختیاری و تاریخ ثبت کنید. سابقه ثبت‌کننده و زمان را نگه می‌دارد؛ دانش‌آموز آن را (با نام و نقش ثبت‌کننده) در بخش انضباط می‌بیند و اعلان می‌گیرد. مدیر در آیین‌نامهٔ انضباطی فهرست عنوان‌های آماده می‌سازد و کارکنان در فرم به‌جای تایپ، از آن انتخاب می‌کنند.

    پیام‌ها، اعلان‌ها و پروفایل

    راهنمای دبیر

    دبیران همان داشبورد را می‌بینند ولی همه‌چیز محدود به کلاس‌ها و درس‌هایی است که مدیر داده: فهرست کلاس‌ها، دانش‌آموزان، انتخاب‌گرهای کلاس و درس در دفتر نمره و حضور و غیاب، آزمون‌ها و تقویم داشبورد.

    داشبورد دبیر برای درس فعال
    داشبورد دبیر برای درس فعال

    جابه‌جایی بین درس‌ها

    دبیری که دو درس یا بیشتر دارد، کلید درس فعال را در سربرگ داشبورد، کلاس‌ها، دانش‌آموزان، پیشرفت و توزیع می‌بیند. میانگین‌ها، رتبه‌ها، نمودارها و فهرست‌ها فقط برای درس انتخاب‌شده محاسبه می‌شوند و انتخاب تا پایان نشست به یاد می‌ماند.

    نمره‌دهی

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

    کارنامه‌ها و نمرات را باز کنید (برای دبیر عنوانش ثبت نمرات است). فقط درس‌های خودتان دیده می‌شود. نمره‌ها را همان‌طور که در بخش دفتر نمره آمده وارد کنید — چند کوییز در ماه پشتیبانی می‌شود.

    حضور و غیاب

    کلاس و درس، سپس تاریخ را انتخاب کنید. زنگ‌هایی که برنامهٔ شما در آن روز هفته دارد پررنگ است. فهرست را ذخیره کنید؛ غایب‌ها و متأخرها اعلان می‌گیرند.

    ابزارهای درس

    از درس‌ها و محتوا برای ساخت تکلیف، بارگذاری محتوا، برنامه‌ریزی کلاس آنلاین و ساخت آزمون درس‌های خودتان استفاده کنید؛ تصحیح پاسخ‌ها و پاسخ‌های تشریحی هم از همین صفحه‌هاست. گزارش تدریس برای ثبت مبحث و تکلیف هر جلسه و آزمون‌های کتبی برای ثبت نمرهٔ آزمون‌های حضوری هستند.

    کارهای پروفایل دانش‌آموز

    باز کردن دانش‌آموز کلاس شما فقط درس شما را نشان می‌دهد. از همان‌جا می‌توانید نمره ثبت کنید، اعلان خصوصی بفرستید، نمرهٔ دستی تکلیف بدهید و مورد انضباطی ثبت کنید. دانش‌آموزی که در کلاس‌های شما نیست ۴۰۳ ممنوع می‌دهد. پیامک به اولیا فقط با «قالب‌ها»ی تعیین‌شدهٔ مدیر و فقط اگر مدیر برای شما مجاز کرده باشد ممکن است.

    راهنمای دانش‌آموز

    دانش‌آموزان با کد ملی و رمزی که مدرسه داده وارد می‌شوند. صفحهٔ اصلی رتبه در کلاس و پایه، آخرین معدل، کارهای مانده، کلاس‌های زنده و روند معدل در طول سال را نشان می‌دهد.

    داشبورد دانش‌آموز
    داشبورد دانش‌آموز
    بخشدانش‌آموز چه می‌تواند بکند
    درس‌های منیک صفحه برای هر درس: دبیر، سرفصل، محتوا، تکالیف و نمرات.
    محتوای آموزشیتماشای ویدیو، گوش‌دادن به صوت، دانلود PDF و فایل‌ها.
    تکالیفدریافتی (در انتظار)، ارسالی (با نمره و بازخورد) و بارگذاری فایل پاسخ (PDF، JPG، PNG، ZIP، DOC، DOCX تا ۱۰ مگابایت). ارسال دیرهنگام علامت می‌خورد. لوح تکالیف همهٔ تکالیف کلاس را در یک صفحه و به‌صورت روزانه نشان می‌دهد.
    آزمون آنلاینآزمون‌های باز، پیش رو، انجام‌شده و از دست رفته. در طول آزمون شمارندهٔ زمان کار می‌کند؛ صفحهٔ نتیجه پاسخ‌های درست و تصحیح‌های منتظر را نشان می‌دهد. نتیجهٔ آزمون‌های کتبی با رتبه، میانگین کلاس و سه نفر برتر جداست.
    کلاس آنلاینجلسه‌های امروز و آینده با پیوند ورود و نشان «زنده».
    نمرات منهمهٔ نمرات هر درس و ماه با توضیح دبیر.
    کارنامهکارنامهٔ ماهانه (با مقایسه با کلاس) و کارنامه‌های رسمی منتشرشدهٔ مدیر؛ قابل چاپ.
    نمودارهارتبه در بین هم‌کلاسی‌ها، تحویل تکالیف، توزیع نمره، روند هر درس و محور معدل.
    کتابخانهجست‌وجوی کتاب‌های مدرسه، رزرو، دیدن امانت‌ها و رزروهای فعلی.
    مشاورهدیدن برنامه‌های مشاوره‌ای و جلسه‌هایی که مشاور برایش تعیین کرده است (دانش‌آموز خودش نوبت ثبت نمی‌کند).
    الگوی مطالعه و برنامه‌ریزثبت مدت مطالعه و تعداد تست هر درس در هر روز (اولیا می‌توانند تأیید کنند) و برنامهٔ هفتگی دقیقه‌ای با چاپ و پشتیبان.
    انتخابات و نظرسنجیرأی دادن (یک بار برای هر نظرسنجی) و دیدن مشارکت‌های قبلی.
    غیبت‌هاغیبت، موجه‌بودن و تأخیر به تفکیک تاریخ، درس و زنگ؛ همراه با غیبت‌های روزانه.
    انضباطتذکر، تشویق و تأخیر با ثبت‌کننده و تاریخ.
    تقویم و برنامهتقویم شمسی با آزمون‌ها، تکالیف و رویدادهای تقویم اجرایی، به‌علاوهٔ برنامهٔ هفتگی ساخته‌شده توسط مدیر (قابل چاپ).
    اخبار، گزارش تدریس، پروندهٔ شخصیتابلوی اخبار پایه، مباحث تدریس‌شده هر جلسه، اطلاعات شخصی و (اگر مدرسه اجازه داده باشد) اصلاح آن‌ها؛ پروندهٔ جامع تب‌دار و آمار ورود.
    کلاس‌های فرهنگی و پژوهشیثبت‌نام یا انصراف از کلاس‌هایی که مدرسه تعریف کرده است.
    پیام‌ها و اعلان‌هانوشتن به دبیران، مشاور و مدیر؛ خواندن اطلاعیه‌ها و خبر نمره‌ها.
    صفحهٔ یک درس
    صفحهٔ یک درس
    کارنامهٔ ماهانه
    کارنامهٔ ماهانه
    نمودار رتبه و معدل
    نمودار رتبه و معدل

    در گوشی

    در صفحه‌های باریک‌تر از ۱۰۲۴ پیکسل، نوار کناری به نوار تب پایین (خانه، تکالیف، آزمون، کارنامه، بیشتر) تبدیل می‌شود و کارت‌های خلاصه به کاروسل کشویی. سایت را می‌شود به صفحهٔ اصلی گوشی اضافه کرد. در تنظیمات می‌توانید نسخهٔ دسکتاپ را به‌جای موبایل ببینید.

    داشبورد دانش‌آموز در گوشی
    داشبورد دانش‌آموز در گوشی

    اولیا، مشاوران و پیامک

    این بخش مدرسه را به خانواده‌ها وصل می‌کند و روی چهار ایده بنا شده است: اولیا ورود امن و فقط‌خواندنی خودشان را دارند؛ مدیر تعیین می‌کند چه چیزی ببینند؛ پیامک از راه سامانهٔ الگو (پترن) درگاه‌های ایرانی کار می‌کند؛ و کارکنان فقط همان چیزی را می‌فرستند که مدیر اجازه داده است.

    حساب اولیا و ورود

    هنگام ثبت دانش‌آموز، مدرسه شمارهٔ همراه پدر و/یا مادر را وارد می‌کند (نام اختیاری است؛ حداقل یک شماره لازم است و دو شماره نباید یکسان باشند). برای هر شمارهٔ همراه یک حساب ساخته می‌شود؛ اگر همان شماره قبلاً برای فرزند دیگری ثبت شده باشد، همان حساب به دانش‌آموز تازه هم وصل می‌شود تا خانوادهٔ چندفرزندی یک ورود داشته باشد.

    فیلد ورودمقدار
    کد ملی دانش‌آموزکد فرزندی که ولی می‌خواهد پروندهٔ او را ببیند.
    شمارهٔ همراهشمارهٔ ثبت‌شدهٔ خود ولی (ارقام فارسی و شکل +98 پذیرفته می‌شود).
    رمز عبوررمز تصادفی ۸ رقمی که با حساب ساخته می‌شود. یک‌بار به مدیر یا مشاور نشان داده و با پیامک (رویداد «اطلاعات ورود») برای ولی فرستاده می‌شود. ولی می‌تواند در تنظیمات تغییرش دهد.
    صفحهٔ ورود با تب جدای «اولیا»
    صفحهٔ ورود با تب جدای «اولیا»
    i
    فرم ورود هرگز نمی‌گوید کدام یک از سه فیلد اشتباه بوده؛ کپچا لازم است و تلاش‌ها برای هر ترکیب دانش‌آموز/موبایل/IP محدود می‌شود. ولیِ فراموش‌کار به مدرسه مراجعه می‌کند: مدیر (یا مشاور دارای مجوز) پروفایل دانش‌آموز را باز و ساخت رمز جدید را می‌زند؛ رمز یک‌بار نمایش داده و با پیامک فرستاده می‌شود.
    داشبورد اولیا
    داشبورد اولیا

    صفحهٔ اصلی ولی «نکاتی که باید بدانید» را به ترتیب اهمیت فهرست می‌کند (دعوت‌نامه، انضباط، غیبت، افت معدل، افت یک درس، آزمون‌های پیش رو، تشویق)، همراه با روند معدل در برابر میانگین کلاس، تغییر هر درس، کارنامه‌ها، انضباط و دعوت‌نامه‌ها. اگر چند فرزند باشد، کلید جابه‌جایی بالای صفحه می‌آید. ولی همچنین می‌تواند هر ثبت مطالعهٔ فرزند را تأیید یا رد کند.

    مشاوران و مسئولان پایه

    مدیر ← مشاوران و مسئولان پایه یک مشاور می‌سازد و پایه‌های مسئولیتش را تیک می‌زند. مشاور در همهٔ صفحه‌ها و نمودارها فقط کلاس‌ها و دانش‌آموزان همان پایه‌ها را می‌بیند؛ باز کردن دانش‌آموز پایهٔ دیگر «۴۰۳» می‌دهد.

    پایه‌ها و ماتریس مجوز یک مشاور
    پایه‌ها و ماتریس مجوز یک مشاور
    مجوزمعنی
    ثبت و ویرایش دانش‌آموز و اولیادانش‌آموز را همراه شمارهٔ همراه پدر/مادر به یکی از کلاس‌های پایه‌های مشاور اضافه می‌کند؛ بعداً اولیا را ویرایش می‌کند. سازنده ثبت می‌شود و رمز اولیهٔ دانش‌آموز (اگر خالی بماند) ساخته و یک‌بار نشان داده می‌شود.
    بازنشانی رمز اولیادکمهٔ «ساخت رمز جدید» برای هر ولی در پروفایل دانش‌آموز.
    تعیین دسترسی اولیاصفحهٔ دسترسی اولیا برای پایه‌های خودش و کلیدهای هر دانش‌آموز را باز می‌کند.
    نوبت‌دهی مشاورهتعیین زمان جلسه برای دانش‌آموزان پایه‌های خودش (به‌صورت پیش‌فرض روشن است).
    غیبت روزانه، گروه‌ها، اخبار، تقویم اجرایی، کلاس‌های فرهنگیهر کدام یک مجوز جدا که مدیر روشن/خاموش می‌کند.
    ورود به حساب دانش‌آموز و اولیافقط برای پشتیبانی، با 2FA فعال خود مشاور؛ جزئیات در جدول «زندگی مدرسه».
    انضباط، دعوت‌نامه، پیامکهمان ماتریس دبیران (پایین‌تر را ببینید).
    ثبت دانش‌آموز و اولیا توسط مشاور
    ثبت دانش‌آموز و اولیا توسط مشاور

    اولیا چه چیزی می‌بینند (سطح دسترسی)

    این بخش‌ها را می‌شود نشان داد یا پنهان کرد: کارنامه‌ها، نمرات دروس، نمودار پیشرفت، موارد انضباطی، غیبت‌ها، تقویم و برنامه، دعوت‌نامه‌ها، گزارش تدریس، اخبار پایه، مطالعهٔ روزانه، جلسات مشاوره، آمار ورود، لوح تکالیف، برنامه‌ریز، کلاس‌های فرهنگی، پروندهٔ جامع و هشدارهای داشبورد. دقیق‌ترین قانون برنده است:

    1. پیش‌فرض سامانه — مدیر ← دسترسی اولیا (تا وقتی تغییر ندهید همه‌چیز دیده می‌شود؛ جلسات مشاوره پیش‌فرض بسته است).
    2. پیش‌فرض پایه — برای هر پایه یک کارت؛ «اعمال برای همهٔ دانش‌آموزان این پایه» استثناهای فردی را پاک می‌کند.
    3. استثنای دانش‌آموز — در پروفایل دانش‌آموز؛ «برگشت به تنظیم پایه» آن را برمی‌دارد.
    دسترسی اولیا به تفکیک پایه
    دسترسی اولیا به تفکیک پایه
    !
    پنهان یعنی همه‌جا پنهان. صفحه و آیتم منویش ناپدید می‌شوند، بلوک‌ها و هشدارهای داشبورد که از آن ساخته می‌شدند حذف می‌شوند، و برای آن بخش نه پیامک و نه اعلان درون‌برنامه‌ای ساخته می‌شود. گزارش پیامک این موارد را با وضعیت «ردشده (بخش پنهان)» ثبت می‌کند تا بدانید چرا پیامکی نرفته است.

    زندگی مدرسه: پرونده، گزارش تدریس، اخبار و تقویم

    بخشطرز کار
    پروندهٔ شخصیتاریخ تولد، نام پدر، ایمیل، موبایل دانش‌آموز، تلفن منزل و اضطراری، کدپستی، نشانی، شغل و تحصیلات والدین، زندگی با چه کسی، بیماری خاص. مدیر (یا مشاور دارای مجوز) در پروفایل دانش‌آموز ویرایش می‌کند؛ یک کلید اجازه می‌دهد دانش‌آموز و اولیا خودشان اصلاح کنند.
    گزارش تدریسهر دبیر مبحث، توضیح و تکلیف هر جلسهٔ درس‌های خودش را ثبت می‌کند (مدیر: هر درسی). دانش‌آموزان و اولیا به تفکیک درس می‌خوانند؛ مشاوران پایه‌های خود را دنبال می‌کنند. اولیا فقط اگر بخش «گزارش تدریس» باز باشد می‌بینند.
    اخبار پایهخبر برای کل مدرسه (مدیر) یا یک پایه (مدیر، یا مشاور دارای مجوز) با پیوست، سنجاق، جست‌وجو و شمارندهٔ دانلود.
    تقویم اجراییرویدادهای آموزشی، فرهنگی، پژوهشی، جلسه و تعطیلی با تاریخ شروع/پایان، پایه و مخاطب (دانش‌آموز، اولیا، دبیر). در تقویم دانش‌آموز، ولی و داشبورد کارکنان نمایش داده می‌شوند.
    آیین‌نامهٔ انضباطیمدیر فهرست عنوان‌های آماده را بر اساس نوع نگه می‌دارد؛ کارکنان در فرم انضباط یکی را انتخاب می‌کنند.
    تأیید مطالعهٔ روزانهدانش‌آموز مطالعه ثبت می‌کند؛ ولی هر ثبت را (با یادداشت اختیاری) تأیید یا رد می‌کند. ویرایش ثبت، بررسی را از نو شروع می‌کند.
    نوبت‌دهی مشاورهفقط مشاور (یا مدیر) زمان جلسه را تعیین می‌کند — دانش‌آموز نمی‌تواند نوبت بگیرد یا درخواست بدهد. دانش‌آموز در برنامه اعلان می‌گیرد؛ مشاور جلسه را با گزارش «انجام‌شده» می‌کند، جابه‌جا یا لغو می‌کند. اولیا فقط وقتی بخش «مشاوره» برایشان باز شود جلسه‌ها را می‌بینند (پیش‌فرض بسته).
    آمار ورودهر ورود دانش‌آموز با تاریخ، ساعت و مدت حضور ثبت می‌شود؛ برای خود دانش‌آموز، کارکنان (در پروفایل) و — اگر بخش باز باشد — اولیا.
    پروندهٔ جامعیک صفحهٔ تب‌دار برای هر دانش‌آموز — نمرات ماهانه، کارنامه، مطالعه، ورود، انضباط، غیبت، مشاوره — برای کارکنان، دانش‌آموز و (بخش‌به‌بخش) اولیا.
    غیبت روزانهغیبت تمام‌روز موجه یا غیرموجه با دلیل (مدیر و مشاوران)؛ خانواده با رعایت سطح دسترسی و مجوز پیامک مطلع می‌شود.
    لوح تکالیفهمهٔ تکالیف کلاس در یک صفحه، گروه‌بندی روزانه، مرتب‌سازی بر اساس مهلت یا تاریخ ثبت، و آرشیو.
    برنامه‌ریز مطالعهجدول هفتگی دقیقه‌ها برای هر درس و روز، با جمع‌ها، چاپ و پشتیبان/بازیابی JSON. اولیا می‌توانند ببینند.
    کلاس‌های فرهنگی و پژوهشیکارکنان کلاس تعریف می‌کنند (پایه، ظرفیت، مدرس)؛ دانش‌آموزان ثبت‌نام یا انصراف می‌دهند؛ کارکنان فهرست ثبت‌نام‌شدگان را می‌بینند.
    آزمون کتبیدبیر نمرات آزمون‌های حضوری را وارد می‌کند؛ دانش‌آموز نمره، رتبه، میانگین کلاس و سه نفر برتر را می‌بیند.
    گروه‌ها و پیام‌هاگروه‌های دانش‌آموزی فراتر از کلاس؛ پیام به کل گروه، ارسال زمان‌بندی‌شده، فیلتر خوانده‌نشده و جست‌وجو.
    حضور کلاس آنلایندکمهٔ «ورود به کلاس» ثبت می‌کند چه کسی وارد شد (اولین ورود، تعداد). مدت ماندن قابل اندازه‌گیری نیست چون جلسه روی سرویس بیرونی برگزار می‌شود.
    ورود پشتیبانیمدیر (یا مشاور دارای مجوز) می‌تواند با حساب دانش‌آموز یا ولی وارد شود — فقط با 2FA فعالِ خودش، فقط در دامنهٔ خودش، با نوار قرمز و ثبت کامل در گزارش.
    دسترسی سریعبا ستاره هر صفحه را در سربرگ سنجاق کنید؛ جملهٔ انگیزشی روزانه؛ تعویض نسخهٔ موبایل/دسکتاپ در گوشی.
    میز کتابخانهمدیر کتاب (تعداد نسخه، جلد) اضافه می‌کند، رزروها و امانت‌ها را می‌بیند، کتاب را تحویل می‌دهد (مهلت ۱۴ روز)، پس می‌گیرد یا رزرو را لغو می‌کند.
    انتخابات و نظرسنجیمدیر نظرسنجی، انتخابات و ارزیابی با گزینه‌ها و تاریخ می‌سازد و نتایج زنده را دنبال می‌کند.
    برنامهٔ مشاوره‌ایمشاور برای یک دانش‌آموز برنامهٔ مطالعه می‌نویسد، هر روز هفته در یک خط؛ دانش‌آموز آن را در مشاوره ← برنامه‌ها می‌بیند.
    مدیریت حساب‌هااصلاح نام یا کد ملی، انتقال دانش‌آموز به کلاس دیگر، رمز جدید (یک‌بار نمایش، خروج از همهٔ دستگاه‌ها) یا حذف حساب. با حذف دانش‌آموز، اولیای بی‌فرزند هم حذف می‌شوند؛ با حذف دبیر، درس‌ها و سوابقش می‌ماند.
    امنیت حسابفهرست نشست‌های فعال با «خروج از سایر دستگاه‌ها» و ورود دومرحله‌ای اختیاری (TOTP؛ با Google Authenticator کار می‌کند) برای کارکنان.
    پروندهٔ جامع تب‌دار
    پروندهٔ جامع تب‌دار
    برنامه‌ریز هفتگی مطالعه
    برنامه‌ریز هفتگی مطالعه
    دفتر نوبت مشاور
    دفتر نوبت مشاور
    تابلوی اخبار پایه
    تابلوی اخبار پایه
    تقویم اجرایی (مدیر)
    تقویم اجرایی (مدیر)
    پروندهٔ شخصی دانش‌آموز
    پروندهٔ شخصی دانش‌آموز

    تنظیمات پیامک و درگاه‌ها

    فقط مدیر به پیامک اولیا دسترسی دارد. درگاه را انتخاب و اطلاعات حسابش را وارد کنید (رمزها رمزنگاری‌شده ذخیره می‌شوند)؛ سپس برای هر رویداد کد الگو (پترن) تأییدشده در پنل درگاه را بنویسید. صفحه ترتیب دقیق متغیرها را برای ساخت الگو نشان می‌دهد. برای درگاه‌هایی که متن آزاد می‌پذیرند، یک متن جایگزین هم استفاده می‌شود. پیش از روشن‌کردن رویدادها از ارسال آزمایشی استفاده کنید.

    تنظیمات پیامک، رویدادها و گزارش
    تنظیمات پیامک، رویدادها و گزارش
    درگاهالگومتن آزاداطلاعات لازم
    کاوه‌نگار✓✓کلید API، خط
    SMS.ir✓✓کلید API، خط
    ملی‌پیامک / فراپیامک✓✓نام کاربری، رمز یا کلید API، خط
    قاصدک✓—کلید API
    آی‌پی‌پنل (Edge)✓—توکن، خط با کد کشور
    آسانک✓✓نام کاربری، رمز، خط
    صبانوین—✓کلید API، خط
    اتصال دلخواه HTTP✓✓نشانی، روش، سرآیندها و بدنه با {mobile} {pattern} {text} و جانشین متغیرها
    فقط ثبت در گزارشهیچ پیامکی ارسال نمی‌شود؛ همهٔ پیام‌ها در گزارش ثبت می‌شوند (حالت نمایشی).
    رویدادمتغیرها (به همین ترتیب)
    انتشار کارنامهstudent, title, url, school
    مورد انضباطیstudent, type, title, url, school
    دعوت به مدرسهstudent, date, time, reason, school
    غیبتstudent, date, course, school
    اطلاعات ورود اولیاstudent, url, password, school

    مدیر همچنین می‌تواند پیام‌های آماده (متن یا کد الگوی خودش) تعریف کند. این پیام‌ها در فهرست مجوزهای کارکنان و در پروفایل دانش‌آموز با عنوان «پیام آماده» ظاهر می‌شوند.

    چه کسی چه پیامکی می‌فرستد

    بخش اولیا در پروفایل دانش‌آموز: دعوت، پیام آماده، رمز جدید، دسترسی
    بخش اولیا در پروفایل دانش‌آموز: دعوت، پیام آماده، رمز جدید، دسترسی

    پیکربندی

    همهٔ تنظیمات در فایل .env ریشهٔ پروژه است. نصب‌کنندهٔ وب آن را برایتان می‌نویسد.

    کلیدمعنی
    APP_NAMEنام مدرسه / سایت که در عنوان‌ها دیده می‌شود.
    APP_URLنشانی کامل سایت، مثلاً https://school.example.com.
    APP_ENV / APP_DEBUGروی سایت واقعی production و false.
    APP_KEYکلید رمزنگاری. نصب‌کننده می‌سازد. روی سایت واقعی هرگز تغییرش ندهید — همه از حساب خارج می‌شوند و رمزهای ذخیره‌شدهٔ درگاه پیامک خوانده نمی‌شوند.
    APP_DEMOtrue کادر حساب‌های نمایشی را در صفحهٔ ورود نشان می‌دهد. برای مدرسهٔ واقعی false بماند.
    APP_LOCALEپیش‌فرض fa. پیام‌های اعتبارسنجی از lang/fa می‌آیند.
    APP_TIMEZONEپیش‌فرض Asia/Tehran.
    DB_*اتصال پایگاه داده (به MySQL نگاه کنید).
    SESSION_LIFETIMEدقیقه‌های پیش از انقضای نشست بی‌فعالیت (پیش‌فرض ۱۲۰).
    LOG_LEVELدر سایت واقعی error. لاگ‌ها در storage/logs/laravel.log هستند.

    سقف بارگذاری

    برنامه پیوست تا ۵ مگابایت (پیام‌ها)، ۱۰ مگابایت (تکالیف) و ۵۰ مگابایت (محتوای آموزشی) می‌پذیرد. سقف‌های PHP باید دست‌کم همین‌قدر باشند: upload_max_filesize و post_max_size را تنظیم کنید (cPanel: Select PHP Version ← Options).

    حافظهٔ نهان

    اگر روی سرور view یا پیکربندی را ویرایش کردید، کش را پاک کنید: php artisan view:clear و php artisan config:clear. روی هاست بدون ترمینال، فایل‌های داخل storage/framework/views را حذف کنید.

    شخصی‌سازی

    رنگ برند و تم‌ها

    همهٔ رنگ‌ها توکن‌های طراحی در resources/css/app.css هستند. --color-brand را در بلوک @theme برای تم روشن و در :root.dark برای تم تاریک عوض کنید.

    @theme {
      --color-brand: #4318ff;   /* primary colour */
      --color-canvas: #f4f7fe;  /* page background */
      --color-surface: #ffffff; /* cards */
      --color-mint: #05cd99;    /* positive */
      --color-rose: #ee5d50;    /* negative */
    }
    :root.dark { --color-brand: #7551ff; --color-canvas: #0b1437; --color-surface: #111c44; }

    نشان برنامه یک SVG واحد است: resources/svg/logo_mark.svg (با currentColor کشیده شده و از تم پیروی می‌کند). آن را با SVG خودتان جایگزین کنید. فاوآیکن و آیکن PWA در public/ هستند.

    فونت

    رابط از فونت متغیر ایران‌یکان‌ایکس در resources/fonts استفاده می‌کند که در resources/css/app.css تعریف شده است. برای فونت دیگر، فایل‌ها را اضافه و بلوک @font-face و توکن --font-sans را ویرایش کنید.

    !
    ایران‌یکان‌ایکس فونت شخص ثالث است. پیش از بازتوزیع، مجوزش را برای کاربرد خودتان بررسی کنید و اگر شامل شما نمی‌شود جایگزینش کنید.

    متن‌ها و ترجمه‌ها

    متن‌های رابط مستقیماً در view‌های Blade زیر resources/views (فارسی) نوشته شده‌اند. پیام‌های اعتبارسنجی در lang/fa/validation.php هستند (شامل نام فیلدها در attributes). برچسب‌های منو در app/Support/Navigation.php هستند.

    ساخت دوبارهٔ ظاهر

    فایل‌های ساخته‌شده از قبل در public/build هستند. پس از تغییر CSS، جاوااسکریپت یا کلاس‌های Tailwind یک view، دوباره بسازید:

    npm install
    npm run build

    پوشهٔ تازهٔ public/build را روی سرور بارگذاری کنید.

    افزودن یک ماژول

    1. در app/Http/Controllers یک کنترلر بسازید و مسیرهایش را در routes/web.php داخل گروه نقش مناسب اضافه کنید.
    2. در resources/views یک view با <x-layouts.app> و <x-page> بسازید — نوار کناری، سربرگ، تم و پوستهٔ موبایل خودبه‌خود می‌آیند.
    3. آیتم منو را در app/Support/Navigation.php اضافه کنید.
    4. از کامپوننت‌های x-stat، x-badge، x-empty، x-chart، x-tabs و x-jdate دوباره استفاده کنید.

    معماری

    ساختار پوشه‌ها

    مسیرکاربرد
    app/Http/Controllersیک کنترلر برای هر ماژول (Dashboard، Course، Grade، ReportCard، Assignment، Exam، Attendance، Library، Counseling …) به‌علاوهٔ کنترلرهای Staff* و مدیریتی.
    app/Services/AcademicAnalytics.phpتنها منبع حقیقت برای معدل، رتبه، توزیع و دادهٔ داشبورد. داشبوردها، کارنامه‌ها و نمودارها همه از آن استفاده می‌کنند، پس اعداد همیشه با هم می‌خوانند.
    app/Services/{SmsService, ParentService, ParentAccess}ارسال پیامک الگومحور و درگاه‌ها، ساخت حساب اولیا، و قانون سه‌لایهٔ «اولیا چه چیزی ببینند» که در یک نقطهٔ مرکزی اعمال می‌شود.
    app/SupportPersian (ارقام و ابزار شمسی)، Navigation (منوی وابسته به نقش)، Permissions (مجوز هر کارمند)، Totp، Captcha، Icons.
    app/Http/MiddlewareRoleMiddleware، ActingStudent (ولی صفحه‌های دانش‌آموز را برای فرزند انتخابی می‌بیند)، NormalizeDigits، TrackPresence.
    app/Console/Commandsvenus:install، venus:reset-password.
    resources/viewsview‌ها و کامپوننت‌های Blade. components/layouts/app.blade.php پوستهٔ برنامه است.
    resources/js, resources/cssاستور و کامپوننت‌های Alpine.js، پوستهٔ Chart.js، توکن‌های Tailwind CSS v4.
    database/migrations, seedersساختار پایگاه داده و دادهٔ مدرسهٔ نمایشی.
    public/install.phpنصب‌کنندهٔ وب (پس از استفاده حذف شود).
    tests/Featureآزمون‌های سرتاسری (۲۴ آزمون، ۹۴۸ بررسی) از جمله آزمون نصب خام که یک روز کامل مدرسه را با همهٔ نقش‌ها می‌گذراند.

    نمره، معدل و رتبه چگونه محاسبه می‌شود

    1. هر نمره به مقیاس ۲۰ می‌رسد: score × 20 / max_score.
    2. میانگین درس هر دانش‌آموز، میانگین نمره‌های او در آن درس است.
    3. معدل، میانگین وزنی میانگین درس‌ها با ضریب هر درس است.
    4. رتبهٔ کلاس و رتبهٔ پایه معدل‌ها را در همان کلاس / پایه مقایسه می‌کنند. برای دبیر، «معدل» یعنی میانگین درس فعال.
    5. دانش‌آموز بدون نمره معدل ندارد: «—» نشان می‌دهد و از توزیع‌ها کنار می‌رود.

    محدودسازی بر اساس نقش

    مسیرها با میان‌افزار role: گروه‌بندی شده‌اند. در بخش کارکنان، دبیر علاوه بر آن به درس‌های خودش محدود می‌شود و مشاور به پایه‌های خودش؛ فهرست‌ها، انتخاب‌گرها، پروفایل‌ها، آزمون‌ها و هر POST با آن‌ها سنجیده می‌شود و در غیر این صورت ۴۰۳ برمی‌گردد.

    تاریخ‌ها

    تاریخ‌ها به‌صورت ISO میلادی ذخیره و به شمسی با ارقام فارسی نمایش داده می‌شوند. کامپوننت‌های x-jdate / x-datetime انتخاب‌گر شمسی می‌سازند که مقدار میلادی ارسال می‌کند. کمکی‌های jd()، jtime() و fa() تاریخ و عدد را در view‌ها قالب‌بندی می‌کنند.

    پایگاه داده

    جدولمحتوا
    usersهمهٔ حساب‌ها: کد ملی، موبایل، نام، نقش (admin، teacher، counselor، student، parent)، کلاس، سازنده، تصویر، تنظیمات، کلید 2FA.
    student_parents, parent_invitationsپیوند پدر/مادر (یک ولی می‌تواند چند فرزند داشته باشد) و دعوت‌نامه‌های مدرسه.
    settings, sms_logs, sms_custom_eventsتنظیمات رمزنگاری‌شدهٔ درگاه، الگوی هر رویداد، همهٔ پیامک‌ها (ارسال‌شده، ناموفق، ثبت‌شده، ردشده) و پیام‌های آمادهٔ مدیر.
    staff_permissions, counselor_gradesماتریس مجوز هر نفر با دامنه، و پایه‌های هر مشاور.
    grade_parent_access, student_parent_accessبخش‌های قابل‌مشاهده برای اولیا به تفکیک پایه و دانش‌آموز (فقط وقتی با پیش‌فرض فرق دارد ذخیره می‌شود).
    student_profiles, teaching_reports, news_posts, school_events, discipline_rulesپروندهٔ شخصی، گزارش تدریس، اخبار، تقویم اجرایی و آیین‌نامهٔ انضباطی.
    daily_absences, study_plans, activities, activity_registrations, offline_exams, offline_results, student_groups, student_group_membersغیبت روزانه، برنامه‌ریز مطالعه، کلاس‌های فرهنگی و ثبت‌نام، آزمون‌های کتبی و نمرات، گروه‌های دانش‌آموزی.
    login_logs, impersonation_logs, online_class_joinsآمار ورود دانش‌آموز، گزارش ورودهای پشتیبانی، و ثبت ورود به کلاس آنلاین.
    grade_levels, classroomsپایه‌ها (۱۰ تا ۱۲) و کلاس‌ها با رشته و ظرفیت.
    courses, course_periodsیک درس در یک کلاس (دبیر، ضریب، سرفصل) و زنگ‌هایش (روز ۰ = شنبه، زنگ).
    grades, report_cardsنمرهٔ هر دانش‌آموز، درس، ماه، نوع و شماره؛ کارنامه‌های رسمی با وضعیت انتشار.
    assignments, assignment_submissionsتکالیف و پاسخ‌ها با نمره، بازخورد و دیرکرد.
    educational_contents, online_classesمواد آموزشی و جلسه‌های کلاس زنده.
    exams, exam_questions, exam_attempts, exam_answersآزمون‌های آنلاین، سؤال‌ها، تلاش‌ها و پاسخ‌ها با امتیاز.
    attendancesسوابق غیبت / تأخیر / موجه به تفکیک تاریخ و زنگ.
    discipline_recordsتذکر، تشویق و تأخیر با ثبت‌کننده و تاریخ.
    books, book_loansکتابخانهٔ مدرسه، رزرو و امانت.
    counseling_programs, counseling_sessions, study_patternsمشاوره و ثبت مطالعه (با تأیید اولیا).
    polls, poll_options, poll_votesانتخابات و نظرسنجی.
    internal_messages, app_notificationsپیام‌ها (با ارسال زمان‌بندی‌شده) و اعلان‌ها.
    sessions, cache, jobsجدول‌های فریم‌ورک.
    ✓
    پشتیبان‌گیری. با SQLite کل مدرسه یک فایل است: database/database.sqlite و پوشهٔ storage/app/public (فایل‌های بارگذاری‌شده) را کپی کنید. با MySQL پایگاه داده را از phpMyAdmin خروجی بگیرید و storage/app/public را کپی کنید.

    امنیت

    فهرست توصیه‌شده پیش از راه‌اندازی واقعی

    عیب‌یابی

    ابتدا storage/logs/laravel.log را ببینید — آخرین خط‌ها مشکل را دقیق نام می‌برند. موقتاً APP_DEBUG=true خطا را روی صفحه نشان می‌دهد؛ بلافاصله به false برگردانید.

    نشانهعلت و راه‌حل
    نصب‌کننده می‌گوید پوشه‌ای قابل‌نوشتن نیستبه storage، bootstrap/cache و database دسترسی ۷۷۵ بدهید (cPanel File Manager ← Permissions).
    خطای ۵۰۰ در همهٔ صفحه‌ها.env / APP_KEY نیست یا اشتباه است، نسخهٔ PHP نادرست است یا storage قابل‌نوشتن نیست. لاگ را بخوانید.
    «No application encryption key»نصب‌کنندهٔ وب را اجرا کنید یا php artisan key:generate بزنید.
    تصویر کپچا دیده نمی‌شودافزونهٔ gd را در PHP فعال کنید.
    صفحه بدون استایل استpublic/build بارگذاری نشده یا APP_URL اشتباه است.
    همهٔ صفحه‌ها جز صفحهٔ اصلی ۴۰۴ می‌دهندفایل‌های .htaccess نیستند یا mod_rewrite خاموش است. بعضی مدیر فایل‌ها فایل‌های مخفی را نشان نمی‌دهند — «نمایش فایل‌های مخفی» را روشن کنید.
    بعد از به‌روزرسانی یک صفحه ۵۰۰ می‌دهدview‌های کامپایل‌شده را پاک کنید: فایل‌های storage/framework/views را حذف کنید.
    «Page expired» (۴۱۹)نشست منقضی شده یا کوکی‌ها بسته‌اند. صفحه را دوباره بارگذاری و تلاش کنید.
    فایل‌های بزرگ‌تر از چند مگابایت بارگذاری نمی‌شوندupload_max_filesize و post_max_size را در PHP بالا ببرید.
    مدیر رمزش را فراموش کردهphp artisan venus:reset-password 1234567890 را اجرا کنید، یا با مدیر دیگری وارد شوید و از صفحهٔ دبیر/مشاور «ساخت رمز جدید» را بزنید.
    پیامک نمی‌روددر پیامک اولیا درگاه فقط‌ثبت (log) انتخاب نشده باشد، رویداد روشن و کد الگو درست باشد؛ ارسال آزمایشی را بزنید و گزارش را ببینید. اگر وضعیت «ردشده (بخش پنهان)» است، بخش برای اولیا بسته است.
    می‌خواهم دوباره نصب کنمstorage/installed.lock، .env و database/database.sqlite را حذف کنید (یا پایگاه MySQL را خالی کنید) و /install.php را دوباره باز کنید.
    تاریخ‌ها چند ساعت اختلاف دارندAPP_TIMEZONE را در .env تنظیم کنید.

    به‌روزرسانی

    1. از .env، پایگاه داده و storage/app/public پشتیبان بگیرید.
    2. فایل‌های جدید را روی قدیمی‌ها بارگذاری کنید، به‌جز .env، database/*.sqlite و storage/.
    3. php artisan migrate --force و php artisan view:clear را اجرا کنید (روی هاست بدون ترمینال، مهاجرت‌ها را نصب‌کننده یا یادداشت انتشار توضیح می‌دهد).

    اعتبارات و مجوزها

    مؤلفهمجوز
    Laravel FrameworkMIT
    Tailwind CSSMIT
    Alpine.jsMIT
    Chart.jsMIT
    morilog/jalaliMIT
    فونت ایران‌یکان‌ایکسفونت شخص ثالث — یادداشت بخش فونت را ببینید

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

    تاریخچهٔ تغییرات

    نسخهٔ ۱٫۰٫۰

    نسخهٔ ۱٫۱٫۰

    پشتیبانی

    پیش از تماس با پشتیبانی بخش عیب‌یابی را بخوانید و آخرین خط‌های storage/logs/laravel.log، نسخهٔ PHP و توضیح (یا تصویر) مشکل را همراه بفرستید. از انتخاب ونوس سپاسگزاریم.