This project is a budget tracking dashboard built using Plotly Dash. The dashboard provides an interactive way to monitor Income, Expense, and Savings over time through dynamic drop-downs, histograms, and line graphs.
- Plotly Dash Integration: Utilizes Plotly Dash to create an interactive web application.
- Dynamic Drop-Downs: Includes three dynamic drop-downs for selecting types, months, and years.
- Data Visualization: Generates histograms and line graphs to visualize Income, Expense, and Savings over time.
-
Clone the repository:
git clone https://github.com/vahidinj/budget_dash.git cd budget_dash -
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS and Linux:
source venv/bin/activate
- On Windows:
-
Install the required packages:
pip install -r requirements.txt
-
Run the application:
python main.py
-
Open the dashboard: Open your web browser and go to
http://127.0.0.1:8050/.
- : Entry point for the application. Sets up and runs the Dash server.
- : Contains the layout and visualization components for the dashboard.
- : Defines the layout of the dashboard.
line_chart.py: Generates the line chart for visualizing data.bar_chart.py: Generates the bar chart for visualizing data.type_dropdown.py: Creates the type selection drop-down.month_dropdown.py: Creates the month selection drop-down.year_dropdown.py: Creates the year selection drop-down.
- : Contains data loading and schema definitions.
- : Loads the budget tracking data from an Excel file.
DataSchema.py: Defines the schema for the data.
assets/: Contains any static assets (e.g., CSS files) used by the dashboard.
The data for the dashboard is loaded from an Excel file located at . The data includes columns for Date, Type, Category, Amount, and other relevant information.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Plotly Dash for providing the framework for building interactive web applications.
- Bootstrap for styling the dashboard components.