This is a video streaming web application built using AWS. It allows users to upload, store, process, and stream videos. The serverless architecture ensures scalability and a seamless streaming experience.
- Amazon S3: Stores videos securely.
- Amazon CloudFront: Ensures fast global video delivery.
- AWS Lambda: Manages video processing.
- Amazon API Gateway: Handles video uploads and management.
- Amazon DynamoDB: Keeps track of video metadata and user stats.
- Amazon Amplify: Simplifies app deployment.
- Upload and store videos.
- Automatic video processing.
- Secure and scalable streaming.
- User authentication.
- Analytics on video engagement.
Our backend testing suite ensures robust and reliable operation through:
-
Model Testing with Mocha & Chai:
- Verifies that the
Video
model behaves as expected, including data integrity for attributes likename
,views
, andlikes
.
- Verifies that the
-
API Endpoint Testing using Chai-HTTP:
- Ensures the
/api/videos
route fetches all videos correctly, checking for a200
status and an array response.
- Ensures the
Execute our comprehensive test suite to validate backend functionality before deployment:
npm run mocha
- AWS Account
- AWS CLI
- Node.js and npm
-
AWS Setup:
- Create S3 buckets for video storage.
- Set up a CloudFront distribution for video delivery.
- Deploy Lambda functions for video processing.
- Configure Amazon API Gateway for video management.
- Set up DynamoDB tables for metadata.
-
IAM Configuration:
- Create roles for Lambda, API Gateway, and other services.
-
Web Application Deployment:
- Amazon S3 Hosting:
- Create an S3 bucket for hosting.
- Enable static website hosting.
- Upload your application and set public read permissions.
- AWS Amplify:
- Connect your Git repository.
- Configure build settings.
- Deploy your application.
- Amazon S3 Hosting:
To use the app, start by uploading videos. You can then stream videos, and interact with features like liking and commenting.