دقیقاً چه کاری باید انجام شود؟
عنوان پروژه: توسعه PWA تمرین و آزمونهای شناختی کودکان با قابلیت Offline
شرح پروژه:
به دنبال یک برنامهنویس/تیم حرفهای برای توسعه یک پلتفرم تحت وب جهت اجرای تمرینها و آزمونهای شناختی کودکان هستیم.
پروژه باید به صورت PWA (Progressive Web App) توسعه داده شود و قابلیت اجرای کامل تمرینها در حالت Offline را داشته باشد.
تمرینها و آزمونهای فاز اول:
Continuous Performance Test (CPT) 2.
Wisconsin Card Sorting Test (WCST) 3.
Working Memory Training 4.
Non-Verbal Intelligence Assessment 5.
N-Back 6.
Simple Stroop Test 7.
Selective Attention 8.
Divided Attention
منطق، مراحل، زمانبندی و نحوه امتیازدهی هر تمرین توسط کارفرما/متخصص مربوطه مشخص خواهد شد و برنامهنویس مسئول پیادهسازی دقیق آنها در نرمافزار است.
قابلیتهای سمت کاربر
- Login و Authentication امن
- مشاهده تمرینهای مجاز هر کاربر
- اجرای تمرینها روی موبایل، تبلت و دسکتاپ
- قابلیت Add to Home Screen به عنوان PWA
- اجرای تمرینها بدون اینترنت
- ذخیره نتایج در حالت Offline
- ارسال خودکار نتایج به سرور پس از اتصال مجدد اینترنت
- جلوگیری از ثبت Duplicate هنگام Synchronization
- حفظ اطلاعات در صورت Refresh، بسته شدن مرورگر یا قطع اینترنت
- امکان اجرای چندین Session در حالت Offline و Sync شدن همه آنها پس از اتصال
Offline / Synchronization
این بخش یکی از مهمترین قسمتهای پروژه است.
سیستم باید Offline-First طراحی شود.
در حالت Offline، اطلاعات Session و نتایج روی دستگاه ذخیره شده و در زمان اتصال اینترنت وارد صف Synchronization شوند.
پس از برقراری اینترنت:
Local Data → Sync Queue → API → Central Database
سیستم باید در برابر قطع اینترنت هنگام ارسال اطلاعات، Refresh صفحه، بسته شدن PWA و ارسال مجدد اطلاعات مقاوم باشد.
برای Offline Storage میتوان از IndexedDB یا راهکار استاندارد مناسب استفاده کرد.
پنل مدیریت (Admin Panel)
یک پنل مدیریتی برای موارد زیر نیاز است:
- ایجاد، ویرایش و فعال/غیرفعال کردن کاربران
- تعیین تمرینهای قابل دسترسی برای هر کاربر
- مشاهده لیست کاربران
- مشاهده سابقه فعالیت هر کاربر
- مشاهده اینکه کاربر چه تمرینی را انجام داده
- تاریخ و ساعت انجام تمرین
- مدت زمان تمرین
- امتیاز و نتایج هر Session
- مشاهده وضعیت Synchronization اطلاعات
ساختار سیستم باید به شکلی باشد که در آینده بتوان تمرینهای جدید را بدون بازنویسی اساسی سیستم اضافه کرد.
Backend / API
APIهای لازم برای Authentication، Users، Exercises، Sessions، Results، Reports و Synchronization باید پیادهسازی شوند.
ساختار Backend و Database باید قابل توسعه و مستند باشد.
امنیت
با توجه به اینکه اطلاعات مربوط به کودکان و نتایج آزمونها ذخیره میشود، امنیت اهمیت بالایی دارد:
- Authentication و Authorization
- Role Management
- عدم دسترسی کاربران به اطلاعات یکدیگر
- اعتبارسنجی ورودیها
- API Security
- HTTPS در Production
- ثبت Log فعالیتهای مهم مدیریتی
تکنولوژی
انتخاب Stack فنی با پیشنهاد برنامهنویس قابل بررسی است، اما تجربه عملی در PWA، Service Worker، IndexedDB، Offline-First و Data Synchronization الزامی/بسیار مهم است.
خروجی مورد انتظار
- سورس کامل Frontend و Backend
- Database و Migration
- پنل Admin
- PWA قابل نصب
- Offline کامل
- سیستم Synchronization
- Authentication
- APIهای موردنیاز
- مستندات نصب و Deploy
- کد تمیز و قابل توسعه
لطفاً در پیشنهاد خود تکنولوژی پیشنهادی، نمونه پروژه مشابه، تجربه PWA و Offline Sync، زمان انجام و مبلغ پیشنهادی را اعلام کنید.