Giter VIP home page Giter VIP logo

pocketchange's Introduction

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

pocketchange's People

Contributors

nwtsai avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.