این پروژه یک ابزار دانشگاهی است که با استفاده از GitHub Actions و GitHub Pages کار میکند. عملکرد اصلی آن به این صورت است که شما آدرس یک وبسایت خارجی را وارد میکنید، سپس پروژه آن سایت را دانلود کرده و روی GitHub Pages منتشر میکند تا بتوانید به صورت آنلاین با آن کار کنید.
هدف اصلی این بود که ابزاری بسازیم که استاد بتواند بدون نیاز به دانلود، نصب یا اجرای دستی، نتیجه کار را مشاهده کند - فقط یک لینک آنلاین که کار میکند.
در ابتدا، درخواست این بود که "سایتهای خارجی را داخل GitHub باز کنیم". این درخواست کمی مبهم بود و چندین راهحل بررسی شد:
- Flask به عنوان پروکسی → مشکلات CORS
- Node.js با Express → همان مشکلات
- Nginx → GitHub Actions قابلیت اجرای سرور زنده ندارد
همه این راهحلها با مشکلات اساسی مواجه بودند:
- ❌ JavaScriptهای سایت به درستی کار نمیکنند
- ❌ مشکلات امنیتی (CORS, CSP)
- ❌ عدم امکان نگهداری سرور زنده در GitHub Actions
پس از بررسی دقیقتر، متوجه شدیم که هدف اصلی این است:
- ✅ دانلود کامل سایت
- ✅ انتشار روی GitHub Pages
- ✅ دسترسی آنلاین از طریق لینک
تصمیم گرفتیم از این ابزارها استفاده کنیم:
- GitHub Actions: برای اتوماسیون فرآیند
- wget: برای دانلود کامل سایت
- GitHub Pages: برای نمایش آنلاین
- workflow_dispatch: برای ورود آدرس سایت بدون نیاز به ویرایش کد