ASTU Market is a comprehensive Android marketplace designed specifically for the Adama Science and Technology University (ASTU) community. It empowers students to buy and sell goods within the campus ecosystem, featuring a secure wallet, role-based interfaces, and integrated delivery tracking.
Watch the ASTU Market in action:
- Buyer Role: Browse products, manage a shopping cart, and track orders.
- Seller Role: Manage inventory, track sales, and fulfill orders.
- Switching: Users can easily transition between roles depending on their needs.
- Welcome Page: Personalized greeting and quick access to active orders or featured products.
- Quick Actions: Shortcuts to wallet, scanning, and top categories.
- Categorized Browsing: Filter by Clothes, Electronics, Books, Stationery, and more.
- Advanced Search: Find exactly what you need with real-time filtering.
- Product Details: Rich descriptions, pricing, and seller information.
- Balance Tracking: Real-time view of your current balance.
- Peer-to-Peer Transfers: Send money to other students instantly using QR codes.
- Airtime & Vouchers: Purchase airtime or redeem campus vouchers directly within the app.
- Tracking: Real-time status updates for your purchases.
- Seller Inventory: Sellers can add, edit, or remove products from their shop.
- Delivery Verification: QR-based verification to ensure safe and successful handoffs.
- Core: Kotlin
- UI Framework: Jetpack Compose (100% Declarative UI)
- Dependency Injection: Dagger Hilt
- Backend: Firebase (Authentication & Cloud Firestore)
- QR Scanning: Zxing-embedded / CameraX
- Asynchronous Flow: Kotlin Coroutines & Flow
app/src/main/java/com/market/astu/
βββ data/
β βββ model/ # Data classes (User, Product, Wallet, Order)
β βββ repository/ # Firestore & Auth repositories
βββ di/ # Hilt Modules for dependency injection
βββ ui/
β βββ navigation/ # NavGraph & AuthenticatedApp structure
β βββ screens/ # Screen-specific Composables (Auth, Home, Wallet, etc.)
β βββ common/ # Shared UI components (TopBar, BottomDock, Backdrop)
β βββ theme/ # Design system (Color, Typography, Theme)
βββ util/ # Helpers (Pricing, Validation, Formatting)
The project is structured into six parallel parts to streamline development:
| Part | Focus | Description |
|---|---|---|
| Part 1 | Backend & Data | Firestore schemas, Repositories, and Data Models. |
| Part 2 | Auth & Onboarding | Sign-in, Sign-up, and Role selection flow. |
| Part 3 | Home & Discovery | Product listings, Search, and Detail views. |
| Part 4 | Wallet & Payments | Balance, Transfers, and QR Voucher scanning. |
| Part 5 | Cart & Orders | Checkout process and Order timeline tracking. |
| Part 6 | Seller & Common | Inventory management and shared UI components. |
| Sign In | Seller: Post Product |
|---|---|
![]() |
![]() |
| Feature | Light Mode | Dark Mode |
|---|---|---|
| Dashboard | ![]() |
![]() |
| Discovery | ![]() |
![]() |
| Wallet | ![]() |
![]() |
| Account | ![]() |
![]() |
- Clone the Repo:
git clone https://github.com/yourusername/ASTU-Market.git
- Firebase Configuration:
- Create a new project in the Firebase Console.
- Enable Email/Password Auth and Cloud Firestore.
- Download your
google-services.jsonand place it in theapp/directory.
- Build:
- Open in Android Studio (Ladybug or newer recommended).
- Sync Gradle and run on a device/emulator (Min SDK 24).
The app uses Zxing for high-performance QR code processing. This is used for:
- Peer-to-peer wallet transfers.
- Redeeming airtime vouchers.
- Verifying order deliveries between buyers and sellers.









