इस प्रोजेक्ट के बारे में

WattRoom एक ओपन-सोर्स, स्वयं-होस्ट करने योग्य सहयोगात्मक आंतरिक साइक्लिंग प्लेटफॉर्म है, जिसे Natron ने बनाया है और AGPL-3.0 के तहत रिलीज़ किया गया है। इसका कहना है कि अकेले इंडोर ट्रेनिंग बोरिंग होती है, और एक वर्चुअल दुनिया पेश करने के बजाय यह मौजूदगी पर ध्यान केंद्रित करता है: सवारी करने वाले अपने प्रशिक्षण साथियों के साथ एक कमरे में शामिल होते हैं, हर सवार की अपनी FTP के अनुसार स्केल्ड होने वाली समान वर्कआउट सवारी करते हैं, और सवारी के दौरान बात कर सकते हैं, एक-दूसरे को देख सकते हैं और संगीत शेयर कर सकते हैं। यह क्या कवर करता है - कमरे: लाइव वाट्स, हृदय गति और केडेंस एक ही डैशबोर्ड पर दिखाए जाते हैं, जिसमें कमरा फीड और इंटरवल टाइमलाइन होता है, और वॉइस व कैमरा एक टैप पर उपलब्ध होते हैं। - संरचित वर्कआउट: एक संपादित लाइब्रेरी और एडिटर के साथ, BLE FTMS स्मार्ट ट्रेनर्स पर सटीक ERG नियंत्रण। लक्ष्य हर सवार की FTP के अनुसार स्केल होते हैं, इसलिए कोई भी समूह चाहे जिन भी नंबरों का हो, एक ही सत्र एक साथ सवारी कर सकता है। - गेम मोड: सात प्रकार के, जिनमें स्प्रिंट क्लैक्सन, एलिमिनेशन, वाट गोल्फ और बैकयार्ड रैंप शामिल हैं। - साझा ज़ूकबॉक्स: प्रति कमरा एक सिंक YouTube साउंडट्रैक। - गिनने योग्य सवारी: सत्र सेव होते हैं, .fit के रूप में एक्सपोर्ट किए जा सकते हैं, Strava पर अपलोड किए जा सकते हैं, और XP व ट्रॉफी अर्जित होते हैं। - गोपनीयता: मेट्रिक्स कमरा-स्कोप्ड होते हैं और ऑडियो/वीडियो कभी रिकॉर्ड नहीं होता; कमरे डिफ़ॉल्ट रूप से निजी होते हैं। हार्डवेयर और ब्राउज़र BLE FTMS बोलने वाला एक स्मार्ट ट्रेनर लक्ष्य हार्डवेयर है, जिसे वेब ब्लूटूथ के माध्यम से सीधे ब्राउज़र से कहा जाता है। इसका मतलब है कि ट्रेनिंग पाथ आज केवल Chromium-मात्र है: डेस्कटॉप और Android पर Chrome और Edge। Pre-FTMS Wahoo यूनिट को एक खुले बैकलॉग आइटम के रूप में सूचीबद्ध किया गया है। iOS के लिए कोई ट्रेनिंग पाथ नहीं है, क्योंकि Safari Web Bluetooth लागू नहीं करता; प्रोजेक्ट इसे अवज्ञा नहीं बल्कि शोधित निर्णय के रूप में दस्तावेज़ करता है। कमरा खुद किसी भी ब्राउज़र में खोलता है, जिन सुविधाओं को ट्रेनर की आवश्यकता होती है उन्हें दर्र किया जाता है, न कि एक अलग read-only पेज के रूप में। विकास के लिए कोई ट्रेनर की आवश्यकता नहीं: एक सिमुलेटेड ट्रेनर और /dev/room पर एक पूर्ण मॉक कमरा प्रदान किया गया है। स्टैक और तैनाती एक Go सर्वर जिसमें इन-मेमोरी रूम हब है (प्रति कमरा एक गोरोआइटिन), एक SvelteKit सिंगल-पेज ऐप, PostgreSQL और स्वयं-होस्टेड LiveKit, एम्बेडेड फ्रंटएंड के साथ एकल बाइनरी के रूप में शिप होता है और एकल VM पर एक compose stack के रूप में तैनात होता है। विकास के लिए Go 1.26+, Node 22+, pnpm और Docker की आवश्यकता होती है; make targets Postgres और LiveKit को containers में लाते हैं, पोर्ट 8080 पर hot-reloading सर्वर चलाते हैं, और पोर्ट 5174 पर Vite dev server शुरू करते हैं जो /api और /ws को प्रॉक्सी करता है। दस्तावेज़ीकरण और रिलीज़ आर्किटेक्चर और स्पेक दस्तावेज़ एक स्थापना दस्तावेज़ के बगल में बैठते हैं जो उत्पाद और आर्किटेक्चर निर्णय दर्ज करता है, एक शोध दस्तावेज़, और क्रमांकित ADRs। रिलीज़ दिन में कई बार काटी जाती हैं: एक रिलीज़ हमेशा एक छोटा, पहले से ही merged परिवर्तन जोड़ती है, और इसे रोलबैक करना रनिंग इमेज को पिछले टैग पर पुनः निर्देशित करने के बराबर होता है, डेटाबेस को छुए बिना।