I am Ang Peng Seng, a Year 2 Student at NUS Business School, currently in Wolf Pack.
On 27-28 Jan 2018, my peers, Ang Khay Wee, Leon Tham, Sakthi Ram and I joined the Hack&Roll 2018 hackathon organized by NUS Computing. We set out to build a movie recommendation engine in 24 hours.
We created a Web interface that recommends 5 movies a user might like based on his favourite movie. The algorithm sorts movies based on their keywords and tag matches and then returns the 5 highest rated movies from the list to the user.
We coded using Python. We used the Flask library in Python to create an HTML interface and then hosted it on a local web server.
Here are snippets of our code, sample input and output.
What we learnt
It was a steep learning curve for us as we were inexperienced in creating recommendation engines. We were new to Flask/HTML. Believe it or not, we did lots of just-in-time learning to turn our idea into reality. Google and Stack Overflow was paramount to completing our project.
We realized that data cleaning was one of the hardest tasks we had during the process. Data from various sources had to be formatted in the same way before we could start writing the algorithm. We spent almost 10-12 hours on cleaning the Data!
What went well
Little technical experience. First Hackathon. Only 24 hours. The fact that we completed what we set out to achieve was a spectacular achievement for us! We were frustrated everytime we were not able to understand why our code came with errors. Battering every error that came our way was indeed morale-boosting. My peers and I thoroughly enjoy ourselves and had great fun experimenting during this hackathon!
Things to Improve on
We spent too much time trying to clean and sort out our dataset (which has about 45000 movies and 5 million rows). Time management could have been better! We were left with too little time to experiment with various recommendation algorithms. We had to work with 2 relatively simple ones. If we had more time we could have experimented with more algorithms, using machine learning algorithms or collaborative filtering (recommends movies based on users with similar movie tastes).
Advice for someone participating in their first Hackathon
Decide on a type of project beforehand and read up the documentation on the specific libraries or basic techniques that are required for it. That way, during the hackathon, you won’t waste too much time reading documentations.
Do not give up easily! Stack Overflow would be your best friend during the hackathon. Manage your time well and set time-specific goals so that you can complete your project. Remember to have fun! 🙂
Building on from my hackathon experience, my BACT Wolf Pack Group and I are currently working on a recommendation engine to recommend General Elective and Unrestricted Elective modules to NUS students. I would recommend, anyone who is interested, to join a hackathon at least once for the experience!