A budget application that allows users to edit and add expenses. The application also provides users to see their expenses in a linear graph over the selected month. The graphs represent data for up to five months, plus the current month. The app also provides the list of expenses and a budget interface that displays monthly expense data against budgeted amounts in each category.
- If Node.js is not already installed: Download
-
Clone the repository
git clone [https://github.com/Abigail-Diaz/Budget-Tracker.git] -
Navigate to the project
cd Budget-Tracker -
Install dependencies
npm install
Start the Vite development server:
npm run dev
This will provide a local URL.
(usually http://localhost:5173/)
This project uses Airtable as its backend database to store transaction data and budget categories.
-
Create an Airtable base
Go to https://airtable.com and create a new base (or use an existing one). -
Create Two Tables
Your base should have two tables:transactions: for storing individual transaction recordsBudget_Categories: for storing budget categories and limits
-
Add Fields
transactionstable should include:Date(Date)Amount(Number)Category(Long Text)Description(Long text)
Budget_Categoriestable should include:name(Single Line Text)amount(Number)
You can import data using Airtable’s CSV Import feature:
- In each table, click the dropdown → "Import Data" → "CSV file"
- The CSV files are in the /data folder at the project root.
- Upload the appropriate CSV file on each corresponding table in the Airtable:
transactions.csv(For testing and data visualization)Budget_Categories.csv(Required since budget categories are not added by users)
Create a .env.local file in the root of your project based on the provided example:
VITE_PAT=your_airtable_personal_access_token
VITE_BASE_ID=your_airtable_base_id
VITE_TABLE_TRANSACTIONS=transactions
VITE_TABLE_CATEGORIES=Budget_Categories- VITE_PAT: Create a personal access token at https://airtable.com/account under Developer Hub > Tokens
- VITE_BASE_ID: Find this in your Airtable base’s URL (airtable.com/appXXXXXXXXXXXXXX/...)