All projects
LiveBack-End

Movie Rate

A social movie tracker. Users log and rate what they watch, keep lists, follow friends' activity and plan movie nights in groups. I built the NestJS + MongoDB backend.

Role
Back-End Developer
Timeline
Jul – Aug 2026
Year
2026
Movie Rate
01

Overview

Movie Rate is a social app for movie lovers. It isn't a streaming site: users log the movies they've watched, rate and review them, keep Watch Later and Favorites lists, add friends, follow their activity, and create groups with a shared watchlist for movie nights.

I built the backend: the NestJS + MongoDB API with authentication, users, movies, friends, groups, reviews, watched and watch-later lists, favorites, activity feed, uploads and real-time notifications. My teammate built the Next.js front-end and later extended the API with polls, taste compatibility and recommendations.

The problem

Friends who love movies track them in scattered notes and chats. They can't easily see what each other watched, how they rated it, or agree on what to watch together.

The solution

One API that powers personal movie libraries, a friends' activity feed, group watchlists and live notifications, with movie data pulled from TMDB and cached so the app stays fast and within API limits.

02

Who It's For

M

Movie lovers

Log, rate and review movies, and keep Watch Later and Favorites lists.

F

Friends

Follow each other's activity and see which friends watched a movie and what they thought.

G

Groups

Share a group watchlist and a watched shelf for movie nights.

03

Key Features

Auth & Accounts

JWT access tokens with rotating refresh tokens, email verification, profiles with display names and profile visit counts.

Ratings, Reviews & Lists

Watched, Watch Later and Favorites lists, plus 1–10 ratings and written reviews for every movie.

Friends & Activity Feed

Friend requests, a feed of friends' activity, and "friends who watched this" on each movie.

Groups

Create or join groups with member limits, a shared watchlist and a group watched list, with filters.

Real-time Notifications

Live in-app notifications over Socket.IO, plus browser (Chrome) notifications.

TMDB Integration

Movie data from TMDB fetched through the backend and cached in MongoDB, so the front-end never calls TMDB directly.

05

Architecture

01

Next.js front-end

Built by my teammate, talks to the API over HTTP and WebSockets

02

REST API

NestJS modules: auth, users, movies, friends, groups, reviews, watched, lists, activities

03

Real-time

Socket.IO gateway pushing notifications to the right users

04

Data

MongoDB for users, lists and activity, plus a cache of TMDB movie data

06

Challenges & Solutions

Designing a social data model on MongoDB

Challenge

The same movie shows up in personal lists, friends' feeds, reviews and group watchlists. Each view needs different data: who watched it, how friends rated it, what the group already saw.

Solution

I kept one cached movie document per TMDB title and linked every list, rating, review and group entry to it by reference. Each module owns its own collection behind a repository, so features like "friends who watched this" or a group watched list are simple, indexed queries instead of duplicated data.

Have a project like this in mind?

I'd love to help you build something great. Tell me what you're working on.

Let's talk