A modern Android coffee ordering application with rewards, missions, and social features.
Features β’ Installation β’ Architecture β’ Screenshots β’ License
Aurora Android is a comprehensive mobile application that allows users to browse coffee shops, order products, earn rewards through missions, and manage their account. Built with modern Android development practices and integrated with Firebase for authentication and real-time features.
- Firebase Phone Authentication - Secure phone number verification
- Email/Password Login - Traditional authentication method
- Password Recovery - Email-based password reset with verification codes
- User Registration - Complete onboarding flow with validation
- Shop Discovery - Browse nearby coffee shops with location-based filtering
- Product Catalog - View detailed product information with images and ratings
- Product Reviews - Read and write product reviews with star ratings
- Bookmarks - Save favorite products for quick access
- Search & Filter - Find products and shops easily
- Shopping Cart - Add products and manage quantities
- Checkout Flow - Complete order placement with address and payment details
- Gift/Promo Codes - Apply discount codes at checkout
- Order History - Track past and current orders
- Order Cancellation - Cancel pending orders
- Mission System - Complete challenges to earn rewards
- Gift Cards - Earn and redeem promotional gifts
- Progress Tracking - Monitor mission completion progress
- Expiration Management - Time-limited rewards and missions
- XP System - Earn experience points for activities
- Digital Wallet - Manage account balance
- Top-Up - Add funds to wallet
- Payment Card - Virtual card with unique code
- Transaction History - View all wallet transactions
- Avatar Upload - Customize profile with image upload
- Account Settings - Update personal information
- Gallery Integration - Select images from device gallery
- Profile Viewing - View account details and balance
- FCM Integration - Receive push notifications
- Order Updates - Get notified about order status changes
- Mission Alerts - Notifications for new missions and rewards
- Language: Java
- Min SDK: API 21 (Android 5.0 Lollipop)
- Target SDK: Latest Android version
- Build System: Gradle
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-messaging'implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'implementation 'com.github.bumptech.glide:glide:4.15.1'implementation 'androidx.recyclerview:recyclerview'
implementation 'androidx.cardview:cardview'
implementation 'com.google.android.material:material'
implementation 'me.relex:circleindicator:2.1.6'implementation 'io.reactivex.rxjava2:rxjava:2.2.21'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'app/
βββ src/
β βββ main/
β β βββ java/com/example/coffee/
β β β βββ adapters/ # RecyclerView adapters
β β β βββ app/ # Application constants & data
β β β βββ callbacks/ # API callback interfaces
β β β βββ fcm/ # Firebase Cloud Messaging
β β β βββ interfaces/ # Retrofit API interfaces
β β β βββ models/ # Data models
β β β β βββ Order/
β β β β βββ Others/
β β β β βββ Product/
β β β β βββ Shop/
β β β β βββ User/
β β β βββ screens/ # Activities & Fragments
β β β β βββ auth/ # Authentication screens
β β β β βββ bottom/ # Bottom navigation screens
β β β β β βββ Gift/
β β β β β βββ Home/
β β β β β βββ Product/
β β β β β βββ Profile/
β β β β β βββ Shop/
β β β β βββ others/ # Splash & onboarding
β β β βββ services/ # API service classes
β β β βββ utils/ # Helper utilities
β β βββ res/
β β βββ layout/ # XML layouts
β β βββ drawable/ # Images & icons
β β βββ font/ # Custom fonts
β β βββ menu/ # Menu resources
β βββ androidTest/ # Instrumented tests
β βββ test/ # Unit tests
βββ build.gradle
The app follows MVC (Model-View-Controller) pattern with clear separation of concerns:
- Models (
models/) - Data structures with Gson serialization - Views (
screens/) - Activities and Fragments - Controllers (
services/) - Business logic and API communication
- Base URL Configuration:
BaseAPI - Retrofit Interfaces: Separate interfaces for different features
AuthInterfaceAPI- Authentication endpointsGiftInterfaceAPI- Rewards & missions- Product, Shop, Order interfaces
- Serializable Classes: All models implement
Serializablefor Intent passing - Gson Annotations:
@SerializedNamefor JSON mapping - Response Wrappers:
HttpResponsebase class for API responses
Services handle API calls and business logic:
AuthService- User authenticationUserService- User profile managementGiftService- Rewards and missionsProductService,ShopService,OrderService
UserInformation- User session managementLayoutLoading- Loading state UIValidation- Input validationHelperFunction- Common utilitiesLogger- Debugging helper
- Android Studio Arctic Fox or later
- JDK 11 or higher
- Android SDK with API level 21+
- Firebase project setup
- Clone the repository
git clone https://github.com/yourusername/coffee_android.git
cd coffee_android-
Configure Firebase
- Create a Firebase project at Firebase Console
- Add Android app to your Firebase project
- Download
google-services.json - Place it in app directory
-
Update API Configuration
- Open
BaseAPI.java - Update
BASE_URLwith your backend server URL
- Open
-
Sync Gradle
./gradlew sync- Build and Run
./gradlew assembleDebug
./gradlew installDebugOr use Android Studio's Run button
| Splash Screen | Login | Register | Phone Verification |
|---|---|---|---|
| π | π | π | π± |
| Home | Shop | Gifts | Profile |
|---|---|---|---|
| π | πͺ | π | π€ |
| Product List | Product Detail | Checkout | Payment |
|---|---|---|---|
| π | π± | π | π³ |
The project uses Gradle for dependency management. Key configurations in build.gradle:
android {
compileSdk 33
defaultConfig {
applicationId "com.example.coffee"
minSdk 21
targetSdk 33
versionCode 1
versionName "1.0"
}
}ProGuard rules are defined in proguard-rules.pro for code obfuscation in release builds.
Located in app/src/test/
./gradlew testLocated in app/src/androidTest/
./gradlew connectedAndroidTestImplementation in VerityActivity.java:
- Phone number validation
- OTP verification
- Auto-verification callbacks
- Resend code functionality
Mission registration in RecyclePromoAdapter.java:
- Mission listing with progress
- Register for missions
- Track completion status
- Reward distribution
Wallet management in CardActivity.java:
- Display balance and card code
- Top-up functionality
- Transaction history
Avatar upload in ProfileFragment.java:
- Gallery permission handling
- Image selection
- File path resolution with
RealPathUtil - Multipart upload
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request