0% found this document useful (0 votes)
32 views40 pages

Báo Cáo

Báo cáo

Uploaded by

Dang Han
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views40 pages

Báo Cáo

Báo cáo

Uploaded by

Dang Han
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 40

VIETNAM - KOREA UNIVERSITY OF INFORMATION AND

COMMUNICATION TECHNOLOGY
Faculty of Computer Science

BASIC PROJECT 4
Building an E-commerce website-MixiShop

Students: Dinh Minh Khoa


Dang Cong Gia Han
Class: 23GIT
Instructor: Ph.D. Nguyen Huu Nhat Minh

Da Nang, 2024 November

1
ACKNOWLEDGEMENT

We express our heartfelt gratitude to all those who have contributed to this project,
with special thanks to Ph.D. Nguyen Huu Nhat Minh. Your support and guidance have
been invaluable in making this project a reality

Students,
Dinh Minh Khoa,
Dang Cong Gia Han

2
INSTRUCTOR’S COMMENTS

…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
…………………………………………………………………………………………...
……………………………………………………

Da Nang, 2024 …………………

Instructor

3
TABLE OF CONTENTS

4
LIST OF ACRONYMS

ACRONYMS CONTENT

HTML Hyper Text Markup Language

CSS Cascading Style Sheets

JS JavaScript

BE Backend

PHP Hypertext Preprocessor

Laravel Laravel

API Application programming interface

LIST OF PICTURES

5
INTRODUCTION

1. Introduction

In recent years, e-commerce has become a widespread trend, but traditional platforms
often lack a special connection with fan communities. Recognizing this potential,
Mixishop was created with the aim of targeting users who are fans of a ấy. Mixishop is
not just an ordinary shopping platform—it is a dedicated space where fans can
discover exclusive products, themed merchandise, and personalized services tailored
to their interests. With a user-friendly interface and specially curated content,
Mixishop offers a unique shopping experience that fosters deeper connections within
the fan community.

2. Project goal
Project Goal: The goal of the project is to develop and launch a fan-centric e-
commerce platform inspired by Mixishop, tailored for the specific community of fans.
As students, we aim to leverage modern web development technologies to create an
affordable and accessible platform where fans can easily find exclusive merchandise,
customized items, and other products related to their interests.
The project seeks to provide a personalized and engaging shopping experience,
fostering a stronger connection between the fans and their shared interests.
Furthermore, this project aims to enhance our practical skills in web development, user
interface design, and customer interaction, while also showcasing the potential of
combining e-commerce with community-driven platforms. Ultimately, we hope this
initiative will contribute to the growth of niche markets and demonstrate the
importance of understanding target audiences in online business ventures. 3.
Implementation plan
- Define project scope and objectives: Clearly outline the goals and objectives
of the project.
- Conduct a feasibility study: Analyze the feasibility of the project.
- Develop a project schedule: Create a project schedule that outlines all of the
tasks, dependencies, and milestones needed to complete the project.
- Assemble a team: Assemble a team of individuals with the necessary skills and
experience to carry out the project.
- Begin work: Start work on the project, following the project plan and adhering
to the chosen project management methodology.
1
- Monitor progress: Regularly monitor the project's progress to ensure it is on
track and make any necessary adjustments.
- Handle issues and risks: Identify and address any issues or risks that arise
during the project.
- Complete the project: Complete the project and deliver the final product or
service.
- Evaluate the project: Evaluate the project's success by comparing its results to
the project scope and goals. Use this information to identify opportunities for
improvement in future projects.
- Close out the project: Close out the project by completing any remaining
administrative tasks and documenting the project's results and lessons learned.

2
Chapter 1. OVERVIEW

1. PROGRAMMING LANGUAGES
1.1. HTML
The HyperText Markup Language or HTML is the standard markup language
for documents designed to be displayed in a web browser. It is frequently assisted by
technologies such as Cascading Style Sheets and scripting languages such as
JavaScript.

Picture 1.1.1 : HTML

1.2. CSS
Cascading Style Sheets is a style sheet language used for describing the
presentation of a document written in a markup language such as HTML or XML.
CSS is a cornerstone technology of the World Wide Web, alongside HTML and
JavaScript.

Picture 1.1.2 : CSS


