# kemboijebby/nairobihouseprices-prediction architecture

> Architecture diagram of the GitHub repository kemboijebby/nairobihouseprices-prediction, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kemboijebby/nairobihouseprices-prediction
- Repository: https://github.com/kemboijebby/nairobihouseprices-prediction

## Overview

This repository is a Nairobi rental-property data collection and analysis project. Its visible workflow is source-specific web scraping into tabular data, followed by dataset consolidation and exploratory analysis in notebooks. The sampled scrapers show HTTP requests, HTML parsing, and CSV output; the README provides no further workflow documentation. Notebook and dataset roles are inferred from their filenames, so their data-flow connections are omitted where the excerpts do not establish them.

Main entry points: [`WebScapping/property24.py`](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/property24.py) (Property24 scraper), [`WebScapping/rent_data.py`](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/rent_data.py) (BuyRent Kenya scraper), [`WebScapping/kenyapropety.py`](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/kenyapropety.py) (Kenya Property scraper), [`WebScapping/prop_pro.py`](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/prop_pro.py) (PropertyPro scraper)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_collection["Data collection"]
  node_buyrent["BuyRent Kenya scraper<br/>[rent_data.py]"]
  node_property24["Property24 scraper<br/>[property24.py]"]
  node_kenyaproperty["Kenya Property scraper<br/>[kenyapropety.py]"]
  node_propertypro["PropertyPro scraper<br/>[prop_pro.py]"]
end

subgraph group_datasets["Property datasets"]
  node_property24_csv[("Property24 scrape output")]
  node_kenya_csv[("Kenya property data<br/>[kenya_property.csv]")]
  node_propertypro_csv[("PropertyPro data<br/>[property_pro.csv]")]
  node_rent_csv[("Buy-rent data<br/>[buy_rent_final.csv]")]
end

subgraph group_analysis["Consolidation and analysis"]
  node_merge_notebook["Property data merger"]
  node_consolidation_notebook["Dataset consolidation<br/>[data_cons.ipynb]"]
  node_eda["Housing EDA<br/>[eda_housing.ipynb]"]
  node_eda_general["Exploratory analysis<br/>[eda.ipynb]"]
  node_rent_analysis["Rent comparison"]
end

node_actor(("Data analyst"))
node_buyrent_site["BuyRent Kenya"]
node_property24_site["Property24"]
node_kenyaproperty_site["Kenya Property Centre"]
node_propertypro_site["PropertyPro"]

node_buyrent -->|"requests listings"| node_buyrent_site
node_property24 -->|"requests listings"| node_property24_site
node_kenyaproperty -->|"requests listings"| node_kenyaproperty_site
node_propertypro -->|"requests listings"| node_propertypro_site
node_property24 -->|"writes CSV"| node_property24_csv
node_actor -->|"analyzes data"| node_merge_notebook
node_actor -->|"consolidates data"| node_consolidation_notebook
node_actor -->|"explores housing"| node_eda
node_actor -->|"explores data"| node_eda_general
node_actor -->|"compares rents"| node_rent_analysis

click node_buyrent "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/rent_data.py"
click node_property24 "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/property24.py"
click node_kenyaproperty "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/kenyapropety.py"
click node_propertypro "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/prop_pro.py"
click node_property24_csv "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/property24_final.csv"
click node_kenya_csv "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/data/kenya_property.csv"
click node_propertypro_csv "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/data/property_pro.csv"
click node_rent_csv "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/data/buy_rent_final.csv"
click node_merge_notebook "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/property_data_merger.ipynb"
click node_consolidation_notebook "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/data_cons.ipynb"
click node_eda "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/eda_housing.ipynb"
click node_eda_general "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/eda.ipynb"
click node_rent_analysis "https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/prop24_rent_ke.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_buyrent,node_property24,node_kenyaproperty,node_propertypro toneBlue
class node_property24_csv,node_kenya_csv,node_propertypro_csv,node_rent_csv toneAmber
class node_merge_notebook,node_consolidation_notebook,node_eda,node_eda_general,node_rent_analysis toneMint
class node_actor,node_buyrent_site,node_property24_site,node_kenyaproperty_site,node_propertypro_site toneIndigo
```

## Components

### Data collection

- [BuyRent Kenya scraper](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/rent_data.py): `WebScapping/rent_data.py`
- [Property24 scraper](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/property24.py): `WebScapping/property24.py`
- [Kenya Property scraper](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/kenyapropety.py): `WebScapping/kenyapropety.py`
- [PropertyPro scraper](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/prop_pro.py): `WebScapping/prop_pro.py`

### Property datasets

- [Property24 scrape output](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/property24_final.csv): `WebScapping/property24_final.csv`
- [Kenya property data](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/data/kenya_property.csv): `data/kenya_property.csv`
- [PropertyPro data](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/data/property_pro.csv): `data/property_pro.csv`
- [Buy-rent data](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/data/buy_rent_final.csv): `data/buy_rent_final.csv`

### Consolidation and analysis

- [Property data merger](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/WebScapping/property_data_merger.ipynb): `WebScapping/property_data_merger.ipynb`
- [Dataset consolidation](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/data_cons.ipynb): `data_cons.ipynb`
- [Housing EDA](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/eda_housing.ipynb): `eda_housing.ipynb`
- [Exploratory analysis](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/eda.ipynb): `eda.ipynb`
- [Rent comparison](https://github.com/kemboijebby/nairobihouseprices-prediction/blob/main/prop24_rent_ke.ipynb): `prop24_rent_ke.ipynb`

### Other components

- **Data analyst**
- **BuyRent Kenya**
- **Property24**
- **Kenya Property Centre**
- **PropertyPro**

## Connections

- BuyRent Kenya scraper → BuyRent Kenya: requests listings (evidence: `WebScapping/rent_data.py`)
- Property24 scraper → Property24: requests listings (evidence: `WebScapping/property24.py`)
- Kenya Property scraper → Kenya Property Centre: requests listings (evidence: `WebScapping/kenyapropety.py`)
- PropertyPro scraper → PropertyPro: requests listings (evidence: `WebScapping/prop_pro.py`)
- Property24 scraper → Property24 scrape output: writes CSV (evidence: `WebScapping/property24.py`)
- Data analyst → Property data merger: analyzes data
- Data analyst → Dataset consolidation: consolidates data
- Data analyst → Housing EDA: explores housing
- Data analyst → Exploratory analysis: explores data
- Data analyst → Rent comparison: compares rents
