پروژه تقویم خورشیدی taghvim.in یک سیستم تقویم تحت وب است که با هدف نمایش دقیق رویدادها و مناسبتهای مختلف طراحی شده است. این سیستم فراتر از یک تقویم ساده عمل میکند و به کاربران اجازه میدهد تا به صورت همزمان تاریخهای شمسی، میلادی و قمری را در یک رابط کاربری یکپارچه و مدرن مشاهده کنند. در این پروژه تمرکز ویژهای بر روی رابط کاربری روان (UX) و حل چالشهای محاسباتی تقویمهای مختلف شده است.
ویژگیها و امکانات کلیدی
-
نمایش چندگانه تاریخها: گرید ماهانه با قابلیت نمایش همزمان عدد روزهای شمسی، میلادی و قمری به همراه نام ماهها.
-
مدیریت پیشرفته مناسبتها: پشتیبانی از رویدادهای مذهبی، جهانی و خورشیدی با قابلیت گروهبندی (Event Categories) و تشخیص خودکار روزهای تعطیل.
-
محاسبات هوشمند تقویم قمری: توسعه یک کلاس سرویس اختصاصی برای تطبیق دقیق تقویم قمری با افق ایران به جای اتکای صرف به افزونههای پیشفرض، تا بالاترین دقت در نمایش روزهای قمری و جابجایی آنها لحاظ شود.
-
مدیریت ماههای متغیر (الگوریتم سرریز): پیادهسازی منطق هوشمند برای مدیریت رویدادهایی که در روزهای ۳۰ یا ۳۱ ماه ثبت شدهاند، به طوری که در ماههای ۲۹ روزه (مثل اسفند سالهای عادی)، این رویدادها به صورت خودکار به آخرین روز ماه منتقل شده و هیچ مناسبتی از قلم نمیافتد.
-
رابط کاربری عمومی و اختصاصی: دارای یک پنل عمومی (Public Panel) کاملاً مینیمال، بدون سایدبار و هدر اضافی برای دسترسی سریع کاربران عمومی در صفحه اصلی.
-
تجربه کاربری پویا (UX): امکان کلیک روی هر روز برای مشاهده جزئیات رویدادها در پاپآپ (Modal)، نمایش تقویم ماهانه، لیست رویدادهای «امروز» و مناسبتهای «کل ماه» در سکشنهای مجزا با افکتهای لودینگ نرم و بدون رفرش صفحه.
تکنولوژیها و ابزارهای مورد استفاده:
-
فریمورک بکاند: لاراول ۱۲ (Laravel 12)
-
پنل کاربری و مدیریت: فیلامنت ۵ (Filament 5)
-
فناوریهای فرانتاند: Livewire و Alpine.js (برای تعاملات لایو و بدون نیاز به بارگذاری مجدد)
-
استایلدهی (CSS): Tailwind CSS نسخه ۴ (طراحی شخصیسازی شده با فایلهای CSS اختصاصی)
-
پکیجهای تاریخ و زمان: morilog/jalali برای مدیریت تقویم شمسی و افزونه Intl زبان PHP
-
معماری کُد: استفاده از معماری ماژولار، ایجاد Layout های اختصاصی، Component های مشترک (DRY) و استفاده از Render Hook ها برای بهینهسازی کدهای بخش کاربری