1.3. JavaScript
JavaScript, often abbreviated as JS [3], is a programming language that is one
of the core technologies of the World Wide Web, alongside HTML and CSS. As of
2022, 98% of websites use JavaScript on the client side for webpage behavior, often
incorporating third-party libraries.

3
Picture 1.1.3: Javascript

1.4. PHP
Hypertext Preprocessor (PHP) [4] is an open-source, free server-side scripting
language widely used in web development. According to Web Technology Surveys,
PHP is used by 78.1% of all websites, including high-traffic websites like Facebook
and Wikipedia.

Picture 1.1.4: PHP


2. FRAMEWORKS & LIBRARIES:
2.1. Laravel
Laravel is a web application framework with expressive, elegant syntax. A web
framework provides a structure and starting point for creating your application,
allowing you to focus on creating something amazing while we sweat the
details.Laravel strives to provide an amazing developer experience while providing
powerful features such as thorough dependency injection, an expressive database
abstraction layer, queues and scheduled jobs, unit and integration testing, and more.

Picture 1.2.1 Laravel

4
2.2.Bootstrap
Bootstrap is a free, open sources front-end development framework for
the creation of websites and web apps. Designed to enable responsive development of
mobile-first websites, Bootstrap provides a collection of syntax for template
designs.As a framework, Bootstrap includes the basics for responsive web
development, so developers only need to insert the code into a pre-defined grid
system. The Bootstrap framework is built on Hypertext Markup Language (HTML),
cascading style sheets (CSS) and JavaScript. Web developers using Bootstrap can
build websites much faster without spending time worrying about basic commands and
functions.

Picture 1.2.2 Bootstrap

2.3. Tailwind CSS


Tailwind CSS [9] is a utility-first CSS framework designed to enable
users to create applications faster and easier. You can use utility classes to control the
layout, color, spacing, typography, shadows, and more to create a completely custom
component design — without leaving your HTML or writing a single line of custom
CSS.

Pic 1.2.6 FastAPI

3. OTHER TECHNOLOGIES:
5
3.4. Git
Git is a distributed version control system that helps developers track changes
in their source code over time. Created by Linus Torvalds in 2005, Git is designed to
handle everything from small to very large projects with speed and efficiency. It is
widely used in software development for version control, enabling teams to collaborate
on projects, maintain a history of changes, and manage multiple versions of their code.

Pic 1.3.4 Git


3.5. Gitlab CI/CD
Github is a developer platform that allows developers to create, store, manage
and share their code. It uses Git software, which provides distributed version control of
access control, bug tracking, software feature requests, task management, continuous
integration, and wikis for every project.

Pic 1.3.5 GitHub

6
3.6.MySQL
MySQL is an open-source relational database management system developed
by Oracle Corporation.It uses Structed Query Language (SQL) for database
management and is known for its reliability, speed and ease of use.MySQL is widely
used for various applications, from small websites to large-scale enterprise systems.

Picture 1.3.6 MySQL

7
Chapter 2. SYSTEM ANALYSIS AND DESIGN

1. Requirement modeling
1.1. Functional requirements
Actors list: The system needs to provide the following functionalities:
1) Customer:
● Give feedbacks: provide feedback about products or shopping experience
● Create an account: login or register to use the website
● View products: Allows customers to browse available products by prices or
category
● Place order: order items available on website
● Confirm order: Confirms the customer's order details before payment.
● Cancel order: cancel ordered items in case you don’t want or any problems
● View order status: Customers can track the status of their order
2)
Use case diagram

8
Figure 11. User’s Use Case Diagram
User’s Use case specification:

Use Case Description

Login Description: Registered users log in to the system.

Actors: Customer

Preconditions: The system is operational, and the user has a registered


account.

9
Basic Flow:

1. Customer enters username and password.

2. System validates credentials.

3. If valid, the customer is logged in; otherwise, an error message is


displayed.

Alternative Flow:

- If credentials are invalid, the system prompts the user to enter


correct information.

Postconditions: The customer is logged into the system.

Register Description: Customer can register for a new account.

Actors: Customer

Preconditions: The system is operational, and the customer does not


have an existing account.

Basic Flow:

1. Customer selects the option to register.

