This project is developed with Next.js, initiated using create-next-app
. It builds upon the ZZZ-Movie RecSystem Data Pre-processing repository, which imports a comprehensive movie dataset from Kaggle into a PostgreSQL database and enriches it with vector embeddings for each movie title.
To enhance the search functionality, our Movie Recommender App employs TensorFlow's Universal Sentence Encoder for advanced semantic vector retrieval. Then we present search results through a responsive interface built with React
and Next.js
.
Guided by insights from Aiven's guide on building a movie recommender, we've made enhancements to both the user interface and API. These updates serve as a foundation for a feature currently in development, which will offer personalized recommendations by analyzing users' search histories.
This guide walks you through setting up a Node.js application that connects to a PostgreSQL database using environment variables for configuration.
- Node.js and npm installed on your machine. You can download them from Node.js official website.
Ensure Node.js (which includes npm) is installed on your system. You can verify by running node -v
and npm -v
in your terminal.
Navigate to your project's root directory in the terminal and install dependencies:
cd /path/to/your/project
npm install
Create a .env
file in the project root with the following content:
PG_NAME=<your_database_name>
PG_PASSWORD=<your_database_password>
PG_HOST=<your_database_host>
PG_PORT=<your_database_port>
- Download the certificate
ca.pem
from [https://console.aiven.io/] and place it in your project.
Before running the development server, ensure your PostgreSQL database is populated with the initial dataset, located in ZZZ-MovieRecSystem
Start the development server with:
npm run dev
With the development server running, access your application through the browser at http://localhost:3000
- Implementing personalized recommendation features utilizing users' search histories for a more tailored experience.
- Deploying the web application to a public domain for broader accessibility.
-
Certificates: Ensure your database client uses SSL/TLS with
ca.pem
. -
DevPost: For a detailed narrative on the project's evolution and insights, visit the DevPost project page.
-
Dataset: The source of the dataset is available on Kaggle, providing a rich repository of movie plots. Visit the ZZZ-MovieRecSystem to populate your database.
- Yiwei Zhang
- Shizhe Zhang
- Weiran Zhao