عن المشروع

WattRoom منصة تمارين ركوب الدراجات الداخلية التعاونية، مفتوحة المصدر وقابلة للاستضافة الذاتية، صاغها Natron وأصدرتها تحت رخصة AGPL-3.0. premisse المشروع هو أن التدريب داخل المنزل ممل عندما يتم بشكل فردي، وبدلاً من تقديم عالم افتراضي، يعوّل على الحضور المشترك: ينضم الراكبون إلى غرفة مع شركائهم في التدريب، ويؤدون نفس التمرين المقيّد حسب عتبة FTP الخاصة بكل راكب، ويمكنهم التحدث والرؤية والمشاركة في الموسيقى أثناء الركوب. ما تغطيه المنصة - الغرف: تعرض القدرة الحيّة (الوات)، ومعدل ضربات القلب، والخطوة (الكادانس) على لوحة تحكم واحدة، مع تيار الغرفة وخط زمني للفترات، والصوت والكاميرا بنقرة واحدة. - تمارين منظمة: مكتبة مختارة بالإضافة إلى محرر، مع تحكم دقيق في وضع ERG عبر أجهزة الدراجة الذكية التي تدعم BLE FTMS. الأهداف مقيّدة بناءً على عتبة FTP لكل راكب، مما يسمح للطاقم بأداء جلسة واحدة معاً بغض النظر عن أرقامهم. - أوضاع اللعبة: سبعة أوضاع، بينها صفارات السباق، والإقصاءات، وWatt Golf، وBackyard Ramp. - جناح موسيقي مشترك: قائمة تشغيل YouTube متزامنة لكل غرفة. - رحلات تُحسب: تُحفظ الجلسات، يمكن تصديرها بصيغة .fit، ورفعها على Strava، وكسب XP والانتصارات. - الخصوصية: المقاييس محدودة بالغرفة، والصوت/الفيديو لا يتم تسجيله أبداً؛ الغرف خاصة افتراضياً. الأجهزة والمتصفحات جهاز الدراجة الذكي الذي يدعم BLE FTMS هو الجهاز المستهدف، ويتواصل معه مباشرة من المتصفح عبر Web Bluetooth. يجعل هذا مسار التدريب مقتصراً على Chromium حالياً: Chrome وEdge على سطح المكتب والأندرويد. الأجهزة Wahoo السابقة لـ FTMS مدرجة كعنصر في القائمة المفتوحة. لا يوجد مسار تدريب على iOS لأن Safari لا يطبق Web Bluetooth؛ يسجل المشروع هذا作為قراراً مدروساً وليس إغفالاً. تزال الغرفة نفسها تفتح في أي متصفح، مع إبعاد القدرات التي تحتاج جهاز التدريب بعيداً بدلاً من صفحة منفصلة للقراءة فقط. للتطوير لا يلزم جهاز تدرب: يوفر المشروع محاكياً للجهاز وغرفة وهمية كاملة عند /dev/room. المكدس التقني والنشر خادم Go مع مركز غرف في الذاكرة (goroutine واحدة لكل غرفة)، وتطبيق صفحة واحدة SvelteKit، وPostgreSQL، وLiveKit مُستضاف ذاتياً، مُعبَّأ كBinary واحد مع واجهة أمامية مدمجة، ومُنتشر ك.compose stack واحد على VM واحدة. يتطلب التطوير Go 1.26+ وNode 22+ وpnpm وDocker؛ استعارات make تبدأ Postgres وLiveKit في حاويات، وتشغيل الخادم مع إعادة تحميل ساخنة على المنفذ 8080، وإطلاق خادم Vite dev على المنفذ 5174 الذي يعمل proxies لـ /api و/ws. التوثيق والإصدارات وثائق الهندسة المعمارية والمواصفات تجاور وثيقة تأسيسية تسجل قرارات المنتج والهندسة المعمارية، ووثيقة بحث، وADRs مسماة رقمياً. تُقطع الإصدارات عدة مرات في اليوم: لا يضيف الإصدار سوى تغيير صغير مُدمج مسبقاً، وإلغاء الإصدار يعني إعادة توجيه الصورة العاملة إلى العلامة السابقة دون لمس قاعدة البيانات.