Inspiration
It all started when I was sitting on my couch, surrounded by empty pizza boxes, feeling like I had nothing to live for. That's when I had the brilliant idea to build a movie watchlist website because nothing screams "I have my life together" like a meticulously curated list of movies you haven't even watched yet.
I mean, let's be real here, the world needs another movie watchlist website like a fish needs a bicycle. But hey, I had nothing better to do and my mom told me I was special, so here we are.
This is the ultimate solution for all your movie-watching needs, because who needs friends or family when you have a website that tells you what movies to watch? Plus, it's the perfect excuse to avoid social interactions and human emotions altogether.
So if you're looking for a way to procrastinate, avoid the outside world, and feel like a cinematic genius, look no further. This is the website for you.
How we built it
The technologies used to build this movie watchlist website include:
Python: was used to build the backend of the website. It was used to handle the logic of the application, such as handling user data, updating the data, and handling the form inputs. As well as the recommendation algorithm itself which made use of IMDBpy.
Flask: A micro web framework for Python that was used to handle the routing and handling of HTTP requests and responses, as well as maintaining user sessions using Flask 'session'
HTML and CSS: These were used to build the front end of the website. A simple intuitive design to be improved on in the future.
JSON: It was used as a data format to store the movies and users data.
IMDBpy: It's a python package that allows you to access the IMDB dataset, it was used to get movie details like title, director, cast, and more.
YouTube API: It was used to search for the movie trailers to display along with recommended titles
Together these technologies create a dynamic, interactive website that allows users to create and manage their own movie watchlists.
What it does
Sign up and create an account by providing a username. Add movies to a users' watchlist. Analyse user watchlist to recommend movies, via the IMDB dataset and the YouTube API. View movie trailers using the YouTube API and embed the video in the website.
Challenges we ran into
Storing user's data Searching for movies Scalability (This is something our web app is ill-equipped to handled) Working with multiple APIs (IMDB and YouTube's APIs) as well as Most important and significantly- The Flask API Security: Challenges in securing the user's data and the website from potential threats such as injection and other types of attacks.
Accomplishments that we're proud of
Designing and implementing a working prototype in a sub-12-hour window. Being able to complete majority of the project in the given 24 hour time limit
What we learned
Improved our skills in Python and learned Flask to build a web application; notably we gained valuable new experience in flask. Organization and collaborating with groups is an essential skill we all developed throughout the process, as well as pushing beyond our comfort zones by using technologies we weren't familiar with.
What's next for MovieLens
Store user preferences in our data set rather than polling the IMDb data set upon every user request - this was the main cause of any poor performance Make Use of IMDb API to improve performance - the packages we are currently using are not designed for this type of application. We are implementing a more appealing user interface (as demonstrated by our Figma demo) and scaling the project to implement better algorithms for recommending movies given the data provided. Optimizing time and space complexity is another goal of ours. Furthermore, we will need a more acceptable way of storing user data - our current method was designed for a simple working prototype.

Log in or sign up for Devpost to join the conversation.