The Auction App leverages the Serverless v.3 Framework, crafted with TypeScript, and architecturally divided into three interconnected services:
- Auction Service: The core of the app, interfacing through AWS API Gateway. It includes functions for auction operations such as
createAuction
,getAuctions
,getAuction
,placeBid
, anduploadAuctionPicture
. This service is responsible for processing auctions via AWS EventBridge and storing auction data in AWS DynamoDB's AuctionsTable, while auction images are hosted in the S3 AuctionsBucket. - Auth Service: Serving as the security gatekeeper, it authorizes API requests using JSON Web Tokens (JWT) with an
authorizer
function, ensuring secure access control. - Notification Service: This component is pivotal for communication, utilising AWS Simple Email Service (SES) to dispatch emails and AWS Simple Queue Service (SQS) for managing mail queues, thereby enabling timely notifications to buyers and sellers upon auction activities.
Each service is meticulously orchestrated through AWS CloudFormation as defined in the serverless.yml
file, providing a cohesive, automated, and scalable auction platform.
Please refer to the workflow diagram below for a detailed visual representation of the app's architecture and interaction between services.
- Node 20.11.1 LTS
- NPM 10.x
- Serverless Framework 3.x
- AWS Credentials
For each of the services, please navigate to the respective directory and run the following commands:
npm install
To deploy the services, please navigate to the respective directory and run the following commands:
sls deploy -v
To remove the services, please navigate to the respective directory and run the following commands:
sls remove -v