Project Title: Personal Finance Manager Application for Android

Project Description:

The aim of this project is to develop a Personal Finance Manager application for Android devices using C#. The application will provide users with a comprehensive set of tools to manage their personal finances effectively and conveniently, addressing the common problem of personal finance management.

Motivation and Usefulness

In today's fast-paced world, managing personal finances can be a complex task. Many people struggle to keep track of their expenses, stick to a budget, and save towards their financial goals. This often leads to financial stress and prevents people from achieving financial stability.

A Personal Finance Manager application can help alleviate these problems by providing a convenient and effective way to manage personal finances. By having all their financial information in one place and being able to easily track and analyze their financial habits, users can gain better control over their finances and make more informed financial decisions.

Alternatives and Their Limitations

There are several personal finance apps available on the market, such as Money Lover – Spending Manager, 1Money and YNAB (You Need A Budget). However, these apps often come with limitations. Some require access to the user's bank account to track expenses, which many users are uncomfortable with. Others offer a broad range of features, making the app complex and difficult to navigate. Some apps are subscription-based, which can be a barrier for users looking for a free solution.

Additionally, many existing apps lack the functionality to set up recurring income or expenses, such as salaries or rent payments. This means users have to manually enter these recurring transactions each time they occur, which can be timeconsuming and inconvenient.

The proposed Personal Finance Manager application will address these limitations by offering a user-friendly interface, maintaining user privacy by not requiring access to bank accounts, providing a feature for setting up recurring transactions, and being free to use.

Application Usage and Data Processing

The application will primarily serve as a comprehensive tool for tracking expenses, income, and generating financial reports. Users will be empowered to input their income and expenses, categorizing each entry for enhanced tracking. The expected input format will be numerical for the amount, and text will be used for the category and any supplementary notes. The application will adeptly process this data, offering users a clear perspective on their spending habits.

One of the standout features of the application is its ability to manage multiple account types. Users can seamlessly create and manage various accounts such as cash, bank accounts, credit cards, stocks, cryptocurrencies, precious metals, and even craft their own custom account types. A dedicated page will showcase these accounts, providing a consolidated view of their total balance, expenses, and other pertinent details.

Furthermore, the application will facilitate the transfer of funds between these accounts, ensuring users have full flexibility in managing their finances. Editing and deleting accounts are also integrated, offering users complete control over their financial data.

The output of the application will be primarily in the form of simple financial reports and visualizations. These will grant users profound insights into their spending habits and the overall health of their finances.

User Interface and Application Run

The application will have a Graphical User Interface (GUI), designed following Google's Material Design guidelines to ensure a modern and user-friendly experience. The application will run on Android devices, allowing users to manage their finances on the go.

Technologies and Architecture

The application will be developed using .NET MAUI for Android development in C#, SQLite for local data storage, and LINQ for data querying.

The architecture of the application will follow the Model-View-ViewModel

(MVVM) pattern, a commonly used architectural pattern in .NET MAUI applications.

This pattern separates the app's data (Model), UI (View), and logic (ViewModel), making the code more modular and easier to maintain.