প্রকল্প সম্পর্কে

Braindance হলো Kotlin Multiplatform এবং Compose Multiplatform দিয়ে তৈরি একটি ক্রস-প্ল্যাটফর্ম গেম-ট্র্যাকিং অ্যাপ্লিকেশন, যা অ্যান্ড্রয়েড, iOS এবং ব্রাউজার (Wasm) ক্লায়েন্ট জুড়ে UI ও লজিক শেয়ার করে। ব্যাকএন্ডটি একটি Kotlin/JVM Ktor API, যা IGDB ডেটাবেস এবং GamerPower গিভঅ্যাওয়ে পরিষেবা থেকে ডেটা প্রক্সি করে। মূল বৈশিষ্ট্যগুলোর মধ্যে রয়েছে গেম অনুসন্ধান ও বিস্তারিত অন্বেষণ, গেম প্রিয় তালিকায় যোগ করা, সমন্বিত ক্যালেন্ডারের মাধ্যমে রিলিজ তারিখ ট্র্যাক করা, গেম গিভঅ্যাওয়ে আবিষ্কার এবং সর্বশেষ গেম সংবাদ পড়া। সব ক্লায়েন্ট প্ল্যাটফর্ম IGDB ও GamerPower ডেটার জন্য ব্যাকএন্ড কল করে। প্রকল্পের বিন্যাস দায়িত্বগুলো আলাদা করে: androidApp (অ্যান্ড্রয়েড হোস্ট), shared (Compose UI, অ্যাপ লজিক, সব প্ল্যাটফর্মের জন্য নেটওয়ার্কিং), iosApp (Xcode/SwiftUI হোস্ট), webApp (Compose Multiplatform ব্রাউজার হোস্ট) এবং backend (Ktor API)। ব্যাকএন্ড মোবাইল অ্যাপ থেকে স্বাধীনভাবে সংস্করণযুক্ত; বর্তমান মোবাইল রিলিজ 0.3.1 এবং ব্যাকএন্ড 0.3.2। IGDB প্রমাণীকরণে একটি Twitch ডেভেলপার অ্যাপ্লিকেশনের ক্লায়েন্ট ID ও ক্লায়েন্ট সিক্রেট ব্যবহৃত হয় (আলাদা API কী নয়); GamerPower-এর কোনো API কী প্রয়োজন হয় না। Twitch ক্রেডেনশিয়াল ব্যাকএন্ডের রানটাইম সিক্রেট স্টোরে সংরক্ষিত থাকে এবং কখনো ক্লায়েন্ট বিল্ডে অন্তর্ভুক্ত হয় না। ব্যাকএন্ড URL ক্লায়েন্ট বিল্ডে এমবেড করা থাকে তবে এটিকে সিক্রেট হিসেবে গণ্য করা হয় না। স্থাপন: GitHub Actions ব্যাকএন্ড পরীক্ষা ও প্যাকেজ করে, master থেকে GHCR-এ একটি কন্টেইনার ইমেজ প্রকাশ করে। রানটাইম কনফিগারেশন ও খরচ নিয়ন্ত্রণের জন্য একটি Cloud Run স্থাপন নির্দেশিকা প্রদান করা হয়েছে। ওয়েব ক্লায়েন্ট স্ট্যাটিক ফাইলসহ একটি web-app ব্রাঞ্চে প্রকাশিত হয়, যা GitHub Pages-এর মাধ্যমে কাস্টম ডোমেইন সমর্থন করে। ব্যাকএন্ড URL ছাড়াই প্রকল্পটি বিল্ড করা যায়, তবে IGDB-চালিত ফ্লো-এর জন্য Twitch ক্রেডেনশিয়ালসহ একটি পৌঁছানোযোগ্য ব্যাকএন্ড প্রয়োজন। প্রয়োজনীয়তার মধ্যে রয়েছে JDK 21, অ্যান্ড্রয়েডের জন্য Android SDK API 37, iOS বিল্ডের জন্য Xcode-সহ macOS এবং ব্যাকএন্ডের জন্য একটি কন্টেইনার হোস্ট। প্রকল্পটি GPL-3.0 লাইসেন্সের অধীনে এবং সক্রিয়ভাবে উন্নয়নাধীন।