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

Braindance एक क्रॉस-प्लेटफ़ॉर्म गेम-ट्रैकिंग एप्लिकेशन है जो Kotlin Multiplatform और Compose Multiplatform के साथ बनाया गया है, और Android, iOS तथा ब्राउज़र (Wasm) क्लाइंट्स के बीच UI और लॉजिक साझा करता है। बैकएंड एक Kotlin/JVM Ktor API है जो IGDB डेटाबेस और GamerPower गिवअवे सेवा से डेटा प्रॉक्सी करता है। मुख्य सुविधाओं में गेम विवरण खोजना और एक्सप्लोर करना, गेम को पसंदीदा में जोड़ना, एकीकृत कैलेंडर के ज़रिए रिलीज़ तारीखें ट्रैक करना, गेम गिवअवे खोजना और नवीनतम गेम समाचार पढ़ना शामिल है। सभी क्लाइंट प्लेटफ़ॉर्म IGDB और GamerPower डेटा के लिए बैकएंड को कॉल करते हैं। प्रोजेक्ट लेआउट जिम्मेदारियों को अलग करता है: androidApp (Android होस्ट), shared (सभी प्लेटफ़ॉर्म के लिए Compose UI, ऐप लॉजिक, नेटवर्किंग), iosApp (Xcode/SwiftUI होस्ट), webApp (Compose Multiplatform ब्राउज़र होस्ट), और backend (Ktor API)। बैकएंड को मोबाइल ऐप्स से स्वतंत्र रूप से वर्शन किया जाता है; वर्तमान मोबाइल रिलीज़ 0.3.1 है और बैकएंड 0.3.2 है। IGDB प्रमाणीकरण में Twitch डेवलपर एप्लिकेशन के client ID और client secret का उपयोग होता है (अलग API key नहीं); GamerPower के लिए कोई API key आवश्यक नहीं है। Twitch क्रेडेंशियल्स बैकएंड रनटाइम सीक्रेट स्टोर में रखे जाते हैं और क्लाइंट बिल्ड्स में कभी शामिल नहीं किए जाते। बैकएंड URL क्लाइंट बिल्ड्स में एम्बेड किया जाता है, लेकिन इसे सीक्रेट नहीं माना जाता। तैनाती: GitHub Actions बैकएंड का परीक्षण और पैकेजिंग करता है, और master से GHCR पर एक कंटेनर इमेज प्रकाशित करता है। रनटाइम कॉन्फ़िगरेशन और लागत नियंत्रण के लिए एक Cloud Run तैनाती गाइड दी गई है। वेब क्लाइंट को स्टैटिक फ़ाइलों के साथ web-app ब्रांच पर प्रकाशित किया जाता है, जो GitHub Pages के ज़रिए कस्टम डोमेन का समर्थन करता है। प्रोजेक्ट को बैकएंड URL के बिना बनाया जा सकता है, लेकिन IGDB-संचालित फ़्लो के लिए Twitch क्रेडेंशियल्स वाला पहुँच-योग्य बैकएंड आवश्यक है। आवश्यकताओं में JDK 21, Android के लिए Android SDK API 37, iOS बिल्ड के लिए Xcode वाला macOS, और बैकएंड के लिए एक कंटेनर होस्ट शामिल हैं। प्रोजेक्ट GPL-3.0 के अंतर्गत लाइसेंस प्राप्त है और सक्रिय रूप से विकासाधीन है।