2. System prompts for customer information (username, password,


etc.).

3. Customer enters the required information.

4. System validates the entered information.

5. If valid, the system creates a new user account; otherwise, an error


message is displayed.

10
Alternative Flow:

- If information is incomplete or invalid, the system prompts the user


to correct the details.

Postconditions: User successfully registers for a new account.

Place order Description: Order items available on website

Actors: Customer

Preconditions: The customer is logged into the system.

Basic Flow:

1. Customer selects the items and quantity on the website

2. Customer proceeds to checkout

3.System processes the payment

4.System confirmed the order

Postconditions: Customer successfully order items on website

Confirm Description: customer confirmed order delivered successully


order
Actors: Customer

Preconditions: The customer has received the delivered order

Basic Flow:

1. Customer receives the delivered order

2. Customer go to order-tracking page and confirms successful


11
delivery

3.System update order’s status

4. System saves the business card in the customer's profile.

Postconditions: customer successfully creates a business card.

View Description: view available products on website


products
Actors: Customer

Preconditions:

Basic Flow:

1. Customer selects the products they want

Postconditions:

Cancel Description: customer cancel the order they’ve placed


order
Actors: Customer

Preconditions: The customer has placed an order but the order is


being prepared.

Basic Flow:

1. Customer selects the order they’ve placed

2. System prompts for confirmation.

3. If confirmed, the system deletes the placed order, otherwise, the


order will continue.

12
Postconditions: customer's placed order is cancelled if confirmed.

View order Description: Check the current status of a placed order.


status
Actors: Customer has placed an order

Preconditions: The customer has placed an order and is currently


being shipped

Basic Flow:

1. Customer selects the "Track Order" option.

2. The system displays a list of the customer's placed orders.

3. The customer selects a specific order to view details.

4. The system displays detailed information of the order.

Postconditions:

2. Behavior modeling
Activity diagram

Register Account

13
Figure 13. Register Account

Login

14
Figure 13. Login

Create Profile

15
Figure 14. Create Profile

Lookup Profile

16
Figure 15. Lookup Profile

Write Tag

17
Figure 16. Write Tag

State diagram

Figure 17. State Diagram

18
2. Structure modeling
2.1. Classes

User class:

Serial Field name Data type Notes

1 UserID Number Identifier

2 Email Text Email

3 Username Text

4 Name Text

5 Password Text

BusinessCard class:

Serial Field name Data type Notes

1 ID Number Identifier

2 Name String

3 Slogan String

4 Avatar String Avatar path on server

Contact class:

Serial Field name Data type Notes

1 Name String Name of contact


19
2 Link String Link contact

2.2 Class diagram

Figure 12. Class Diagram

20
Chapter 3. INFRASTRUCTURE DESIGN

2.1. Microservices
infrastructure design
2.1.1. Deployment Diagram

Figure 3.1.1 Deployment Diagram

- Deployment diagram explanation:


Containers:

● Application container: A container running the main application logic, likely


handling business processes, exposed via port 8001.
● Image container: A container that serves images to clients, exposed via port
8002. This could handle image-related requests such as uploads or rendering
images.
● Backend for shared card container: A container running be_shared_card
backend, a microservice for CRUD and manage websocket for shared card,
exposed via port 8003 and connected to backend main container via docker
network for authentication.

21
● MongoDB container: A container running the MongoDB database, storing
data for the application. It is connected to the application container via a Docker
network.

Network (mongo_network)

● All the containers are connected to a virtual Docker network called


mongo_network. This internal network allows the containers (Application
Server, Image Server, MongoDB) to communicate securely with each other.
● The network isolates the database from direct client access, meaning only other
containers within the Docker Host can communicate with it.

Volume:

● app_volume: This represents a persistent volume for the containers. It is being


used by MongoDB container to store data that persists even if the container
restarts.

Client Browser

● This represents the end-user who is accessing the system via a web browser.
● The client browser connects to the Application Server through HTTP on port
8001 to retrieve HTML, JavaScript, or JSON responses from the application.
These responses are typically the rendered UI or data needed for the app.
● The client also connects to the Image Server through HTTP on port 8002 to
request or upload images, such as profile pictures, product images, etc.

2.1.2. General CICD procedure


- CICD pipeline diagram

