Kuberam - Manage all your transactions. Auth0 Hackathon.
An Android Project built on Jetpack Compose + Auth0
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
Light Theme
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.
-
Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
Hilt-ViewModel - DI for injecting
ViewModel
.
-
- 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
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.
Links
Github Repo Link
Play Store Link
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 :)