A full-stack, serverless music streaming application built with Spring Boot, React, and AWS. Musify enables secure MP3 streaming using pre-signed S3 URLs and scalable serverless backend architecture.
The application follows a fully serverless architecture:
- React frontend sends API requests.
- Amazon API Gateway routes HTTPS requests to AWS Lambda.
- Lambda (Spring Boot) interacts with DynamoDB for metadata.
- Lambda generates pre-signed URLs for secure S3 access.
- Client streams MP3 files directly from S3.
- ๐ต Upload and stream MP3 files
- ๐ Secure file access using pre-signed S3 URLs
- โก Fully serverless backend using AWS Lambda
- ๐ฆ Metadata storage using DynamoDB
- ๐ Scalable architecture using API Gateway
- โ๏ธ Cloud-native deployment
- React 18 + TypeScript
- Vite build tool
- Bootstrap 5 + Custom CSS
- Spring Boot
- AWS SDK v2
- AWS Lambda
- AWS API Gateway
- AWS S3
- AWS DynamoDB
- User requests a song.
- Lambda retrieves S3 object key from DynamoDB.
- Lambda generates a time-limited pre-signed URL.
- URL is returned to React.
- React streams the MP3 directly from S3.
This ensures:
- No direct public access to S3
- Time-bound secure streaming
- Reduced backend load
- Node.js 18+
- Java 21+
- AWS Account
- AWS CLI configured
cd musify-backend
mvn clean install
mvn spring-boot:runcd musify-frontend
npm install
npm run devThe backend is deployed as a serverless application:
- Spring Boot application packaged using AWS Lambda Java runtime.
- API Gateway configured for HTTP routing
- IAM roles configured with least-privilege access
- S3 used for object storage
- DynamoDB used for metadata storage
- Serverless architecture reduces operational overhead
- Pre-signed URLs offload streaming directly to S3
- DynamoDB ensures low-latency metadata retrieval
- API Gateway enables scalable request routing
- Stateless Lambda functions improve horizontal scaling
- User authentication with AWS Cognito
- Playlists and favorites
- Caching using Redis
- CloudFront CDN for faster streaming
- Monitoring with CloudWatch
Adarsh Kumar
MS in Information Systems
AWS Certified Developer
