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.

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.
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.
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.
Log, rate and review movies, and keep Watch Later and Favorites lists.
Follow each other's activity and see which friends watched a movie and what they thought.
Share a group watchlist and a watched shelf for movie nights.
JWT access tokens with rotating refresh tokens, email verification, profiles with display names and profile visit counts.
Watched, Watch Later and Favorites lists, plus 1–10 ratings and written reviews for every movie.
Friend requests, a feed of friends' activity, and "friends who watched this" on each movie.
Create or join groups with member limits, a shared watchlist and a group watched list, with filters.
Live in-app notifications over Socket.IO, plus browser (Chrome) notifications.
Movie data from TMDB fetched through the backend and cached in MongoDB, so the front-end never calls TMDB directly.
1 / 2Built by my teammate, talks to the API over HTTP and WebSockets
NestJS modules: auth, users, movies, friends, groups, reviews, watched, lists, activities
Socket.IO gateway pushing notifications to the right users
MongoDB for users, lists and activity, plus a cache of TMDB movie data
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.
I'd love to help you build something great. Tell me what you're working on.
Let's talk