Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

26 Commits

Folders and files

Repository files navigation

🎶 BanglaGan (বাংলা গান) - Android App

BanglaGan হলো একটি আধুনিক, দ্রুত এবং অফলাইন-ফার্স্ট বাংলা গানের সংগ্রহ ও লিরিক্স অ্যাপ্লিকেশন। এটি আধুনিক Jetpack Compose, Room Database এবং MVVM (Model-View-ViewModel) আর্কিটেকচারের ওপর ভিত্তি করে তৈরি করা হয়েছে।


🌟 মূল বৈশিষ্ট্যসমূহ (Key Features)

  • 🎵 বিস্তৃত গানের সংগ্রহ: রবীন্দ্রসঙ্গীত, নজরুলগীতি, লোকগীতি, আধুনিক ও দেশাত্মবোধক গানের বিশাল ডেটাবেস।
  • 🔍 স্মার্ট ইনস্ট্যান্ট সার্চ: গান, শিল্পী, গীতিকার, সুরকার কিংবা অ্যালবামের নাম দিয়ে তাৎক্ষণিক সার্চের সুবিধা।
  • 📂 ক্যাটাগরি অনুযায়ী ব্রাউজিং:
    • 🎤 শিল্পীর তালিকা
    • ✍️ গীতিকারের তালিকা
    • 🎼 সুরকারের তালিকা
    • ⏳ যুগভিত্তিক বিভাজন (প্রাচীন, মধ্যযুগ, আধুনিক)
    • 🏷️ ধরণভিত্তিক ফিল্টারিং (দেশাত্মবোধক, আধুনিক, রবীন্দ্রসঙ্গীত ইত্যাদি)
  • ❤️ পছন্দের গান (Favorites): এক ক্লিকে প্রিয় গানগুলোকে বুকমার্ক ও আলাদাভাবে দেখার সুবিধা।
  • ➕ নতুন গান যোগ করা: ব্যবহারকারীরা সহজে নিজেদের সংগ্রহে নতুন গান, লিরিক্স ও তথ্য সংরক্ষণ করতে পারেন।
  • 📊 পরিসংখ্যান ড্যাশবোর্ড: মোট গান, শিল্পী, গীতিকার, সুরকার এবং যুগভিত্তিক রিয়েল-টাইম তথ্যচিত্র।
  • 🎨 Material 3 ডিজাইন ও ডার্ক মোড: ডায়নামিক কালার স্কিম এবং সিস্টেম-ওয়াইড ডার্ক/লাইট মোড সাপোর্ট।
  • ⚡ অফলাইন-ফার্স্ট (Offline-First): ইন্টারনেট কানেকশন ছাড়াই সমস্ত গান ও লিরিক্স পড়ার সুবিধা।

🛠️ প্রযুক্তি ও টেক স্ট্যাক (Tech Stack)

কম্পোনেন্ট প্রযুক্তি
ভাষা Kotlin
UI ফ্রেমওয়ার্ক Jetpack Compose (Material Design 3)
আর্কিটেকচার MVVM + Unidirectional Data Flow (UDF)
লোকাল ডেটাবেস Room Database
অ্যাসিঙ্ক ও স্টেট Kotlin Coroutines, StateFlow, SharedFlow
ন্যাভিগেশন AndroidX Navigation Compose
বিল্ড সিস্টেম Gradle (Kotlin DSL, Version Catalogs)

📁 প্রজেক্ট স্ট্রাকচার (Project Structure)

com.example.banglagan/
├── MainActivity.kt                      # মূল Activity ও রুট Scaffold
├── BanglaGanApplication.kt              # অ্যাপ্লিকেশন ক্লাস ও ডেটাবেস ইনিশিয়ালাইজার
│
├── data/                                # ডেটা লেয়ার
│   ├── AppDatabase.kt                   # Room Database কনফিগারেশন ও ইনিশিয়াল ডেটা
│   ├── Song.kt                          # Song Entity ডেটা ক্লাস
│   ├── SongDao.kt                       # Room DAO কোয়েরিসমূহ
│   └── SongRepository.kt                # ডেটা রিপোজিটরি লেয়ার
│
├── ui/                                  # প্রেজেন্টেশন লেয়ার (Jetpack Compose)
│   ├── components/                      # পুনর্ব্যবহারযোগ্য UI কম্পোনেন্টস
│   │   ├── AppBars.kt                   # TopAppBar এবং BottomNavigationBar
│   │   ├── CommonUI.kt                  # Loading, Empty ও Error স্টেটস
│   │   ├── HomeWidgets.kt               # Stats ও Category কার্ডসমূহ
│   │   └── SongItem.kt                  # গান ও ইন্টারেক্টিভ চিপ আইটেম
│   ├── navigation/                      # ন্যাভিগেশন গ্রাফ ও রাউট ডেস্টিনেশন
│   │   ├── AppDestinations.kt
│   │   └── AppNavHost.kt
│   ├── preview/                         # UI প্রিভিউ ও FakeSongDao ডেটা
│   │   └── PreviewData.kt
│   ├── screens/                         # অ্যাপ স্ক্রিনসমূহ
│   │   ├── HomeScreen.kt
│   │   ├── SongListScreen.kt
│   │   ├── SongDetailScreen.kt
│   │   ├── SearchScreen.kt
│   │   ├── SongsByCategoryScreen.kt
│   │   ├── AddSongScreen.kt
│   │   ├── StatisticsScreen.kt
│   │   └── GenericListScreen.kt
│   ├── song/                            # ViewModel ও UI State
│   │   └── SongViewModel.kt
│   └── theme/                           # Material 3 থিম, টাইপোগ্রাফি ও কালার
│       ├── Color.kt
│       ├── Theme.kt
│       └── Typography.kt
│
└── utils/                               # ইউটিলিটি ফাংশন
    └── NumberUtils.kt                   # বাংলা সংখ্যা রূপান্তর এক্সটেনশন

🚀 কীভাবে চালু করবেন (Getting Started)

পূর্বশর্ত:

  1. Android Studio: Ladybug (2024.2+) বা তার পরবর্তী সংস্করণ।
  2. JDK: Java 11 বা 17।
  3. Android SDK: Compile SDK 36 (Min SDK 21+)।

সেটআপ ও রান করার ধাপ:

  1. রিপোজিটরি ক্লোন করুন:

    git clone https://github.com/joysriramsarkar/banglagan_android_app.git
    cd banglagan_android_app
  2. Android Studio দিয়ে ওপেন করুন:

    • ফাইল মেনু থেকে Open সিলেক্ট করে প্রজেক্ট ফোল্ডারটি ওপেন করুন।
    • Gradle Sync সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করুন।
  3. কমান্ড লাইনে টেস্ট ও বিল্ড করুন:

    • ইউনিট টেস্ট রান করতে:
      .\gradlew.bat testDebugUnitTest
    • ডিবাগ APK তৈরি করতে:
      .\gradlew.bat assembleDebug

📄 লাইসেন্স (License)

এই প্রজেক্টটি ওপেন-সোর্স এবং বাংলা ভাষা ও সংস্কৃতির সঙ্গীত সংরক্ষণের উদ্দেশ্যে উন্মুক্ত।

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages