|
1 | | -# BRI vs Non-BRI Development Visualization |
| 1 | +# BRI vs Non-BRI Development Dashboard |
2 | 2 |
|
3 | | -Website link: https://com-480-data-visualization.github.io/DVX/ |
| 3 | +Live demo: https://com-480-data-visualization.github.io/DVX/ |
4 | 4 |
|
5 | 5 | ## Overview |
6 | 6 |
|
7 | | -This project explores whether countries participating in the Belt and Road Initiative (BRI) show different development trajectories compared to non-BRI countries. Instead of focusing on a single metric, we consider multiple dimensions such as economic growth, infrastructure, technology adoption, trade, and governance. |
| 7 | +This project is an interactive data story about the Belt and Road Initiative (BRI), launched in 2013. It asks whether BRI countries follow development trajectories that differ from non-BRI countries across multiple socio-economic dimensions, rather than relying on a single headline indicator. |
8 | 8 |
|
9 | | -## Data |
| 9 | +The dashboard is designed for students, researchers, and general readers who want a spatial and longitudinal view of global development. It combines a global map, time-series comparison, a country-level snapshot view, and a post-2013 change summary into one scrolling narrative. |
10 | 10 |
|
11 | | -The main dataset is the World Development Indicators (WDI) from the World Bank, which provides long-term socio-economic data for over 200 countries. |
| 11 | +## Intended Use |
12 | 12 |
|
13 | | -We also use external sources to identify BRI countries and regional groupings. Official BRI data was considered, but due to download limitations, it is only used as a supplementary source to fill missing values. |
| 13 | +The site is meant to be explored interactively. |
14 | 14 |
|
15 | | -## Method |
| 15 | +You can use it to: |
16 | 16 |
|
17 | | -- Countries are grouped into BRI (treatment) and non-BRI (control); they are also grouped by sub-continental groups |
18 | | -- 2013 is treated as the intervention year and the total range is from 2000 to 2025 |
19 | | -- Small gaps are filled using limited interpolation |
| 17 | +- compare BRI and non-BRI countries across time |
| 18 | +- inspect a country's classification and development profile from the world map |
| 19 | +- examine long-run trends for selected indicators and regions |
| 20 | +- study cross-country variation in a single year with the scatterplot snapshot |
| 21 | +- summarize how regional averages changed after the 2013 BRI announcement |
20 | 22 |
|
21 | | -## Variables |
| 23 | +The interface is intentionally descriptive rather than predictive. It supports exploratory analysis, classroom discussion, and process-book style presentation of the final findings. |
22 | 24 |
|
23 | | -We rename raw WDI indicators into shorter and more consistent variable names: |
| 25 | +## Technical Setup |
24 | 26 |
|
25 | | -- Country Name → `country` |
26 | | -- Country Code → `country_code` |
27 | | -- Year → `year` |
| 27 | +The project is a static front-end application built with: |
28 | 28 |
|
29 | | -### Infrastructure & Transport |
30 | | -- Access to electricity (% of population) → `electricity_access` |
31 | | -- Air transport, freight → `air_freight` |
32 | | -- Air transport, passengers → `air_passengers` |
33 | | -- Container port traffic → `container_traffic` |
34 | | -- Railways freight → `rail_freight` |
35 | | -- Railways passengers → `rail_passengers` |
| 29 | +- HTML5 for the page structure |
| 30 | +- CSS Grid and responsive CSS for the layout |
| 31 | +- D3.js for all data loading, scales, axes, map rendering, and chart interactions |
| 32 | +- vanilla JavaScript for navigation, filtering, and dashboard logic |
36 | 33 |
|
37 | | -### Economy & Trade |
38 | | -- GDP growth (annual %) → `gdp_growth` |
39 | | -- GDP per capita (current US$) → `gdp_pc` |
40 | | -- GNI per capita (Atlas method) → `gni_pc_atlas` |
41 | | -- Current account balance (% of GDP) → `cab_gdp_pct` |
42 | | -- Current account balance (US$) → `cab_usd` |
| 34 | +The main entry point is [index.html](index.html). The interactive logic is split between [js/script.js](js/script.js), which handles page behavior, and [js/vis.js](js/vis.js), which renders the visualizations. |
43 | 35 |
|
44 | | -- Exports growth → `exports_growth` |
45 | | -- Exports (US$) → `exports_usd` |
46 | | -- Export value index → `export_value_idx` |
47 | | -- Export volume index → `export_volume_idx` |
| 36 | +There is no build step and no package manager configuration in this repository. The site can be deployed directly as static files, which is why it works well with GitHub Pages. |
48 | 37 |
|
49 | | -- Imports (% of GDP) → `imports_gdp_pct` |
50 | | -- Import value index → `import_value_idx` |
51 | | -- Import volume index → `import_volume_idx` |
| 38 | +## How To Run Locally |
52 | 39 |
|
53 | | -### Society & Inequality |
54 | | -- Gini index → `gini` |
55 | | -- Unemployment (ILO) → `unemp_ilo` |
56 | | -- Unemployment (national) → `unemp_national` |
57 | | -- Internet users (% of population) → `internet_users_pct` |
| 40 | +Because the dashboard loads CSV and GeoJSON files with D3, it should be served over HTTP rather than opened directly from the file system. |
58 | 41 |
|
59 | | -### Governance |
60 | | -- Control of corruption (estimate) → `corr_control_est` |
61 | | -- Control of corruption (rank) → `corr_control_rank` |
62 | | -- Government effectiveness (estimate) → `gov_eff_est` |
63 | | -- Political stability (estimate) → `pol_stab_est` |
| 42 | +One simple option is to start a local web server from the project root: |
64 | 43 |
|
65 | | -### Trade Policy |
66 | | -- Tariff rate (applied) → `tariff_applied_pct` |
67 | | -- Tariff rate (MFN) → `tariff_mfn_pct` |
| 44 | +```bash |
| 45 | +python -m http.server 8000 |
| 46 | +``` |
68 | 47 |
|
69 | | -### Metadata |
70 | | -- Region → `region` |
71 | | -- DID group (BRI vs non-BRI) → `did_group` |
| 48 | +Then open: |
| 49 | + |
| 50 | +```text |
| 51 | +http://localhost:8000/ |
| 52 | +``` |
| 53 | + |
| 54 | +Any equivalent static server will also work. |
| 55 | + |
| 56 | +## Project Structure |
| 57 | + |
| 58 | +- [index.html](index.html): main landing page and scrolling narrative |
| 59 | +- [css/](css): shared styling, plot styling, and responsive rules |
| 60 | +- [js/script.js](js/script.js): navigation behavior, sticky header, and dashboard controls |
| 61 | +- [js/vis.js](js/vis.js): map, radar chart, line chart, snapshot scatterplot, and change chart logic |
| 62 | +- [data/](data): cleaned and imputed datasets, metadata, and the world map GeoJSON |
| 63 | +- [img/](img): logo and hero imagery |
| 64 | +- [milestone1/](milestone1): exploratory analysis notebook and archived data used during development |
| 65 | +- [milestone2/](milestone2): earlier static version of the website |
| 66 | + |
| 67 | +## Data Pipeline |
| 68 | + |
| 69 | +The main analytical dataset is [data/Final_Imputed_Panel_Data.csv](data/Final_Imputed_Panel_Data.csv). It contains country-year observations from 2000 onward and is used throughout the dashboard for the radar chart, time trends, snapshot scatterplot, and change chart. |
| 70 | + |
| 71 | +Supporting files include: |
| 72 | + |
| 73 | +- [data/bri_country_status.csv](data/bri_country_status.csv) for BRI, non-BRI, and China classification used by the world map |
| 74 | +- [data/world.geojson](data/world.geojson) for country boundaries |
| 75 | +- [data/Mapping_Dictionary.csv](data/Mapping_Dictionary.csv) for indicator name alignment |
| 76 | +- [data/WDI_Dataset.csv](data/WDI_Dataset.csv) and related WDI exports for the original World Bank source data |
| 77 | + |
| 78 | +The data were cleaned and harmonized to make cross-country comparison possible. In the final dashboard, the visual story relies on a common set of normalized or comparable indicators, while preserving the original country-year structure. |
| 79 | + |
| 80 | +## Main Visual Modules |
| 81 | + |
| 82 | +The final page follows a top-to-bottom narrative with four core modules: |
| 83 | + |
| 84 | +1. Geographic Overview: a choropleth world map that classifies countries by BRI participation, with a linked radar profile for the selected country. |
| 85 | +2. Time Trends Across Countries: a line chart comparing aggregated BRI, non-BRI, and China series, with reference markers for 2013 and 2019. |
| 86 | +3. Development Snapshot: a scatterplot showing country-level heterogeneity for a chosen year, with GDP per capita and internet usage as the main axes. |
| 87 | +4. Change Since the BRI Launch: a horizontal bar chart summarizing regional change between 2013 and a selected end year. |
| 88 | + |
| 89 | +## Notes For Maintainers |
| 90 | + |
| 91 | +- Keep the live site structure aligned with [index.html](index.html) and the scripts in [js/](js) if you add or remove sections. |
| 92 | +- If you update the datasets, keep the column names compatible with the parsing code in [js/vis.js](js/vis.js). |
| 93 | +- The map and charts depend on the files in [data/](data), so renaming or moving them requires updating the paths in the JavaScript code. |
| 94 | + |
| 95 | +## License And Attribution |
| 96 | + |
| 97 | +The dashboard is part of the COM-480 data visualization project. The visualization and data processing were created for academic presentation and evaluation purposes. Please retain attribution to the project when reusing the material. |
0 commit comments