Interactive Demographics Website

The Interactive Global Demographics project is a web-based platform that provides demographic forecasts for 117 countries and numerous regions in China. It replaces a legacy Excel application, offering a modern, subscription-based service for users to access and model demographic data.

Key Features:

  • Query and combine demographic data (e.g., population, GDP) and forecast future trends.
  • Interactively modify indicators to model their impact on future outcomes.
  • Visualize data with customizable drag-and-drop charts.
  • Download all data for offline use.
  • Manage subscriptions (daily, monthly, yearly) via Stripe.
  • Admins can import new datasets, manage indicators, and oversee user accounts.

Responsibilities

As a Full-Stack Developer on this project, I led the technical transformation of the legacy Excel application into a dynamic web platform. My core responsibilities included:

  • Logic & Database: Migrated complex VBA forecasting formulas to JavaScript and architected the MySQL database to handle large-scale demographic data.
  • API & State Management: Built and integrated RESTful APIs and implemented a full Redux architecture for robust client-side state management.
  • UI Innovation: Engineered key user interface components, including a unique bi-directional "freezable" data table for advanced data analysis.

Role/Services

Full-Stack Developer

Client

Global Demographics (Hong Kong)

Tech Stack

Frontend:

  • React + TypeScript + Material UI, React Bootstrap, Sass
  • Redux, Redux-Saga, React Dropzone, Draggable, React hook form + Yup

Backend:

  • NodeJS + Express + MySQL + Sequelize
  • Passport, JWT, Bcrypt, Multer, Stripe, ...
Live Site
Slider-Project-Number-0
Slider-Project-Number-1
Slider-Project-Number-2
Slider-Project-Number-3
Slider-Project-Number-4
Slider-Project-Number-5
Slider-Project-Number-6
Slider-Project-Number-7
Slider-Project-Number-8
Slider-Project-Number2-0
Slider-Project-Number2-1
Slider-Project-Number2-2
Slider-Project-Number2-3
Slider-Project-Number2-4
Slider-Project-Number2-5
Slider-Project-Number2-6
Slider-Project-Number2-7
Slider-Project-Number2-8
00 /9

Let's Create Something