IOS App that helps users manage their personal expenses and log their day-to-day transactions | Swift 3
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Pocket Change.xcodeproj
Pocket Change.xcworkspace
Pocket Change
Pods
MyBudget+CoreDataClass.swift
MyBudget+CoreDataProperties.swift
Podfile
Podfile.lock
README.md

README.md

Pocket Change

iOS App made from scratch that helps users visualize their personal expenses and log their day-to-day transactions

Screenshots

alt tag alt tag alt tag alt tag alt tag alt tag alt tag alt tag alt tag

Features

‣ View your entire, color-coded history log of how much, why, where, and when money was spent
‣ Integrated the application with the Google Maps API to visualize where money was spent when the user travels
‣ When a user taps on a transaction, the map animates and centers on the location of where the transaction happened
‣ Create a budget with a name and starting balance
‣ Spend or add money to any budget, adding to your history
‣ Check your pie chart to see the net amount spent per budget; every time you view the pie chart it is drawn with 1 out of the 10 color schemes included in my design, offering visibility and clarity on up-to-date data
‣ View your transaction history within a specified time interval (past week, month, or year) on a bar graph
    – A horizontal line details the average amount spent per day for the specified time interval
    – The user can customize each budget's bar graph with 11 different color schemes
‣ Manage multiple budgets at once
‣ Undoing an item in your history or deleting your entire history reverts your balance to its original value
‣ Rename and delete budgets

Design

‣ Implemented CoreData to store pertinent information unique to the individual budgets
‣ Designed a class that efficiently populates the x and y axes of the bar graphs
‣ Constructed a backend design that stores the location information of each transaction
‣ Developed an efficient method for retrieving data by relying on the fast lookup of Swift dictionaries when dealing with transaction history
‣ Constructed a dictionary that maps the current date to the total amount spent on that particular day
‣ Buttons enable and disable dynamically based on the validity of input:
    – Balance must be between $0 and $1,000,000
    – Spend button only enables when your balance is enough based on current input
    – Renaming actions require the new name to be unique
‣ History of transactions records the date of transaction along with a corresponding color:
    – Red for money spent
    – Green for money added
    – Deleting history essentially reverts the transaction and restores your balance
‣ Creating names will add (a number) if the name already exists:
    – I.E. if "Mall" is already a budget name, naming new "Mall" budgets results in "Mall (1)", "Mall (2)", etc.
‣ Number Formatter:
    – Used a regular expression to ensure that user inputs cannot exceed past 2 decimal places
    – Dollar amounts include comma separators and a $ sign in the front
‣ Programmatically utilized alerts to record user input
‣ List of budgets and each budget's history is displayed using a UITableview
‣ Used IBOutlets to programmatically interact with user interface elements
‣ Defined an IBAction function that corrects button-enabling every time the user types or deletes a character