All-in-one Expense Manager: Manage Me Application

5 minute read

This is the summary of the android application (ManageMe) we made for Software Engineering Course (COL - 870) under Prof. S.C. Gupta at IIT Delhi. This was a group project completed by Ankur Sharma, Lovish Madaan, Sudeep Agarwal and Siddharth Khera (2015-2020 Dual Degree Students).

Important files relevant to the Application

Purpose

The purpose of this android application is to provide an easy and user friendly way to keep track of your expenses/food calories/important notes at one place. This application is motivated by the fact that you have to use different applications for each of these use cases. Sometimes, these use cases are inter-dependent, for example, you might want to note down certain items to buy depending upon your current expenses. We also provide category wise tags to organize the items in the app for easy access.

Our project aims to create a standalone platform for self management through which one can manage all their notes, memos, expenses, food intake / calories using just one application.

Scope

Scope of this project is building a complete standalone android application which will have different function- alities, all specific to different self-management tasks. In this project we will build the following:

  • Authentication module: User login and Signup is handled by this module.
  • Calories module: Manage the fitness section of the user datewise with customized tags.
  • Expenses module: Manages the expenses section of the user on various items of manually entered cateegories.
  • Notes module: Keeps track of personalised notes of the user in different scenarios.
  • Tagging module: Creates and manages custom tags for notes, expenses, food items, etc.
  • Filtering module: Allows the user to filter expenses, calories, etc. between a user-selected start and end date

Functionalities

ManageMe is supposed to be a simple self management app. It has the following main functionalities:

  • Expense Management: A user can manage all the daily expenses by keeping track of each expenses with specific tags. We also provide a filter function through which reports can be generated for any date range selected by the user.
  • Notes: A user can add to-do lists, simple notes with specific tags. Tag wise search would ensure all the items under a particular tag can be viewed.
  • Calories Record: One can maintain a record of daily food intake by adding food items and their associated calories already present in our large database. It can be used for weekly / monthly analysis of total calories consumed.

Design Overview

Architectural Design

This section details the architectural design involving the user, app interface, and the backend server. alt

Module Definitions

In this section, we explain the various components of our architectural design in detail.

  • User: User refers to the end-customer using our application.
  • App Interface: App Interface refers to the front-end design and the various functionalities that the user can select to navigate the application.
  • Active Viewer Module: This module acts as the mediator between the App Interface and the Backend Engine. It is responsible for handling and processing all the queries selected by the user and displays the active window and the query results that the user has requested.
  • Authentication Module: This module is responsible for the Sign-In and Sign-up functionalities of our application. Once a user signs up, his/her encrypted information will be saved on both the local device Database (DB) and synced with the cloud server whenever internet connectivity is available. When a user signs in to the application, his/her previous records are fetched from the DB and displayed on the screen.
  • Expense Management Module: This module is responsible for all expense-related tasks in the application. It provides functionality for adding, deleting, or modifying expense records. It also provides features for tagging the expenses and filter the expenses according to tags/date range. To do that, it sends the request to either the Tagging Module or the Filter Module which then send back the relevant entries.
  • Calories Managament Module: This module is responsible for tracking a user’s daily food intake. This module is also responsible for displaying the food items along with their calories information already present in the database. The user then just has to select the quantity of the food item and his/her food calories information will be displayed automatically. For food items not present in the database, the user can add items and their calorie information manually. The user can give tags to the food items like breakfast/lunch/dinner etc. and filter the entries according to date range.
  • Notes Management Module: This module is responsible for making notes about important information relevant to the user. The user can hide individual notes, give different colors and can also star them. The starred notes are displayed on the top of the list. Here also the user can give different tags to the notes and filter the notes according to keywords provided.
  • Tagging Module: This module is responsible for all tag related functionality in the application for the three management modules - expenses, calories, and notes. It organizes the database according to the tags present in the system to make tag-based queries faster.
  • Filtering Module: This module handles the filter queries from the three management modules. It provides an option to filter the items according to the date range. It is responsible for adding timestamp information in the database so that filter queries can be performed efficiently. For the Notes Management module, it provides the additional functionality of filtering according to keywords provided by the user in the search box.
  • Export Module: This module handles requests by the user to export any kind of information present in the application (notes, expenses, or calories) in a CSV/JSON format. This helps the user to make hard copies of the information for further analysis and better planning.

Database Design

This application will have 4 different databases.

  • User: It is an SQLite database that will contain the information of all the registered users of this application. alt
  • Expense: It is also an SQLite database for maintain the expense records with timestamps of all the users along with their custom categories. alt
  • Calorie: It is also an SQLite database for maintain the food consumption records with timestamps of all the users along with their custom categories. alt
  • Notes: It is a JSON database for maintaining the user personalised custom notes along with their meta information. alt

JSON database updates are fast, light and easier to synchronise with the remote database. Hence, a JSON database is chosen for notes because the text updates/edits are made to the notes much more often than expenses and fitness records.

ER Diagram

alt

Screen Layouts

Sign-Up Page

alt

Login Page

alt

Home Page (Landing Page)

alt

Expense Management Page

alt

Add Expense Page

alt

Additional Options on Expenses Management Page

alt

Calorie Management page with filter option displayed

alt

Add Food Entry Page

alt

Notes Management Page

alt

Add Note Page

alt

Use Cases

Use Case Scenario-1: Sign-in

alt

Use Case Scenario-2: Expense Management

alt

Use Case Scenario-3: Calories Management

alt

Use Case Scenario-4: Notes Management

alt

Use Case Scenario-5: Tagging & Filtering Entries

alt