Introducing our personal finance app, designed to help users achieve their financial goals by tracking income, expenses, and investments. Users are able to add new transactions, view transaction history, and generate reports on their financial activity.
The project is under development (check the current design progress here) and the next updates will focus on the following tasks:
- Add Balance
- Home
- New Operation
- Categories
This is a Kotlin Multiplatform project targeting Android, iOS, Desktop. Learn more about Kotlin Multiplatform…
-
/composeApp
is for code that will be shared across your Compose Multiplatform applications. It contains several subfolders:commonMain
is for code that’s common for all targets.- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.
For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app,
iosMain
would be the right folder for such calls.
-
/iosApp
contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform, you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.
/commonMain
/data
/dataSource
are responsible for providing data the app needs to function. (e.g. network, local database, files, memory). Data sources classes are the bridge between the application and the system for data operations./di
(dependency injection) data module./repository
are used by other layers on the app to interact with the data layer, responsible to exposing the data to the rest of the app, centralizing data changes, resolving conflicts between multiple data sources and containing business logic.
/domain
/model
are objects that represent the core data of the application. They can be simple values or complex objects, usually in a form of adata class
./repository
interfaces contracts that are implemented by the/data/repository
classes.
/presentation
/designsystem
contains basic components that are used across all screens./di
(dependency injection) presentation module./navigation
utilities for screen navigation./screen
contains it's state and a viewModel for business logic./theme
values such ascolors
,typography
andshapes
.
app.kt
composable entry point for all platforms.
We welcome contributions to our project! If you want to contribute to our codebase, please follow these steps:
Our development workflow is based on GitFlow. The main
branch is the release branch, where we merge features from
the develop
branch.
- Clone the repository: First, clone the repository from GitHub by running the
command
git clone https://github.com/guiBrisson/money-mate.git
in your terminal. - Create a new branch: Once you have cloned the repository, create a new branch for your contribution by running
the command
git checkout -b prefix/my-new-branch develop
in your terminal. This will create a new branch calledprefix/my-new-branch
based on thedevelop
branch. - Make changes: Make the necessary changes to your codebase in your new branch. Be sure to follow our coding standards and test your changes thoroughly to ensure they work correctly.
- Push your changes: Once you've made changes to your branch, push them to your own repository by running the
command
git push origin prefix/my-new-branch
in your terminal. - Create a pull request: Create a new pull request by clicking the "New pull request" button. Fill out the pull request form with a clear and descriptive title, and include a detailed explanation of your changes and why they are important to the project.
- Review and merge: Once we've reviewed your pull request, we will merge your changes into the
develop
branch if they meet our coding standards. If there are any issues with your changes, we will provide feedback on how to improve them.
To help us organize and manage our branches more efficiently, we use a system of branch prefixes. Here are some common branch prefixes and what they mean:
Prefix | Description |
---|---|
feature/ |
For feature-driven changes. Examples include new UI components, improved error handling, or additional features. |
fix/ |
For bug fixes and other maintenance-related changes. |
docs/ |
These branches are used to write, update, or fix documentation. |
refactor/ |
For significant improvements to the structure or organization of the codebase. |