Figure 3.1.2 CICD Pipeline Diagram

Steps of the Process:

Developer pushes code: The developer commits changes to the code repository
(GitLab).

CI/CD runner executes the CI/CD pipeline: The CI/CD runner, which is
responsible for automating the workflow, triggers the Continuous
22
Integration/Continuous Deployment (CI/CD) pipeline as soon as code is
pushed. A CI/CD system could be GitLab CI, Jenkins, CircleCI, etc.

CI/CD runner builds a Docker image from the code and pushes it to a
container registry: The runner builds a Docker image from the updated
codebase. This Docker image contains the application, its dependencies, and
environment settings. The image is then pushed to a container registry, where it
can be accessed for deployment.

CI/CD runner SSHs into the AWS instance to run commands: Once the
Docker image is pushed to the registry, the runner connects to an AWS EC2
instance via SSH and runs necessary commands. This is the automation part
where no manual intervention is required.

AWS pulls code from sigconn-tap-compose: The EC2 instance pulls the
Docker Compose configuration or any other code needed for deployment from
the repository (Sigconn-tap-compose). This repository likely contains the
Docker Compose files and related configurations.

AWS runs the Docker Compose file to deploy: Finally, the EC2 instance uses
Docker Compose to start the containers based on the latest Docker images. This
file orchestrates the setup of the backend, frontend, database, and other services.

-In Sigconn Tap fe, be and image repositories:

Figure 3.1.2.1 Sigconn Pipeline for Repositories

-In Sigconn Tap Compose:

23
Figure 3.1.2.2 Sigconn Pipeline for Compose

2.2. Design implementation


2.2.1. Create AWS instance:

Figure 3.2.1 AWS instance


Instance information:
- Instance type: t2.micro
- Availability Zone: ap-southeast-2a
- Public IPv4: 13.238.115.114
- OS: Amazon Linux 2023.5.20240805
- Storage: 10GB
- RAM: 1GB
Install software for the project deployment.
- Docker version 25.0.5, build 5dc9bcc
- Docker Compose version v2.29.2
- git version 2.40.16
- nginx version: nginx/1.24.0

2.2.2. CI implementation
- CI implementation on be-main:

24
Figure 3.2.2.1 Be-main Implementation

- CI implementation on be-img:

Figure 3.2.2.2 Be-img Implementation


- CI implementation on be_shared_card:

Figure 3.2.2.3 Be_shared_card Implementation


- CI implementation on frontend:

Figure 3.2.2.4 Frontend Implementation

In sigconn-tap-mobile repository, there’s nothing to build and deploy on any


server so we don’t need CI implementation. In sigconn-tap-compose repository, the
repository is just for the server to pull the docker images pushed to GitLab registry and
run them so we don’t need CI implementation.
2.2.3. Docker Compose file building for deployment

- Define networks:

25
Figure 3.2.3.1 Network-defining Code
- Define database service and set environment variables, and volumes:

Figure 3.2.3.2 Services-defining Code

- Set up for pulling and running backend-main:

Figure 3.2.3.3 Backend-main Setup

- Set up for pulling and running backend-img:

Figure 3.2.3.4 Backend-img Setup


- Set up for pulling and running be-shared-card:

26
Figure 3.2.3.5 Be-shared-card Setup

- Set up for pulling and running frontend image:

Figure 3.2.3.5 Frontend Setup

2.2.4. CD implementation
- CD implementation on every repositories(except sigconn-tap-mobile):

Figure 3.2.4.1 CD Implementation


In sigconn-tap-mobile repository, there’s nothing to build and deploy on any
server so we don’t need CD implementation

27
2.2.5. Proxy configuration with Nginx

Figure 3.2.5.1 Nginx Proxy Configuration

To ensure our ReactJS application, which runs on port 3000, is accessible via a
standard HTTP port (80) and to leverage Nginx’s capabilities for load balancing and
security, we configured Nginx [12] as a reverse proxy.

Figure 3.2.5.2 Reverse Configuration

28
Chapter 4. RESULT

4.1. System Deployment


