Kuberam - Manage all your transactions. Auth0 Hackathon.

Kuberam - Manage all your transactions. Auth0 Hackathon.

An Android Project built on Jetpack Compose + Auth0

Β·

5 min read

Quote:

Manage all your transactions in your pocket.

About Me

I am Rohit Jakhar. Currently I am final year student of B.tech in Computer Science Branch. I am learning Android from 3 years. Also I am also exploring backend stuff too. Apart from Technology, My hobby is doing Yoga. I am exploring Yoga in deep and do daily.

What is Kuberam

Kuberam name is inspired from Hindu's God named Kubera which is known as God of Wealth. In Kuberam app you can manage your income and expense transactions easily. You can see Pie Chart based on your income and expense transactions so you get overview of your transactions. I built this project using #JetpackCompose and #Auth0 during #Auth0Hackathon at #Hashnode.

Idea behind Kuberam

As I am freelancer, so there is so much hard to manage my money and might be you also face this problems. I know there are already many apps in market but they are not simple or free to use. As an android developer, I want home made recipes. I want to make it with use latest technology so i selected Jetpack Compose and for Secure Authentication select Auth0 and start on it.

Video

Insight

Dark Theme

kuberam_dark_poster.png

Light Theme

kuberam_light_poster.png

Features:

  • Create Account with single click using Auth0.
  • Create category as much as you need.
  • Add Transaction.
  • Swipe to delete Transaction.
  • Pie Chart of Income and Expense Transactions.
  • Light and Dark Theme.
  • Bio-metric/Phone Lock.
  • Change Currency symbol at any time.
  • Give feedback directly to developer.
  • In App Update.
  • In App Review.
  • Notification for reminding.

Built With πŸ› 

  • Auth0 - Auth0 is an easy to implement, adaptable authentication and authorization platform.

  • Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI.

  • Kotlin - First class and official programming language for Android development.

  • Coroutines - For asynchronous and more..

  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.

  • MutableState - MutableState is an alternative to using LiveData or Flow . Compose does not observe any changes to this object by default and therefore no recomposition will happen.

  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.

    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.

    • DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers.

  • Dependency Injection -

    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.

    • Hilt-ViewModel - DI for injecting ViewModel.

  • Firebase

    • Firebase Firestore - To save data in firebase firestore database
    • Firebase Crashlytics - To report app crashes
    • Firebase Analytics - To report app crashes
    • Firebase Messaging - To send Notifications in app.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

  • Compose Chart - Showing Pie Chart in Jetpack Compose.

  • Coil - An image loading library for Android backed by Kotlin Coroutines.

  • Bio-metric Authentication - Authentication using a screen lock credential – the user's PIN, pattern, or password.

  • Accompanist Pager - A library which provides paging layouts for Jetpack Compose.

  • Accompanist Navigation - A library which provides Compose Animation support for Jetpack Navigation Compose.

  • Lottie - Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile!

MAD Score

summary.png

Package Structure

com.kuberam.android     # Root Package
.
β”œβ”€β”€ Components          # For data handling.
|
β”œβ”€β”€ data
|   β”œβ”€β”€ local           # Datastore and its related classes
|   β”œβ”€β”€ model           # Firebase, HarperDB and their relative classes
β”‚   β”œβ”€β”€ remote          # Model data classes, both remote and local entities
|
β”œβ”€β”€ di                  # Dependency Injection
β”‚   └── module          # DI Modules
|
β”œβ”€β”€ navigation
|
β”œβ”€β”€ service
|
β”œβ”€β”€ ui
|   β”œβ”€β”€ theme           # Manage Themes: Color, Shape, Theme and Type.
β”‚   β”œβ”€β”€ view            # All Views: About Screen, All Transaction Screen, Auth Screen, Dashboard Screen, OnBoard Screen, Profile Screen, Splash Screen.
β”‚   β”œβ”€β”€ viewmodel       # Viewmodel of app
|
|
└── utils               # Utility Classes: Constant, Interfaces etc.

Challenges

  • As you new Jetpack Compose is brand new UI framework and it release first stable version last month (July 2021) so there are very less resources and function to create a fully functional app. I learn at lots docs and others projects to understand that and in some places i created custom component for my use like radio buttons, Chip, Calendar etc.

  • Making complex UI with complex data flow is tedious task where you have less resources. I changed my data flow many time.

  • Make it simple is also very challenging because track all transaction at different collections with smoothly flow.

Future Improvements

  • This project is based on current Jetpack Compose version and also there are many library those still in development so as they release new version i am trying to upto this projects so other learner get helps from this project.

  • Currently Kuberam use firestore cloud database, in future i am also add offline database so user have freedom to choose online database or offline database.

  • Add more features in Pie Chart so user can understand that more accurate.

FAQ

  • Is this available on Play Store - Yes it available on playstore you can download it from here:- Kuberam

  • Is my data safe? - Yes, your data is 100% safe and we don't misuse with your data.

  • Is it free to use? - Yes, it is completely free to use.

  • Can i modify it according to me? - Yes, Kuberam is Open source project under MIT License. So just fork/clone project and modify as you want.

Github Repo Link

  • Github

Play Store Link

  • QuizZon

Special Thanks

A special thanks to @patilshreyas to provide resources in Jetpack Compose. Also special thanks to @Vaibhav2511 to motivate me to continue work on this projects.

Donation πŸ’°

If this project help you reduce time to develop, you can give me a cup of coffee :)

Buy Me A Coffee


Did you find this article valuable?

Support Rohit Jakhar by becoming a sponsor. Any amount is appreciated!

Β