AzadWeek (@AzadWeekBot) is a full-featured academic calendar platform engineered for students and faculty of Islamic Azad University. It pairs a high-performance Telegram Bot backend (AzadWeekBot/) with a native Telegram Mini App & Progressive Web App (AzadWeek/) to monitor Odd (فرد) and Even (زوج) semester weeks, midterms, finals, official holidays, and personal class schedules on the Persian (Jalali) calendar.
| Resource | Link |
|---|---|
| t.me/AzadWeekBot | |
| arianpashae.com | |
| t.me/ArianPashaeChannel | |
| t.me/ComputerAzadKsh | |
| t.me/ArianPashae |
Live Odd/Even Week Dashboard: Real-time indicator for the active semester week (
هفته فرد/هفته زوج), current week index, remaining weeks, and an animated semester progress bar.17-Week Interactive Semester Timeline & Date Converter: Browse all academic weeks with badges for add/drop periods, midterms, finals, and official holidays, or query any Jalali date (
1405/MM/DD).Weekly University Class Planner: Organize university courses by Odd, Even, or Every week with day, time slot, instructor name, room, and campus building — synced locally and across your Telegram profile.
Story & Status Card Visual Generator: Generates high-resolution
1080×1920visual status cards and semester wrapped summaries with one-tap Share to Telegram Story, Send to Bot Chat, and Direct Download.Universal
.icsCalendar Export: Export all Odd/Even term weeks into Google Calendar, Apple Calendar, and Outlook, or request the file directly in the Telegram chat.Personalized Weekly Reminders: Configure automated notifications for Friday or Saturday at your preferred hour (
08:00,14:00,20:00,22:00) with instant test delivery.Telegram WebApp 8.0+ Integration: Automatic mobile fullscreen mode, tactile haptic feedback, home-screen shortcut installation, biometric lock support, and automatic dark/light theme matching.
Private, Group & Inline Queries: Check the current week, next week, or any custom Shamsi date, with full Inline Mode (
@AzadWeekBot) enabled in any conversation.Multi-Channel Membership Gate: Enforces subscription to mandatory channels (
REQUIRED_CHANNELS) with an in-memory TTL cache to maximize response speed.Smart Group Mode with Auto-Delete: Answers academic week inquiries in university student groups and automatically removes temporary responses after a configurable delay (
GROUP_STATUS_AUTODELETE_SECONDS).Unified Background Cron Worker (
cron_sender.php):- Saturday 07:00 Broadcast: Automatically sends the new week's Odd/Even status to all subscribers every Saturday morning.
- Custom User Reminders: Dispatches scheduled notifications matching each user's customized day and hour.
- Rate-Limited Broadcast Queue: Delivers administrative announcements (text, media, audio, or forwarded posts) in safe batches (
40 users/minute). - Group Message Purge: Automatically cleans up expired temporary responses in groups.
Admin Control Dashboard: Real-time user statistics, growth trends, queued broadcasts, and one-click global recall (deletion) of the latest broadcast.
AzadWeekBot/
├── AzadWeek/ # Telegram Mini App (WebApp) & PWA
│ ├── index.html # Mini App UI and responsive styles
│ ├── aw_native.js # WebApp controller, planner, canvas & cloud sync
│ ├── connect.php # Mini App REST API (sync, reminders, cards, .ics)
│ ├── card.php # Server-side GD WebP status card generator
│ ├── manifest.webmanifest # PWA Web App Manifest
│ ├── sw.js # Offline Service Worker
│ └── assets/ # Icons, fonts (Vazirmatn, Aviny), templates & SDK
│
├── AzadWeekBot/ # Telegram Bot Backend Core
│ ├── bot.php # Main Telegram Webhook entry point
│ ├── config.php # Central configuration (Token, Channels, Admins, Weeks)
│ ├── cron_sender.php # Unified Cron worker (Broadcasts, Reminders, Auto-Delete)
│ ├── jdf.php # Persian (Jalali) calendar conversion library
│ ├── lib/
│ │ ├── api.php # Telegram Bot API client & Custom Emoji renderer
│ │ ├── database.php # Atomic JSON storage engine
│ │ └── utils.php # Academic week calculation & string utilities
│ ├── assets/ # WebP visual banners for bot commands
│ └── storage_backups/ # Protected directory for locks, caches & pending deletes
│
├── docs/icons/ # Bespoke Premium SVG Vector Icons & Hero Banner
├── LICENSE # MIT License
└── README.md # Bilingual Documentation (EN / FA)
- PHP 8.0 or higher with
curl,mbstring,json, andgd(with WebP & FreeType support) enabled. - A valid SSL-enabled domain (HTTPS) required by Telegram for Webhooks and Mini Apps.
- A Telegram Bot Token obtained from @BotFather.
Clone the repository and upload AzadWeekBot/ and AzadWeek/ to your web server:
git clone https://github.com/ArianPashae/AzadWeekBot.git
AzadWeek/connect.phpautomatically resolvesAzadWeekBot/config.phpwhen placed in adjacent folders (../AzadWeekBot) or via theAZAD_WEEK_BOT_ROOTenvironment variable.
Open AzadWeekBot/config.php and fill in your environment settings:
define('BOT_TOKEN', 'YOUR_BOT_TOKEN_HERE');
define('BOT_USERNAME', 'AzadWeekBot');
define('BASE_URL', 'https://example.com/AzadWeekBot/');
define('MINIAPP_URL', 'https://example.com/AzadWeek/?action=app&v=17');
define('ADMIN_IDS', ['YOUR_ADMIN_TELEGRAM_ID']);
define('CRON_SECRET_KEY', 'YOUR_CRON_SECRET_KEY');- Add your channel usernames to
REQUIRED_CHANNELS(ensure the bot is an administrator in each). - Update the
$weeks_configarray at the bottom with the Jalali start and end dates (YYYY/MM/DD) of your academic semester.
Open this URL in your web browser after replacing <YOUR_BOT_TOKEN> and your server domain:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://example.com/AzadWeekBot/bot.php
On the first incoming message, the bot automatically registers commands and configures the Open App menu button.
Set up a single Cron Job running every 1 minute (* * * * *) via cPanel, DirectAdmin, crontab, or cron-job.org:
https://example.com/AzadWeekBot/cron_sender.php?secret=YOUR_CRON_SECRET_KEY
آزادویک (AzadWeek) یک سامانهٔ جامع شامل ربات هوشمند تلگرام و مینیاپ اختصاصی (Telegram Mini App / PWA) برای دانشجویان و اساتید دانشگاه آزاد اسلامی است. با این سامانه در هر لحظه وضعیت هفتهٔ زوج یا فرد، شمارهٔ هفتهٔ جاری، تقویم ۱۷ هفتهای ترم، روزشمار امتحانات میانترم و پایانترم، تعطیلات رسمی و برنامهٔ هفتگی کلاسها با سرعتی بالا در دسترس شماست.
| عنوان | لینک دسترسی |
|---|---|
| t.me/AzadWeekBot | |
| arianpashae.com | |
| t.me/ArianPashaeChannel | |
| t.me/ComputerAzadKsh | |
| t.me/ArianPashae |
داشبورد زندهٔ وضعیت هفته: نمایش لحظهای وضعیت هفتهٔ جاری (فرد یا زوج)، شمارهٔ هفتهٔ ترم، تعداد هفتههای باقیمانده، شمارش معکوس زنده تا پایان هفته و نوار پیشرفت ترم.
تقویم تعاملی ۱۷ هفتهای و استعلام تاریخ: مشاهدهٔ کامل هفتههای ترم با برچسب تعطیلات رسمی، حذف و اضافه، میانترم و امتحانات پایانترم به همراه جستوجوی تاریخ شمسی دلخواه.
برنامهریز هوشمند کلاسهای دانشگاهی: ثبت دروس بر اساس «هردو هفته»، «فقط هفتههای فرد» و «فقط هفتههای زوج» همراه با نام استاد، ساعت، شمارهٔ کلاس و دانشکده با ذخیرهسازی ابری روی اکانت تلگرام.
مولد کارت استوری و کارنامهٔ ترم (Story & Wrapped Card): ساخت تصاویر گرافیکی باکیفیت با فونت وزیرمتن و آوینی، با امکان اشتراکگذاری مستقیم در استوری تلگرام، ارسال آنی تصویر به چت ربات و دانلود مستقیم روی دستگاه.
خروجی استاندارد تقویم (
.ics): دانلود مستقیم یا ارسال فایل تقویم کل ترم به چت تلگرام برای افزودن یکجای هفتههای زوج و فرد به Google Calendar، Apple Calendar و Outlook.
سیستم یادآور هفتگی اختصاصی: تنظیم دریافت اعلان خودکار در تلگرام برای روز دلخواه (جمعه یا شنبه) و ساعت انتخابی (
08:00، 14:00، 20:00 یا 22:00) به همراه دکمهٔ تست آنی یادآور از داخل مینیاپ.
تجربهٔ بومی با Telegram WebApp: حالت تمامصفحه (Fullscreen) خودکار در موبایل، بازخورد لرزشی (Haptic Feedback)، افزودن میانبر به صفحهٔ اصلی گوشی (Home Screen)، قفل بیومتریک و پشتیبانی از تم تیره و روشن.
پاسخگویی در چت خصوصی، گروه و حالت درونخطی (Inline): استعلام وضعیت هفتهٔ فعلی، هفتهٔ آینده، تقویم کامل ترم و تبدیل تاریخ شمسی، همراه با امکان استفادهٔ اینلاین با تایپ
@AzadWeekBot در تمامی چتها.
قفل عضویت اجباری چندکاناله: بررسی عضویت کاربران در کانالهای تعیینشده (
REQUIRED_CHANNELS) با سیستم کش هوشمند برای پاسخگویی بدون تأخیر.
مدیریت هوشمند در گروهها و حذف خودکار: پاسخ به پرسشهای وضعیت هفته در گروهها و حذف خودکار پیامهای موقت پس از ۲۰ ثانیه جهت حفظ نظم گروه.
موتور کرونجاب یکپارچه (
cron_sender.php):
اعلان خودکار شنبهها ساعت ۰۷:۰۰ صبح: ارسال وضعیت هفتهٔ جدید به تمام کاربران در ابتدای هر هفته.
ارسال یادآورهای اختصاصی مینیاپ: ارسال پیام یادآور هفتگی بر اساس زمانبندی انتخابی هر دانشجو.
صف ارسال همگانی ایمن: ارسال دستهای پیامها و فورواردهای همگانی (۴۰ کاربر در هر دقیقه) بدون محدودیت تلگرام.
پاکسازی پیامهای گروه: حذف خودکار پیامهای منقضیشدهٔ ربات در گروههای دانشجویی.
پنل مدیریت پیشرفتهٔ ادمین: مشاهدهٔ آمار دقیق اعضا، رشد روزانه و هفتگی، صف ارسال همگانی و امکان حذف یککلیکی آخرین پیام همگانی از چت تمامی کاربران.
PHP نسخهٔ ۸.۰ یا بالاتر به همراه افزونههای
curl، mbstring، json و gd (با پشتیبانی از WebP و FreeType).
دامنه و هاست مجهز به گواهی SSL (پروتکل HTTPS) جهت ثبت وبهوک و اجرای مینیاپ تلگرام.
توکن ربات تلگرام دریافتشده از @BotFather.
مخزن پروژه را کلون یا دانلود کنید:
git clone https://github.com/ArianPashae/AzadWeekBot.gitپوشههای AzadWeekBot و AzadWeek را روی هاست خود آپلود کنید. فایل AzadWeek/connect.php بهصورت خودکار پوشهٔ AzadWeekBot را در کنار مینیاپ یا از طریق متغیر محیطی AZAD_WEEK_BOT_ROOT شناسایی میکند.
فایل AzadWeekBot/config.php را باز کرده و مقادیر نمونه را با اطلاعات اختصاصی خود جایگزین کنید:
define('BOT_TOKEN', 'YOUR_BOT_TOKEN_HERE');
define('BOT_USERNAME', 'AzadWeekBot');
define('BASE_URL', 'https://example.com/AzadWeekBot/');
define('MINIAPP_URL', 'https://example.com/AzadWeek/?action=app&v=17');
define('ADMIN_IDS', ['YOUR_ADMIN_TELEGRAM_ID']);
define('CRON_SECRET_KEY', 'YOUR_CRON_SECRET_KEY');
در آرایهٔ
REQUIRED_CHANNELS آیدی و لینک کانالهای موردنظر برای قفل عضویت اجباری را قرار دهید (ربات باید در این کانالها ادمین باشد).
در آرایهٔ
$weeks_config در انتهای فایل config.php، تاریخ شروع و پایان هفتههای ترم تحصیلی جدید را به شمسی وارد کنید.
آدرس زیر را پس از جایگزینی توکن ربات و دامنهٔ خود در مرورگر باز کنید تا وبهوک ثبت شود:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://example.com/AzadWeekBot/bot.php
پس از دریافت اولین پیام، ربات بهصورت خودکار دستورات منو و دکمهٔ Open App را روی آدرس مینیاپ شما تنظیم میکند.
برای فعالسازی اعلان شنبهها، یادآورهای هفتگی، صف ارسال همگانی و پاکسازی پیامهای گروه، یک کرونجاب با بازهٔ زمانی هر ۱ دقیقه (* * * * *) روی آدرس زیر ایجاد کنید:
https://example.com/AzadWeekBot/cron_sender.php?secret=YOUR_CRON_SECRET_KEY
این پروژه توسط آرین پاشایی (Arian Pashae) طراحی و توسعه یافته و تحت مجوز متنباز MIT License منتشر شده است.
وبسایت رسمی: arianpashae.com
کانال تلگرام آرین پاشایی: @ArianPashaeChannel
کانال مهندسی کامپیوتر: @ComputerAzadKsh
ربات تلگرام آزادویک: @AzadWeekBot