The overview of the project is described in my previous post.
I used several software and services to build the app. In this post, I am going to enumerate them. Overview of and the relationship of the software and services are depicted in this figure.
the app is based on the Python-Flask module. Flask is suitable to create a microservice such as a blog or a one-page website. Although I considered using Django, which is favorable for more complex and larger service, I chose flask since I am a novice to web app development and could not predict the size of the app. Python is my second most familiar language next to R, so using Python was a natural decision for me.
AWS Elastic beanstalk
To host the Flask app on the web, I selected AWS Elasticbeanstalk. AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python...etc.
PostGIS is a Relational Database based on PostgreSQL. It is specialized in handling geospatial data. Since one of the important feature of my app is mapping the location of the opened/closed stores on maps, I need to store the spatial information (i.e. latitude and longitude) and non-spatial attributes (i.e. open date, address, link to external sites) in an RDS.
AWS Relational Database Server
Once the database is created, it also should be hosted on a web server. I chose AWS RDS, which is available for PostgreSQL.
to enhance the quality of visual presentation of the open/close data, I used leaflet.js and chart.js. Leaflet.js is used to create an interactive map. Chart.js was employed to make a line chart that shows the time-series change in the number of open and close within a selected region.