Made for FamPay hiring task.
To make an API to fetch latest videos sorted in reverse chronological order of their publishing date-time from YouTube for a given tag/search query in a paginated response.
- Server should call the YouTube API continuously in background (async) with some interval (say 10 seconds) for fetching the latest videos for a predefined search query and should store the data of vid eos (specifically these fields - Video title, description, publishing datetime, thumbnails URLs and any other fields you require) in a database with proper indexes.
- A GET API which returns the stored video data in a paginated response sorted in descending order of published datetime.
- It should be scalable and optimised.
- Go
- YouTube Data API v3
- AWS Lambda
- AWS EventBridge Rule
- Postgres
- Redis
- SST
https://task.volt.place/videos
GET /videos
Returns a list of all videos in the database.
GET /videos?pageSize=10&pageNumber=2
Returns the paginated response corresponding to the URL parameters passed
- Follow the instructions here to setup AWS credentials locally.
- Copy the .env.example file to .env and fill in the required details.
- Run the db migrations using
go run migrate.go
pnpm install
pnpm dev