.gitpod.yml
README.md
contract
    README.md
    as-pect.config.js
    asconfig.json
    assembly
        Models
            Expense.ts
            ExpenseManager.ts
        __tests__
            as-pect.d.ts
            main.spec.ts
        as_types.d.ts
        index.ts
        tsconfig.json
        utils
            database.ts
            enums.ts
    compile.js
    package-lock.json
    package.json
    scripts
        clear-expense.sh
        create.sh
        delete-expense.sh
        deploy.sh
        drop-expense.sh
        getexpenses.sh
        login.sh
        update-amount.sh
|
frontend
    README.md
    package.json
    public
        index.html
        manifest.json
        robots.txt
    src
        App.js
        components
            Chart
                Chart.css
                Chart.js
                ChartBar.css
                ChartBar.js
            Expenses
                ExpenseDate.css
                ExpenseDate.js
                ExpenseItem.css
                ExpenseItem.js
                Expenses.css
                Expenses.js
                ExpensesChart.js
                ExpensesFilter.css
                ExpensesFilter.js
                ExpensesList.css
                ExpensesList.js
            NewExpense
                ExpenseForm.css
                ExpenseForm.js
                NewExpense.css
                NewExpense.js
            UI
                Card.css
                Card.js
            home.js
            toast.js
        index.css
        index.js
        utils
            constants.js
            nearconfig.js
package.json

budgetApp Smart Contract
==================

A [smart contract] written in [AssemblyScript] for an app initialized with [create-near-app]

Quick Start
===========

Before you compile this code, you will need to install [Node.js] ≥ 12

Exploring The Code
==================

1. The main smart contract code lives in `assembly/index.ts`. 
2. Tests: You can run smart contract tests with the `./test` script. This runs
   standard AssemblyScript tests using [as-pect].

Running the Contract Locally
==================

You can run various aspects of the contract by via a bash terminal by running `./scripts/[FILE_PATH]` where `FILE_PATH` is the name of the script for the particular function you want to run as in the table below

| Function | FilePath |
| -------- | -------- |
| Deploy Contract | `deploy.sh` |
| Create A New Expense | `create.sh` |
| Get All Expenses | `getexpenses.sh` |
| Update Expense Amount | `update-amount.sh` |
| Clear An Expense | `clear-expense.sh` |
| Drop An Expense | `drop-expense.sh` |
| Delete An Expense | `delete-expense.sh` |

## Note
You can edit the scripts file should you need to deploy the contract at another address.
BudGitt
==================
A simple budget/expense Management App built on the NEAR BlockChain Protocol.
This app was initialized with [create-near-app]

Use Case
===========

BudGitt is a simple Expense Management implementatation to help users store and retrievefinancial budgets on the NEAR BlockChain. It offers functionalities for adding, clearing, updating and deleting expenses.

Live URL
==========

https://budgitt.netlify.app

Presentation Video
==============

https://www.loom.com/share/cd7177dfe753405f863838a62ba15043

Exploring The Code
==================

1. The "backend" code lives in the `/contract` folder. See the README there for
   more info.
2. The frontend code lives in the `/frontend` folder. `/src/App.js` is a great
   place to start exploring. View the README there for running the frontend locally
BudGitt FrontEnd
========

FrontEnd Source Code for BudGitt

Running Locally
==============

1. Install dependecies. `npm install`
2. Create `.env` file and set `REACT_APP_CONTRACT_ADDRESS` as your contract address if you deployed a new contract. This is optional.
3. Run project `npm start`
