Inspiration
The idea behind RecurMovies came from the need for a more human-like, intuitive way to discover movies. Instead of browsing endlessly or relying on generic lists, I wanted to create a platform that delivers tailored recommendations based on movie titles, genres, actors, and even descriptions.
What it does
RecurMovies allows users to search for a movie by name, genre, or description and receive highly personalized recommendations. It factors in similar movie titles, shared actors, matching genres, and overall storyline to provide a list of visually engaging suggestions with high-quality posters.
How I built it
Backend: The backend is powered by Flask, the core recommendation system uses a combination of TF-IDF vectorization and cosine similarity to compute similarities between movies based on their titles, genres, descriptions, and actors. Frontend: Built with HTML, CSS, and JavaScript, incorporating Three.js for a stunning 3D starfield(galaxy) background to enhance user experience. API Integration: The TMDb API is used to fetch high-quality movie posters dynamically. Hosting: The app was hosted using Waitress and is fully deployable to platforms like Render or Heroku.
Challenges I ran into
Data Preprocessing: Cleaning and combining various attributes (e.g., genres, stars, descriptions) into meaningful features for the recommendation engine was more challenging than expected. Performance: Optimizing the app to handle large datasets without significant delays required implementing concurrent API requests. UI/UX: Ensuring the recommendations are displayed dynamically while maintaining a clean and responsive design took several iterations.
Accomplishments that I am proud of
I am extremely proud to have successfully built a fully functional recommendation engine that considers multiple factors (titles, genres, actors, and descriptions). It was difficult but i was able to Integrate dynamic, high-quality posters using the TMDb API to enhance user experience. Designing a visually appealing frontend with responsive behavior and 3D effects using Three.js was something new but was easier than expected. I was more than proud of myself to have improved performance with multithreading for faster poster retrieval.
What we learned
1.The importance of data preprocessing and feature engineering in building robust machine-learning systems. 2.How to integrate APIs seamlessly for dynamic content retrieval. 3.Advanced use of TF-IDF for text-based similarity and implementing performance optimization techniques for real-world applications. 4.Balancing functionality and aesthetics in a user-facing application.
What's next for RecurMovies
I want to make user profiles allowing users to create accounts and save their favorite movies. In the future advanced recommendations will also be implemented with the incorporation of user ratings, watch history, and sentiment analysis for even better suggestions. Pretty confident in experimenting with more animations and themes to make the interface even more engaging. Enable globalization, multilingual support and more datasets to recommend non-English movies.
Log in or sign up for Devpost to join the conversation.