After the configuration of Docker Compose, Nginx, and the
implementation of the CI/CD pipeline using GitLab, we successfully
deployed the back-end system to AWS EC2. Below are the key
outcomes:
- System Uptime: The system was successfully deployed and
remains operational with minimal downtime, achieving an uptime
rate of 99.5%.
- Automated CI/CD Pipeline: Through GitLab CI/CD, any code
push triggers an automated build, test, and deployment process.
This ensures seamless integration and continuous deployment of
the system without manual intervention. We conducted multiple
pushes to verify this automation and observed the flawless
execution of each task in the pipeline.
- Proxying with Nginx: Nginx was configured as a reverse proxy
to handle requests efficiently. With the setup of Nginx, we
improved request handling between different Docker containers.
The system was tested with concurrent requests, and Nginx
handled them effectively without noticeable delays or bottlenecks.
- Scalability with Docker Compose: Docker Compose allowed for
easy scaling of services. We tested horizontal scaling by
increasing the number of back-end containers, and the system
successfully managed traffic increases. This ensures that the
system can handle growing demand without extensive
configuration changes.

4.2. Test Results Analysis


During the deployment and testing phases, several tests were conducted
to evaluate system performance and reliability:

- Response Time:
● With 100 concurrent requests, the average response time was
250ms.
● As the number of requests increased to 500, the response time
rose to 450ms, still meeting the group’s goal of staying under
500ms.
- Throughput:

29
● When tested with 100 concurrent requests, the system achieved a
throughput of 200 requests/second.
● As the load increased to 500 concurrent requests, throughput
slightly decreased to 150 requests/second, but the system
remained stable and avoided bottlenecks.
- Resource Usage: Throughout testing, CPU and memory usage remained
within safe limits, with CPU peaking at 75% and memory at 60%. This
demonstrates that the system can handle demand efficiently without
exhausting hardware resources.

4.3. Benefits of the


Solution
The project not only produced positive technical results but also showcased
clear benefits in automation and workflow optimization:
- Continuous Integration [15] : All code changes were automatically
integrated into the system, allowing for early detection of issues and
ensuring system stability.

- Deployment Optimization [16] : Automated deployment reduced the time


spent manually pushing code to the production environment, accelerating
product development and release.

- Reliability and Stability: With integrated monitoring and logging tools, the
development team was able to quickly detect and resolve issues, ensuring
high system reliability.

4.4. Lessons Learned


One of the key lessons from this project was the importance of
implementing advanced technology solutions while maintaining affordability.
Through the use of Docker and Nginx combined with CI/CD pipelines [12][13]
[15], the project demonstrated that complex back-end systems can be deployed
and managed efficiently and cost-effectively.

Moreover, the automation and scalability capabilities of Docker


Compose[13] were instrumental in the project’s success, as the system easily
scaled up the number of containers without encountering connection issues or
affecting performance. This underscores the significance of scalable and
automated solutions in building a flexible and robust system.

4.5. Challenges and Solutions

During the project, several technical challenges and resource


management issues arose:
30
- Initially, the team faced difficulties managing access permissions on the
EC2 server and configuring security groups. This was resolved by
adjusting security rules and implementing proper SSH key settings [16]
[17].
- As the number of containers increased, there were connection issues
between services. After adjusting the network configuration in Docker
Compose, this issue was fully resolved.
- Minor errors in the YAML configuration for GitLab temporarily
disrupted the CI/CD [15] process. After reviewing and fixing the syntax,
the pipeline functioned smoothly and reliably.

31
CONCLUSION

1. Result
In the journey of developing and promoting SigConn Tap, we have gained
valuable insights and experiences that have shaped our understanding of NFC
technology and its potential applications in everyday life. The core lesson learned from
this project is the transformative power of affordable solutions in making advanced
technologies accessible to a broader audience.
Through SigConn Tap, we have successfully demonstrated that the integration
of NFC technology into everyday tools, such as business cards, can be not only cost-
effective but also user-friendly. The ability to create personal profiles effortlessly on a
single platform opens up new possibilities for individuals to enhance their connectivity
and networking opportunities.
Furthermore, our project has highlighted the significance of addressing the cost
barrier associated with NFC-enabled business cards. By providing a budget-friendly
alternative, SigConn Tap has positioned itself as a catalyst for widespread adoption of
NFC technology, breaking down financial barriers and encouraging more individuals
to embrace the convenience it offers.
As we reflect on the project goals, it is evident that we have not only developed
a practical solution in SigConn Tap but also contributed to the broader narrative of
advancing digital connectivity in society. The promotion of NFC technology extends
beyond business cards, with potential applications in diverse fields such as payment
systems and parking card solutions.

