# harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption architecture

> Architecture diagram of the GitHub repository harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption
- Repository: https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption

## Overview

This repository studies consumer behavior around Washington State EV adoption, with a stated goal of predicting the chosen EV type. Its interactive workflow is: a user uploads a CSV, inspects its structure, explores visualizations, and runs selectable regression, clustering, or classification analyses. The notebooks provide separate EDA, modeling, and final-analysis workspaces; the tree and README identify them, but sampled source does not establish their internal wiring. The supplied Excel dataset is distinct from the app’s CSV upload input.

Main entry points: [`streamlit.app/app.py`](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py) (Data Inspection), [`Dataset/Electric_Vehicle_Population_Data.xlsx`](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/Dataset/Electric_Vehicle_Population_Data.xlsx) (EV Population Data), [`ipynb files/Consumer Behavior Analysis for Electric Vehicle Adoption EDA.ipynb`](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/ipynb%20files/Consumer%20Behavior%20Analysis%20for%20Electric%20Vehicle%20Adoption%20EDA.ipynb) (EDA Notebook)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Project Data"]
  node_dataset["EV Population Data"]
end

subgraph group_interactive["Interactive App"]
  node_app["Streamlit App<br/>[app.py]"]
  node_upload["CSV Upload<br/>[app.py]"]
  node_inspection["Data Inspection<br/>[app.py]"]
  node_visualizations["Exploratory Charts<br/>[app.py]"]
  node_regression["Regression Models<br/>[app.py]"]
  node_clustering["K-Means Clustering<br/>[app.py]"]
  node_classification["RF Classification<br/>[app.py]"]
end

subgraph group_notebooks["Analysis Notebooks"]
  node_eda["EDA Notebook"]
  node_modeling["Modeling Notebook"]
  node_final["Final Notebook"]
end

node_user(("Analyst"))

node_user -->|"opens"| node_app
node_app -->|"offers"| node_upload
node_user -->|"uploads CSV"| node_upload
node_upload -->|"loads data"| node_inspection
node_inspection -->|"explores data"| node_visualizations
node_inspection -->|"selects data"| node_regression
node_inspection -->|"selects data"| node_clustering
node_inspection -->|"selects data"| node_classification
node_dataset -.-> node_eda

click node_dataset "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/Dataset/Electric_Vehicle_Population_Data.xlsx"
click node_app "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py"
click node_upload "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py"
click node_inspection "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py"
click node_visualizations "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py"
click node_regression "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py"
click node_clustering "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py"
click node_classification "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py"
click node_eda "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/ipynb%20files/Consumer%20Behavior%20Analysis%20for%20Electric%20Vehicle%20Adoption%20EDA.ipynb"
click node_modeling "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/ipynb%20files/Consumer%20Behavior%20Analysis%20for%20Electric%20Vehicle%20Adoption%20Modelling.ipynb"
click node_final "https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/ipynb%20files/Consumer%20Behavior%20Analysis%20for%20Electric%20Vehicle%20Adoption%20Final.ipynb"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dataset toneBlue
class node_app,node_upload,node_inspection,node_visualizations,node_regression,node_clustering,node_classification toneAmber
class node_eda,node_modeling,node_final toneMint
class node_user toneIndigo
```

## Components

### Project Data

- [EV Population Data](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/Dataset/Electric_Vehicle_Population_Data.xlsx): `Dataset/Electric_Vehicle_Population_Data.xlsx`

### Interactive App

- [Streamlit App](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py): `streamlit.app/app.py`
- [CSV Upload](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py): `streamlit.app/app.py`
- [Data Inspection](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py): `streamlit.app/app.py`
- [Exploratory Charts](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py): `streamlit.app/app.py`
- [Regression Models](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py): `streamlit.app/app.py`
- [K-Means Clustering](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py): `streamlit.app/app.py`
- [RF Classification](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/streamlit.app/app.py): `streamlit.app/app.py`

### Analysis Notebooks

- [EDA Notebook](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/ipynb%20files/Consumer%20Behavior%20Analysis%20for%20Electric%20Vehicle%20Adoption%20EDA.ipynb): `ipynb files/Consumer Behavior Analysis for Electric Vehicle Adoption EDA.ipynb`
- [Modeling Notebook](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/ipynb%20files/Consumer%20Behavior%20Analysis%20for%20Electric%20Vehicle%20Adoption%20Modelling.ipynb): `ipynb files/Consumer Behavior Analysis for Electric Vehicle Adoption Modelling.ipynb`
- [Final Notebook](https://github.com/harshachakravarthy/consumer-behavior-analysis-for-electric-vehicle-adoption/blob/main/ipynb%20files/Consumer%20Behavior%20Analysis%20for%20Electric%20Vehicle%20Adoption%20Final.ipynb): `ipynb files/Consumer Behavior Analysis for Electric Vehicle Adoption Final.ipynb`

### Other components

- **Analyst**

## Connections

- Analyst → Streamlit App: opens
- Streamlit App → CSV Upload: offers
- Analyst → CSV Upload: uploads CSV
- CSV Upload → Data Inspection: loads data
- Data Inspection → Exploratory Charts: explores data
- Data Inspection → Regression Models: selects data
- Data Inspection → K-Means Clustering: selects data
- Data Inspection → RF Classification: selects data
- EV Population Data → EDA Notebook
