CourseOverflow is a web app that generates playlists by analysing PDF/TXT documents using the Google Gemini API, while YouTube API v3 is leveraged for playlist creation.
01
Searching for individual videos on YouTube for exam preparation can be cumbersome. If only there were a way to upload a course handout and get a curated playlist tailored for exam preparation.
02
A web app that analyses course handouts or other academic files using AI, generating a YouTube playlist of videos to enhance exam preparation, all on the same platform.
03
Tech Stack
Frontend: React with Tailwind CSS for flexibility and responsive design
Backend: Django for its out-of-the-box features for authentication, REST APIs, and integration with Python libraries for parsing PDFs
Database: PostgreSQL, fully supported by Django ORM
Caching: Redis for caching topics and reducing API token usage
Implementation
PDF content is parsed using Python’s pdf-parser library, extracting raw data
This data is sent to the Google Gemini API to generate relevant topics based on the document’s content
These topics are then searched on YouTube via the YouTube API v3
The app uses asynchronous requests to handle YouTube search queries efficiently
Security
Authentication with Google OAuth 2.0
Implementation of JWT for secure user sessions
CSRF tokens for protecting against cross-site request forgery
CORS (Cross-Origin Resource Sharing) settings configured to manage browser requests from different domains
04
The final web application offers a user-friendly experience, allowing users to tailor their learning. By liking or disliking videos, users can receive better recommendations for future content. The bookmark feature provides the flexibility to learn at their own pace by saving videos for later viewing. Users can explore profiles to discover playlists from their favourite creators or friends, enhancing community learning. Additionally, the app includes a comment section, encouraging discussions and collaboration. An analytical dashboard gives users insights into their viewing habits, tracking progress and offering personalised metrics for better learning management.



