From a technical perspective, we have a microservice that serves a UI which is written in ASP.NET Core 2.0. It pulls data by talking to various RESTful endpoints exposed by a Node.js API that is served by another microservice. The actual content storing the details about historic events (that is served by an API) is stored in various JSON files that are persisted as a blob on Azure Storage.
In a nutshell, from an end user standpoint, the web app home page looks like the image below:
When a user wants to learn more about a particular historic event, they can either select a particular historic event from the top menu, or they can simply click on the description of a particular event provided on the home page.
You can follow more of Razi’s demo here.