دیوان؛ روز آشنایی با دانشگاه
دیوان تجربهای دوزبانه از شعر فارسی برای غرفهٔ روز آشنایی با دانشگاه انجمن ایرانیان است. بازدیدکننده حافظ یا مولوی را انتخاب میکند، نیت میکند و یک بیت بازبینیشده همراه با ترجمهٔ انگلیسی، انتساب منبع و خوانش اختیاری میگیرد. معماری آفلاین و حافظ حریم خصوصی، بدون کوکی، ردیاب، سرور پشتیبان یا ورودی بازدیدکننده، روی شبکهٔ ناپایدار محل رویداد قابلاتکاست و هیچ دادهای از کاربران جمع نمیکند.
۰۱ / نمای کلی
- ۰۱Vite
- ۰۲React 19
- ۰۳TypeScript سختگیرانه
- ۰۴سرویسورکر دستنویس
- ۰۵Web Crypto (مجموعهٔ با ترتیب تصادفی (shuffle bag))
- ۰۶Vitest (واحد / مؤلفه / دسترسپذیری / آفلاین)
- ۰۷Playwright (آزمون سرتاسری Chromium)
- ۰۸pnpm 10.33 · Node 22.16
مسئله
غرفهٔ عمومی روز آشنایی با دانشگاه به تجربهٔ فرهنگی سریع و دلنشینی نیاز دارد که روی Wi-Fi ناپایدار کار کند، حریم خصوصی را کامل رعایت کند و شعر فارسی را با اصالت فرهنگی و دقت پژوهشی ارائه دهد؛ بدون شعر ساختگی، خوشنویسی تبدیلشده به تصویر یا گردآوری داده.
نمای کلی راهکار
- دقیقاً 60 بیت حافظ + 60 بیت مولوی، در مجموع 120 بیت، گزینش شد؛ هر بیت به نسخهای تغییرناپذیر با منشأ مستند و قابلراستیآزمایی پیوند دارد.
- کل برنامه با سرویسورکر دستنویس، آفلاینمحور شد تا غرفه بدون شبکه کار کند.
- مجموعهٔ با ترتیب تصادفی (shuffle bag) Web Crypto بیتها را روی دستگاه انتخاب میکند؛ هیچ سروری ثبت نمیکند بازدیدکنندگان چه بیتی میگیرند.
- نستعلیق بهصورت متن زنده و طراحی مستقل هر شاعر، اصالت فرهنگی را بهجای تصاویر تخت حفظ میکند.
- دسترسپذیری از آغاز: نشانهگذاری دوزبانه و RTL، جداسازی دوسویه، ناحیههای زنده، رنگهای اجباری و پشتیبانی کاهش حرکت.
۰۲ / شواهد
شواهد و راستیآزمایی
- گردآوری داده صفر؛ بدون کوکی، ردیاب یا سرور، و فقط شناسههای عمومی شعر در sessionStorage.
- پس از نخستین بارگیری، به کمک سرویسورکر با بررسی یکپارچگی کاملاً آفلاین اجرا میشود.
- کامپایلر عملیاتی پیش از استقرار دادهٔ مصنوعی آزمون را رد میکند؛ فقط پیکرهٔ بازبینیشده منتشر میشود.
- آزمونهای واحد، مؤلفه، دسترسپذیری، آفلاین، اشتراکگذاری، کارایی و امنیت با Vitest، و آزمون سرتاسری Chromium با Playwright انجام شدهاند.
۰۳ / روشها
پیادهسازی
پشته فناوری
- Vite
- React 19
- TypeScript سختگیرانه
- سرویسورکر دستنویس
- Web Crypto (مجموعهٔ با ترتیب تصادفی (shuffle bag))
- Vitest (واحد / مؤلفه / دسترسپذیری / آفلاین)
- Playwright (آزمون سرتاسری Chromium)
- pnpm 10.33 · Node 22.16
- پیکرهٔ دوزبانهٔ بازبینیشده: دقیقاً 60 حافظ + 60 مولوی = 120 بیت، هر یک با نسخهٔ تغییرناپذیر و منشأ مستند.
- انتخاب بیت با مجموعهٔ با ترتیب تصادفی (shuffle bag) Web Crypto که روی دستگاه محاسبه میشود، بدون دخالت سرور.
- سرویسورکر دستنویس با بررسی یکپارچگی، کارکرد آفلاین را روی شبکهٔ ناپایدار محل تضمین میکند.
- طراحی فرهنگی مستقل برای هر شاعر با تایپوگرافی زندهٔ نستعلیق؛ خط واقعی فارسی، بدون تصویر پیکسلی.
- نشانهگذاری دوزبانه با جهت متن، جداسازی دوسویه، ناحیههای زنده، رنگهای اجباری و کاهش حرکت.
امنیت
- حریم خصوصی در ساختار: بدون کوکی، شناسه، ردیاب یا ورودی بازدیدکننده؛ هیچ دادهای ارسال نمیشود.
- کلاینت کاملاً ایستا؛ بدون سرور پشتیبان، پایگاه داده یا زیرساخت تحلیل رفتار.
- فقط شناسههای عمومی انتشار و شعر در sessionStorage؛ ترجیح حرکت فقط محلی ذخیره میشود.
- کامپایلر عملیاتی دادهٔ مصنوعی و آزمون را پیش از استقرار رد میکند.
- انتساب به منبع و بررسی حقوق: MIT برای کد؛ شعر و ترجمه مجوز مستقل خود، مانند CC BY-SA، را حفظ میکنند.
- کانتینر ایستا پشت تونل خروجی تحویل شده است؛ بدون سطح ورودی شبکه.