Tools and Technologies

· NPM: npm is a widely used tool for building the code that works on the package.json file. We are building a code with installation of the required dependencies.

· Docker: In our project, we are using a container deployment and Amazon Elastic Kubernetes Service deployment for the backend service, microservices, and frontend of the site. After cloning the repo, we are building a new image on every push event to the repository. We used Docker Compose for deploying the code on the server, and each newly built image is being stored on the AWS Elastic Container Registry.

· Docker-compose: For deploying the code on the server, we have a separate Docker-compose.yml file. This file is triggered with GitHub actions workflow and the latest built image on push event[A1] .[A2] We also allocate different ports for the frontend and backend containers. For each container, we have a different Docker Compose file.

· Postgres: We used a containerised setup and AWS RDS with a PostgreSQL database for the backend data storage.[A3] We also implemented a mechanism for daily backups in AWS RDS and added a Docker volume for backups and data retrieval.[A4] For each environment, there is a separate PostgreSQL database. These are as follows:

§ Quality Assurance (QA): Containerised.

§ Development (Dev): Containerised.

§ Production (Prod): Private instance.

· AWS: We have adopted an AWS cloud for configuring virtual machines (VMs) and storing the database data, monitoring the servers, checking the logs for the containers, and giving access to users for the resources we configure in AWS. The resources we used in the project are EC2, AWS S3, IAM, and Cloudwatch.

· EC2: We have used Amazon EC2 from AWS to launch servers in different environments, such as development, staging, and production. For these, we selected various types of VMs with different configurations. Each VM has a separate security group for accessing the servers.

· AWS S3: In this project, we have used AWS S3 for storing the certificates (Verifiable Credentials) in the bucket.

· IAM: To provide users with limited access to specific resources, we used IAM in this project. We also created roles with read-only permissions for CloudWatch Logs streams. Custom policies were also defined to grant users access to specific resources with a specific set of permissions.[A5]


[A1]This should either be “the push event” or “push events”.

[A2]Please check this sentence after editing. The original meaning was unclear.

[A3]Same here.

[A4]Same here.

[A5]This paragraph was tricky to edit. Please check that the original meaning has been retained.

Last updated