Skip to content

A modern coffee shop app built with Jetpack Compose, implementing the MVVM design pattern for a clean and maintainable app architecture.

License

Notifications You must be signed in to change notification settings

ahmeddwalid/Finjan

Repository files navigation

Finjan – Coffee Shop App

Ahmed Walid

Modern Android Coffee Shop app built with Jetpack Compose
Explore the docs »

Report Bug · Request Feature

About The Project

Finjan is a modern, responsive Android coffee shop application built with Kotlin and Jetpack Compose. It features a clean MVVM architecture, type-safe navigation, and Firebase integration for authentication.

AppScreens

Features

Core Features

  • Type-Safe Navigation – Compile-time safe routes using Kotlin sealed classes
  • Responsive UI – Beautiful, user-friendly interface built with Jetpack Compose
  • MVVM Architecture – Clean separation of concerns with ViewModels
  • Animated Splash Screen – Smooth Lottie animations
  • Firebase Authentication – Secure email/password sign-in and sign-up

Authentication

  • Email/Password sign-in and sign-up
  • Password reset via email
  • Profile management (display name updates)
  • Password change with re-authentication

Home & Products

  • Product browsing with image cards
  • Category filtering
  • Search functionality
  • Dynamic QR code generation for loyalty points

Profile & Settings

  • User profile with photo support (via Coil)
  • Order history view
  • Payment method management
  • Notification preferences
  • Edit profile and change password screens

Offers & Promotions

  • Dynamic offers display
  • Loyalty points system (in SharedViewModel)

Tech Stack

  • Language: Kotlin
  • UI: Jetpack Compose, Material3
  • Navigation: Compose Navigation with type-safe routes
  • Authentication: Firebase Authentication
  • Image Loading: Coil
  • Animations: Lottie Compose
  • Architecture: MVVM with ViewModels

Download APK (old version)

Download Latest Release

APK Hashes:

SHA-1: e3e38991a470b6ca06e94a0b6b13091d6e8c6531

SHA-256: 144d9c50416eae8a792e385639d82aedc9ed14494e3397cdc7d5fa17cc819785

SHA-512: 8b097e8f6984f1993339a205b34d4009f6a11620ac3ff9c790974eea5f307ee63c1f826d735aeffed50d1c21beb350ce8d380d70b549d891660d81fc12c76ba3

Contributing

Project's Link: https://github.com/ahmeddwalid/Finjan

Any contributions you make are greatly appreciated.

Planned Features

  • Google Sign-In – OAuth integration with Credential Manager API
  • Firebase Firestore – Cloud storage for menu items and user data
  • Cart & Checkout – Full ordering flow
  • Push Notifications – Order updates and promotions

How to Contribute

If you'd like to contribute, please follow these steps:

  1. Fork the repository: Create your own copy of the project.
  2. Create a branch: git checkout -b feature/your-feature-name
  3. Implement your contribution
  4. Commit your changes: git commit -m "your descriptive commit message"
  5. Push to the branch: git push origin feature/your-feature-name
  6. Create a pull request: Submit your changes for review.

Contribution Guidelines

  • Please ensure your code follows MVVM design pattern.
  • Write clear and concise commit messages.
  • Provide detailed explanations in your pull requests.
  • Be respectful and considerate of other contributors.

Thank you for your contributions!

Acknowledgments

License

This project is distributed under the Apache 2.0 license. See LICENSE.txt for more information.

(back to top)