Yafie logo

case.study // freshbasket.aws

A documented AWS deployment of a Node.js and MySQL vendor portal.

Deployed a Node.js, Express, EJS, and MySQL vendor portal using Elastic Beanstalk, EC2, RDS MySQL, custom VPC networking, security groups, load balancing, Auto Scaling, environment variables, and SNS notification setup.

Live AWS resources are no longer active because this assessment used AWS Academy Learner Lab. Architecture diagrams, configuration screenshots, database connection proof, and application screenshots preserve the deployment evidence.

FreshBasket preview
FreshBasket AWS deployment preview

Deployment snapshot

The AWS story, at a glance.

Role
Cloud / Full-Stack Deployment
App stack
Node.js, Express, EJS, MySQL
Platform
AWS Academy Learner Lab
Core services
Beanstalk, EC2, RDS, VPC, SG, SNS

Deployment model

Load-balanced Elastic Beanstalk environment with Auto Scaling from 2 to 8 instances.

Evidence status

Documented deployment; lab environment expired. Architecture, configuration, SQL proof, and application screenshots remain available.

Jump to problems solved

00 // project.context

What FreshBasket is.

FreshBasket Harvest is a full-stack vendor portal for seasonal produce boxes. Customers browse produce, build a harvest box, review totals, and submit requests. Admin users monitor request metrics, fulfilment status, and customer box requests.

Customer workflow

Customers browse seasonal produce, build a harvest box, review totals, and submit produce box requests.

Admin workflow

Admin users monitor request metrics, fulfilment status, and customer box requests.

Database-backed app

Produce items, box requests, and request line items are stored in MySQL-backed tables.

Deployment focus

The case study focuses on AWS configuration, database connectivity, scaling setup, and evidence capture.

01 // architecture

AWS deployment architecture.

A high-level view of how browser traffic reached the application and database layer.

layer.01

User Browser

layer.02

Application Load Balancer

layer.03

Elastic Beanstalk Environment

layer.04

EC2 Application Instances

layer.05

RDS MySQL Database

This architecture shows how public web traffic reached the app layer while database access remained restricted behind security group rules.

Supporting AWS configuration

Custom VPCPublic SubnetsRoute TableInternet GatewaySecurity GroupsIAM LabRole / LabInstanceProfileSNS Email NotificationsEnvironment Variables

02 // deployment.flow

How deployment worked.

A compact view of the deployment path from app preparation to evidence capture.

selected.step

Prepare app

Prepared the Node.js, Express, EJS, and MySQL application for cloud deployment with environment-driven configuration.

03 // database.integration

RDS MySQL connection.

RDS MySQL stored produce and customer request data for the deployed vendor portal.

EC2 to RDS SQL query
EC2 terminal connection to RDS MySQL with SQL query evidence
EC2 terminal query confirming the application could connect to RDS MySQL and read seeded produce/request data.

Tables verified

produce_itemsbox_requestsbox_request_items

The query evidence connects the deployed application layer to persistent RDS data rather than only showing an isolated AWS configuration screen.

04 // security.networking

Security and networking.

Public application access was separated from database access.

Web traffic

HTTP to app / load balancer

Database traffic

MySQL 3306 from app SG only

Network boundary

Custom VPC

Public access

Subnets, route table, IGW

The web app allowed HTTP access, while RDS MySQL was restricted to the application security group on port 3306.

Custom VPC AWS evidence screenshot
VPC-level view showing the network boundary used for the AWS deployment.

Custom VPC

Hosted deployment resources inside a controlled AWS networking boundary.

Public subnets AWS evidence screenshot
Public subnet evidence used for the application-facing deployment resources.

Public subnets

Provided public subnet placement for application-facing resources.

Route table + Internet Gateway AWS evidence screenshot
Route table evidence showing public internet routing for the deployment.

Route table + Internet Gateway

Enabled web access through route table and gateway configuration.

Security groups AWS evidence screenshot
Security group evidence for application and database access control.

Security groups

Allowed HTTP access to the application while restricting MySQL access to the app security group.

Swipe 0%

05 // scaling.operations

Scaling and operations.

Elastic Beanstalk was configured as a load-balanced environment with Auto Scaling capacity.

Load balancing

Elastic Beanstalk environment

Auto Scaling

Min 2 / Max 8

Runtime image

Custom AMI

Configuration

Environment variables

Monitoring

Health and events

Access roles

IAM role / instance profile

Elastic Beanstalk Health
Elastic Beanstalk Health AWS configuration screenshot
Shows the Elastic Beanstalk environment reaching an OK health state.
Scaling Configuration
Scaling Configuration AWS configuration screenshot
Documents Auto Scaling capacity settings for the load-balanced environment.
Custom AMI
Custom AMI AWS configuration screenshot
Shows the custom AMI evidence used during the deployment setup.
Swipe 0%

07 // troubleshooting

Problems solved.

The debugging work behind a healthy deployment, reliable database access, and safer network boundaries.

issue.01

Region restriction

AWS Academy required us-east-1, so deployment resources were rebuilt in the supported region.

issue.02

RDS connectivity

Fixed host, port, credentials, environment variables, and security group access.

issue.03

Elastic Beanstalk health

Resolved health/runtime issues by checking environment variables, events, and application startup behaviour.

issue.04

Security group access

Restricted RDS access to the application security group on port 3306.

08 // reflection

What I learned.

Cloud deployment is system thinking

The app, database, networking, roles, scaling, and runtime configuration all had to work together.

Environment variables matter

Cloud deployments depend on clean configuration boundaries between code and infrastructure settings.

Networking affects application behaviour

Security groups, routes, subnets, and database access rules directly shaped whether the app could run.

Evidence matters when environments expire

Screenshots, diagrams, and connection proof preserve the deployment story after lab resources shut down.

FreshBasket helped me move beyond local development and understand what it takes to run a full-stack application in a cloud environment. It strengthened my understanding of how RDS integration, Elastic Beanstalk configuration, networking, runtime settings, troubleshooting, and evidence capture work together.

documented.deployment

Cloud deployment, preserved through evidence.

FreshBasket shows how cloud infrastructure decisions shape a full-stack application once it leaves local development.