
Ben Hackett-Delaney
The focus of the project was to create a movie recommendation application which would give users recommended movies based on their preferences and interaction on the app. The backend was made using Flask which integrates a TensorFlow recommender model and serves it. The front end was developed using React.js providing an interface that users could interact with and obtain recommendations. Developing this application involved processing data, model training, API development and implementing those components to display on the front end.
This is a simulated version of how the recommender system was supposed to work in the application due to issues with the recommender systems model. In the application it shows the user registering an account, the user is then navigated to the home page. On the home page, the recommendations appear when the user rates a movie.




Once the user navigates to the movies page, they can select one or more movies to rate. After the user selects a movie, they are taken to that movie's details page where they can submit a rating.




When a user rates a movie, it is added to the home page and displayed. The system then updates to show the top five recommended movies for the user.


The main objective of the application was to create a recommender system that would suggest movies to the users based on their interactions and preferences. the aim was to give users a faster method of finding movies they would like to watch. This sparked other features to be implemented such as having actors, watchlists, ratings, and reviews for more interactions. With the requirements implemented the application would be able to serve people's needs when trying to save time and find movies they are interested in.
All of the features were working as expected in the application except for the recommendation models, this is where issues began to arise when working with TensorFlow. After a struggle to export the model from Google Colab, the retrieval and ranking models were both exported and inserted into the Flask backend. However, the retrieval model could not work because of a NumPy conflict, the Ranking model was mostly functional but it could not take in new data from my application, this means that the recommendations were already predicted for the user IDs in the training data and the recommendations my user were receiving were inaccurate. A workaround I implemented was to extract the data to then be displayed as a top-five ranking to simulate the user's recommendations. Although this was a big setback, all the other functions of the application worked as intended.
The project's development goes over the whole process of building the application. It goes over the details of developing the recommender application and how it was integrated into the backend and served to the front end. The thesis goes over the challenges that were encountered when working with the Ranking model from TensorFlow and the implementation of other features. The thesis outlines the phases where the full development scheme was discussed. These phases included the research, requirements, design, implementation, testing, and project management phases.

I am a student at IADT College studying Create Computing. I have experience in full-stack development, UX/UI design, and Machine Learning. I enjoy solving problems and using my creativity to design and develop applications. The projects include a movie recommendation system, data visualization, and React apps. I am always open to learning new ways to improve my work.