2. Development
The development and launch of SigConn Tap have yielded significant
achievements and insightful experiences. Through this project, we have
demonstrated that advanced NFC technology can be made both accessible and
affordable to a broader audience. By leveraging this technology, SigConn Tap
has transformed traditional business cards into dynamic and user-friendly
digital tools, facilitating greater connectivity and networking opportunities.

32
Our focus on delivering a cost-effective solution has proven critical in
overcoming financial barriers, making NFC-enabled business cards an
attractive option for individuals and businesses alike. SigConn Tap has not
only fulfilled its role as a practical application but also emerged as a catalyst
for encouraging the widespread adoption of NFC technology [4] in everyday
life. Beyond business cards, the potential applications span across sectors,
including payment systems, parking solutions, and access control, highlighting
the versatile nature of the technology.

Reflecting on the project, it is clear that SigConn Tap contributes to the


broader discourse on digital transformation by making connectivity more
seamless and efficient. This product is not only a testament to technological
innovation but also a step towards creating a more digitally connected society.

Looking ahead, there are ample opportunities for further development and
expansion, from enhanced profile customization and integration with existing
platforms to broader use cases like NFC-based payments and access control
systems [4]. The potential to collaborate globally, integrate cutting-edge
technologies like blockchain and AI, and expand into new markets positions
SigConn Tap for future growth and continued success.

33
REFERENCE DOCUMENTS

[1] S, A. (2023, August 25). What is HTML? Hypertext Markup Language Basics explained.
Hostinger Tutorials. https://www.hostinger.com/tutorials/what-is-html

[2] What is CSS? - Learn web development | MDN. (2024, July 25). MDN Web Docs.
https://developer.mozilla.org/en-US/docs/Learn/CSS/First_steps/What_is_CSS

[3] What is JavaScript? - Learn web development | MDN. (2024, August 3). MDN Web Docs.
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript

[4] Wankhede, C. (2024, May 13). What is NFC and how does it work? Everything you need to
know. Android Authority. https://www.androidauthority.com/what-is-nfc-270730/

[5] Toal, R. (2023, October 23). What is PHP? Uses & Introduction - Code Institute IE. Code
Institute IE. https://codeinstitute.net/global/blog/what-is-php-programming/

[6] React. (n.d.). https://react.dev/

[7] Next.Js by Vercel - the React framework. (n.d.). https://nextjs.org/

[8] React Native · Learn once, write anywhere. (n.d.). https://reactnative.dev/

[9] Tailwind CSS - Rapidly build modern websites without ever leaving your HTML. (n.d.).
Tailwind CSS. https://tailwindcss.com/

[10] Django. (n.d.). Django Project. https://www.djangoproject.com/

[11] Simplilearn. (2024, July 24). What is FastAPI: The future of Modern Web development.
Simplilearn.com. https://www.simplilearn.com/what-is-fastapi-article

[12] What is Nginx: Everything You Need to Know - Papertrail. (2022, August 29). Papertrail.
https://www.papertrail.com/solution/guides/nginx/

[13] “What is Docker?” (2024, September 10). Docker Documentation.


https://docs.docker.com/get-started/docker-overview/

[14] Git - What is Git? (n.d.). https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F

[15] GitLab. (2023, April 13). What is CI/CD? | GitLab. GitLab.


https://about.gitlab.com/topics/ci-cd/

1
[16] What is Amazon EC2? - Amazon Elastic Compute Cloud. (n.d.).
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html

[17] Gillis, A. S., Loshin, P., & Cobb, M. (2024, July 29). What is SSH (Secure Shell) and How
Does It Work? Security. https://www.techtarget.com/searchsecurity/definition/Secure-Shell

[18] What is Python? Executive Summary. (n.d.). Python.org.


https://www.python.org/doc/essays/blurb/

[19] MongoDB. (n.d.). What is MongoDB? https://www.mongodb.com/company/what-is-


mongodb

You might also like