A modern Android application built with Kotlin, Jetpack Compose, and Firebase for user management and community features.
- Language: Kotlin
- UI: Jetpack Compose, Material 3
- Architecture: MVVM, Clean Architecture
- DI: Hilt
- Backend: Firebase (Auth, Firestore, Cloud Messaging, Crashlytics)
- Image Hosting: Cloudinary
- Navigation: Jetpack Navigation Compose
- Firebase Authentication with BP Number login
- User profile management with image upload
- Push notifications via FCM
- Admin panel for user management and banners
- Home district filtering
- Pull-to-refresh UI
- Hamburger menu navigation
app/src/main/java/com/shawonshagor0/hallow34/
├── data/ # Data layer (repositories, models, mappers)
├── di/ # Hilt dependency injection modules
├── domain/ # Domain layer (use cases, entities)
├── presentation/ # UI layer (screens, viewmodels)
└── ui/ # Theme and composables
- Android Studio Ladybug or later
- JDK 11+
- Firebase project configured
-
Clone the repository
git clone https://github.com/TangilHossain/Hallow34.git cd Hallow34 -
Firebase Setup
- Create a Firebase project at Firebase Console
- Download
google-services.jsonand place it inapp/ - Enable Authentication, Firestore, and Cloud Messaging
-
Cloudinary Setup
- Create account at Cloudinary
- Copy
cloudinary.properties.exampletocloudinary.properties - Fill in your credentials:
CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret CLOUDINARY_UPLOAD_PRESET=your_upload_preset
-
Build and Run
./gradlew assembleDebug
cd functions
npm install
firebase deploy --only functions- Never commit
google-services.jsonorcloudinary.properties - Use
.examplefiles as templates - API keys are loaded via BuildConfig at compile time
BP Numbers 8414116694 and 8000000000 have admin privileges.
Private repository - All rights reserved.