Website Technologies

Here is a list of the main technologies used:

  • Python
  • Flask
  • Terraform
  • HTML & CSS

Python

Python is a programming language which can be used in a variety of scenarios. It can be used to automate tasks, build websites, software packages or even data analysis with packages like Pandas. I have provisioned a lambda which contains code using Python.


Packages

flask - The flask package is a web framework which can be developed in Python.
boto3 - The boto3 package which is used to manage and invoke actions on AWS like send a message using SNS.
aws-wsgi - The aws-wsgi package allows you to use WSGI-compatible frameworks like Flask with the AWS API Gateway/ Lambda proxy integration.

Flask

Flask is framework which is highly used along with Python when creating web applications. There is a great tool in S3 where you can host a website, however, the downside to this is that it is a static website. Using lambdas and the flask framework allows me to create a dynamic website which can be used to call API endpoints. An example of this on my website is in the contact page, where the form uses a POST method when the form is filled and submitted.

Terraform

Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. All the infrastructure in this website is provisioned in Amazon Web Services (AWS) using Terraform. This helps with ensuring all the changes are automated in the code. If I manually provisioned these resources, it would make if difficult for me to manage and see where it ties into the infrastructure. Developing the infrastructure as code also makes it easier to provision the resources on multiple AWS accounts with ease if I needed.

HTML & CSS

HTML and CSS are used as the core technologies for the web pages. The HTML provides the structure of the webpages for example the headings and paragraphs. The CSS the handles the visual layout like the colours of the background. Having the styles specified separately from the HTML allows me to dynamically change the visual layouts. This means if I wanted to change the colour of a section I can change it in the CSS, and it'll change everywhere it is specified in the HTML.