العودة إلى المشاريع

بناء Schoolify 2.0

تطبيق للطلاب يجمع كل واجب في تقويم واحد ويتتبع درجاتك. كانت النسخة الأولى لوحة تحكم على الويب. أما النسخة الثانية فهي قاعدة شيفرة واحدة للويب وتطبيق سطح مكتب وتطبيق هاتف.

الدور
بمفردي، من التصميم إلى النشر
التقنيات المستخدمة
TypeScript, Next.js, Tauri, Expo, Supabase, Turborepo
الحالة
قيد التطوير، مرحلة التأسيس
توجه تصميم Wayfinder: بطاقة الحصة التالية بلون كحلي تُظهر القاعة AQ 4110 بلون أصفر إشاري

الهدف

يحتفظ الطلاب بأسبوعهم في أربعة أماكن: نظام التعلم الخاص بالمدرسة، وتقويم، وجدول بيانات للدرجات، ورؤوسهم. يجمع Schoolify كل ذلك في تطبيق واحد مفتوح على كل جهاز يستخدمونه، ويجب أن يكون شيئا يثق به الطالب على بياناته المدرسية.

شكل النظام

إنه مستودع Turborepo واحد. التطبيقات رقيقة، والمنطق الحقيقي يعيش في حزم مشتركة، بحيث يصل أي إصلاح إلى كل منصة في آن واحد.

تشترك تطبيقات الويب وسطح المكتب والجوال في مجموعة حزم واحدة، تتواصل مع Supabase الويبNext.js 16 سطح المكتبTauri 2، يغلّف تطبيق الويب الجوالExpo، لنظامي iOS وAndroid الحزم المشتركةcore, sync, api, tokens SupabasePostgres، أمان على مستوى الصف
  • تحتفظ core بالقواعد، مثل حسابات الدرجات ومعالجة الوقت، دون أي شيفرة خاصة بمنصة معينة فيها.
  • تحتوي sync على مُكيِّف لكل مدرسة ونظام تعلم، بحيث لا تمس إضافة مدرسة جديدة التطبيقات.
  • tokens هو نظام التصميم، مشترك بين الويب وتطبيق الهاتف بحيث يبدوان كمنتج واحد.
  • قاعدة البيانات موجودة في كندا، والأمان على مستوى الصف مفعَّل منذ أول عملية ترحيل. وكل استعلام مقيَّد بالطالب الذي أجراه.

الاتصال بالمدرسة بأمان

الطريقة السهلة لقراءة مقررات الطالب هي طلب كلمة مرور مدرسته أو رمز وصول. لا يفعل Schoolify أيا من ذلك. فهو يقرأ خلاصة التقويم التي تنشرها المدرسة بالفعل لكل طالب، ويضيف تسجيل دخول رسمي مع كل مدرسة بمجرد أن تمنح تلك المدرسة الوصول. ولا يُشحن أبدا في إصدارات المتاجر أي طلب لتسجيل دخول مدرسي داخل التطبيق.

خلل المنطقة الزمنية الذي لم يكن خطأنا

انتقلت كولومبيا البريطانية إلى التوقيت الصيفي الدائم في 8 مارس 2026. وتطبيق للطلاب يعيش على الأوقات، فتحققت مما يعتقده كل جزء من المجموعة التقنية. ومن أصل 9 بيئات تشغيل قِستها، جاءت 8 منها ببيانات مناطق زمنية أقدم من أن تعرف بالتغيير. وكانت قاعدة البيانات الأسوأ، إذ ظلت على قواعد 2025.

الحل هو عدم الوثوق بالمنصة أبدا في هذا الشأن. يحمل التطبيق قاعدته الخاصة لفانكوفر ويتحقق منها عند بدء التشغيل، ولا يُطلب من قاعدة البيانات أبدا تحويل وقت فانكوفر المحلي. فالحصة في 10:30 تبقى في 10:30.

الخصوصية كميزة

  • يُحفظ تاريخ الميلاد في مخطط خاص، بمعزل عن بقية الملف الشخصي.
  • يمر التسجيل الأولي عبر دالة خادم واحدة، ولا يُسمح بأي كتابة أخرى قبل تشغيلها. ولا يمكن للتسجيل عبر Google أو Apple تجاوز فحص العمر.
  • يمكن للطلاب حذف حسابهم بأنفسهم، مع فترة سماح مدتها 7 أيام يلغيها تسجيل الدخول مجددا، وتصدير بياناتهم عبر رابط تنتهي صلاحيته بعد 7 أيام.
  • لا تُباع بيانات المستخدم أبدا.

تصميم Wayfinder

المظهر مستوحى من لافتات الحرم الجامعي. يحمل اللونان الرمادي الهادئ والكحلي الداكن التخطيط، بينما يُحفظ الأصفر الإشاري للشيء الوحيد الذي يحتاج انتباهك الآن. وتُكتب رموز القاعات مثل اللوحات خارج قاعة المحاضرات، بخط Atkinson Hyperlegible، وهو خط مصمم للقراءة بلمحة سريعة بين الحصص.

لوحة تحكم Schoolify الأولى، تعرض مسار المعدل التراكمي وسلسلة أيام الدراسة وأولويات الدراسة
النسخة الأولى، لوحة تحكم على الويب. أما النسخة الثانية فتحافظ على الأفكار وتعيد بناء كل ما تحتها.

ما تعلمته من ذلك

  • تحقق من الافتراضات التي لا يتحقق منها أحد. بدت بيانات المناطق الزمنية مشكلة محلولة حتى قِستها بنفسي.
  • تحديد ما لن يفعله التطبيق أبدا، مثل طلب كلمة مرور مدرسية، جعل بقية التصميم أسهل.
  • الحزم المشتركة أولا، والتطبيقات ثانيا. فالتطبيقات الثلاثة في معظمها مجرد وصل.