This was originally a project for the CS453 Mobile Programming course at CSUEB. The goal of the project was to create an Android application and learn how to launch activities and use intents and store data using SharedPreferences.
This project was refactored to use the Hilt library for dependency injection and the Room library for a local SQLite database instead of SharedPreferences. This update also added some simple data visualization.
The user needs to be able to enter and track their expenses by day, month and year.
Tracking includes the ability to see totals and averages by day, month and year for each category of expense.
Totals for day, month and year also needs to be shown for all categories combined. Each expense needs to be entered and details about each expense should be captured.
Each expense should include:
- Expense Date
- Name of Expense
- Category
- Cost
- Reason
- Notes
You need to have a way for the user to create a new entry, update an existing entry and delete an entry.
The user should be able to select from already existing categories stored.
There should also be a way to enter a new expense category.
Your app design needs to contain at least two different screens. More screens will probably be needed to space out the features appropriately.
Design the user interface that uses an Adapter and a RecyclerView, ListView, GridView or another View component of your choice.
Shows the app with main screen with several expenses already added.
Shows a pie chart of the expenses based on their categories and the total and average amount spent per expense.
The chart with a date filter applied.
Clicking on the filter button opens a side menu where the user can apply filters on which expenses are displayed. The user can filter by a date range and/or by category.
Clicking on the sort button opens a side menu where the user can change the sorting of the expenses.
The user can press the add button at the bottom corner of the main screen to add a new expense entry.
The user can also tap on an existing expense to view, edit, and delete an expense entry.
Using the predefined categories:
The user can also use one of the predefined categories or create a custom category by entering a new name.