Fresh flavors, cozy moments, and a smarter way to enjoy your daily brew.
Features
Tech Stack
Contributing
License
BrewBite is a full-featured Android ordering app for cafés and bakeries, covering the complete user journey — from browsing a live menu to online payment.
The project serves a dual purpose: it is a production-grade portfolio app and a real-world test bench for two custom open-source Android libraries authored alongside it — MorphNavBar and Editify — both consumed here as dependencies, exactly as any third-party library would be.
Rather than mocking payments or stubbing network calls, BrewBite integrates real services end-to-end: Firebase for auth and live data sync, Cloudinary for image upload and storage, and PayPal + Google Pay via their official SDKs.
The catalog is split into two distinct item categories (café drinks and bakery goods), each rendered in both a grid view and a list view depending on context. User sessions, favourites, order history, and profile data all persist in Firestore in real time.
This repository is intended as a reference for junior-to-mid Android developers who want to see how auth flows, cloud storage, payment SDKs, and custom UI libraries fit together in a single coherent project.
Android 7.0 (API 24) → latest | Java | Firebase | Cloudinary | PayPal · Google Pay
Authentication & Account
- Register, sign in, and reset password with real-time field validation via Editify.
- Full profile editing — name, username, avatar (Cloudinary), gender, location, phone, birthday.
- Account deletion with confirmation dialog; all data removed from Firestore instantly.
Catalog & Discovery
- Two independent item categories: café drinks and bakery goods.
- Grid and list layouts that switch automatically based on context.
- Per-item customisation — size, sugar, and ice for drinks; weight and toppings for bakery items.
- Real-time search and one-tap favourites, synced instantly to the user profile.
Cart & Checkout
- Quantity controls, discount code input, and a live price breakdown (subtotal, delivery, tax).
- PayPal and Google Pay via official SDKs — payment completes without leaving the app.
Backend & Media
- Firebase Firestore for real-time data sync across all screens.
- Firebase Auth for session management and secure account deletion.
- Cloudinary for image upload and delivery.
- Glide for fast image loading and caching from Cloudinary URLs.
Custom Libraries
- MorphNavBar — animated bottom nav with a morphing active indicator.
- Editify — smart input field with icon support, focus states, and password toggle.
Both libraries target Android 7.0+ and were battle-tested inside BrewBite before release.
| Layer | Technology |
|---|---|
| Language | Java 11+ |
| Min SDK | Android 7.0 (API 24) |
| Backend & Auth | Firebase Firestore · Firebase Authentication |
| Image Storage | Cloudinary Android SDK |
| Payments | PayPal Mobile SDK · Google Pay API |
| Navigation | MorphNavBar (custom) |
| Input Components | Editify (custom) |
| Image Loading | Glide |
| Architecture | Single-activity, fragment-based |
Service credentials (
google-services.json, Cloudinary API key, PayPal client ID) are excluded from the repository. See Setup for configuration steps.
This project is licensed under the MIT License — perfect for portfolio and demo projects. See the LICENSE file for full details.
If you like this project and find it useful for your learning or portfolio:
- Give it a Star ⭐ on GitHub
- Share it with your friends or on LinkedIn
- Open an issue or suggest new features
Feedback is always welcome! Feel free to contact me for any questions or collaboration ideas.
Made with ❤️ for the Android community.

