Highly scalable and highly available progressive single page web app

I developed a highly scalable, highly available progressive single page web app using Node.js, React and AWS.

Below are the technologies I used in building this app.

Demo: https://techvideos.jainath.com/

Node.js
React & Redux
Bootstrap 4
Webpack 4
REST API
Serverless Framework/Micro service
AWS – Lambda functions
AWS – DynamoDB
AWS – S3 Bucket
AWS – CloudFront
AWS – Certificate
AWS – API Gateway
AWS – Services
YouTube API
PWA (Progressive Web App)
Docker
GitLab – Source code hosting
GitLab – Pipeline

Tech videos architecture

Very soon I will write a detail article on this.

Dockerizing a Node.js app with Debugger

Created a node.js app with express.js and debugging support which runs inside a docker container.

Check below code hosted in gitlab.

https://gitlab.com/jainath/docker-nodejs-express-api

Getting started:

  • You need docker installed.
  • Run docker-compose build to Build or rebuild services.
  • Run docker-compose up which will create and start containers.
  • Node.js web app is running at http://localhost:3000.
  • Debugger is running at 9232 port. Check this link to know the status http://localhost:9232/json/status.
  • I have already added configuration for VS Code. If you use different IDE, use below configuration
    Port: 9232
    Remote root: /usr/src/app

To learn more about debugger check below links:
https://code.visualstudio.com/docs/editor/debugging
https://nodejs.org/api/debugger.html

To learn more about docker
https://docs.docker.com/

Creating a web application which supports multiple languages

This demo application show you how to create web application which supports multiple languages.

Step 1.
Put below meta tag in HTML HEAD section
For HTML5 applications
<meta charset="UTF-8">
For HTML 4.01 applications
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

Step 2.
If your application invloves data which comes from MySQL.
Make sure your MySQL table charset/collation is set to UTF8
DEFAULT CHARSET=utf8

Step 3.
Set MySQL charset to utf8 after creating MySQL connection.
$mysqli->set_charset("utf8");

That’s it. Your application is ready to support multiple languages.

You can download this MultiLanguageWebApplication demo code from
Github