Caches yt results for predefined search queries for faster access.
- Dashboard: Dashboard (hosted on vercel)
- Backend: Backend (hosted on aws, uses nginx as reverse proxy)
This project has three components.
- Server: A http server that serves cached results for certain pre-defined search queries.
- Fetcher: A background process that fetches the results for the pre-defined search queries and stores them in the database.
- Web: A dashboard to view the cached results and the search queries. You can also add new search queries from the dashboard.
- Poller and Fetcher (Used worker pool for fetching results)
- Server for serving cached results (With Pagination & Sorting)
- Api key rotation when quota exceeds
- Dashboard UI
- Golang (Echo Framework)
- MongoDB
- React
- Tailwind CSS
Have the env variables ready, you can use the env.example
file as a template.
make server
make fetcher
make web
GET /api/videos
- Query Params:
- query: search query
- limit (optional): default 10
- pageno (optional): default 1
- order (optional): default "desc" //order by published date
- Returns:
- Array of videos
GET /api/queries
- Returns:
- Array of queries
POST /api/queries
- Body:
- query: search query
- Returns:
- Success/Error message
GET /api/info
- Returns:
- pollInterval - interval for fetching results
- maxResults - fetched by fetcher