A movie recommendation web application built with Rust and Next.js that helps you choose the next movie you're going to watch.
This application was produced as part of a project by 3 students in the space of 4 days.
Here are a few screenshots of our user interface.
The landing page features everything new users need before they sign up: presentation, data, FAQ, ...
Here, you can take advantage of the infinite scroll function to select a film from a selection based on our recommendation algorithm, or search for a particular film.
By clicking on a movie's card, you can view information about it, such as its rating, cast and synopsis, but also recommendations of similar movies.
Using the gRPC protocol, we've combined the power and speed of Rust with the ease and capabilities of Next.js, resulting in an application that's quick and easy to use, but also easy to maintain.
The .env
is currently not loaded by the Next.js server nor by the rust api, so its is needed to export the environment variables manually:
export APP_THE_MOVIE_DB__API_KEY=your_tmdb_api_key
-
Install node modules:
pnpm install
-
Install
cargo-watch
(for hot-reloading):cargo install cargo-watch
First initialize the database. It will start a docker container based on postgres' Docker image on http://localhost:5432
.
bash ./scripts/init_db.sh`
This will start the development server at http://localhost:3000
and the API server at http://localhost:4000
.
pnpm dev
First build and start the Rust api:
cd ./api && cargo build -r && ./target/release/api
Then build the Next.js server and run it:
cd ./web && pnpm build && pnpm start