DeployBoard is a lightweight cloud deployment tracker that helps teams manage complex workflows. It demonstrates how a modern web application can be deployed and connected using aws cloud s3 cloud infrastructure. The app helps teams monitor deployments from creation to ongoing status.
The application allows users to create, view, update, and delete deployment records with ease. It tracks project name, environment, deployment URL, and deployment status for quick reference. I built the front-end with React and Vite, featuring a clean, responsive interface.
First, the deployment process was completed in several phases.
Then I created the DynamoDB table deployments using on-demand billing to store records without managing servers.
Next, I created an AWS Lambda function using Python to handle the back-end operations within aws cloud s3 cloud framework.
The Lambda function implements the CRUD operations required by DeployBoard.
It retrieves deployments, creates new ones, updates existing ones, and deletes deployments.
I then created an Amazon API Gateway HTTP API and connected the routes to Lambda.
These routes included GET /deployments, POST /deployments, PUT /deployments/{id}, and DELETE /deployments/{id}.
During testing, I configured API Gateway CORS so browser-based requests, including DELETE and PUT, could communicate with the back-end.
For the front-end deployment, I initially considered AWS Amplify. Connecting a GitHub repository through Amplify requires an interactive authorization step, so I chose an AWS-native deployment path from CloudShell.
I built the React application with Vite and configured it with the API Gateway endpoint. Then I uploaded the generated production files to an Amazon S3 bucket configured for static website hosting.
To provide a secure HTTPS endpoint, I placed Amazon CloudFront in front of the S3 website.
The final architecture is User → CloudFront → S3. The sequence continues with the React/Vite front-end, API Gateway, Lambda, and DynamoDB.
This separation also made the architecture easy to understand. CloudFront and S3 serve the front-end. API Gateway provides the HTTP interface. Lambda contains the application logic, and DynamoDB stores the deployment data.
One of the most valuable parts of this challenge was going through the deployment lifecycle. This contrasted with building only the application locally. It helped me see how AWS services fit together and how to troubleshoot across layers.
I validated the Lambda function directly and tested API Gateway routes. I verified DynamoDB data, deployed the front-end to S3, and configured CloudFront for HTTPS. I tested the application through the public URL.
Additionally, a real-world CORS issue occurred where the API Gateway CorsConfiguration was initially null. Although the Lambda function already returned CORS headers, the browser required proper API Gateway CORS configuration. After configuring allowed origins, methods, headers, and OPTIONS support, the CRUD operations worked from the deployed front-end. This was a useful reminder that back-end tests with curl do not always guarantee browser requests will work.
Overall, this Weekend Deployment Challenge gave me practical experience. It moved an application from local React development to a publicly accessible AWS deployment using managed, serverless services.
DeployBoard demonstrates how aws cloud s3 cloud works with other services. These include CloudFront, API Gateway, Lambda, and DynamoDB.
Moreover, it clarified deployment as a complete process. It covers building the app, designing the architecture, provisioning resources, and connecting front-end and back-end services. Finally, the project is live at https://d1klsgddyi9xnh.cloudfront.net. The source code is available at https://github.com/Jani-shiv/deployboard.
