PC
WorkAboutContactResume
Work
LiveGitHub
00

Case Study

CineScope

Full-stack movie platform with Gemini-powered recommendations, Redis caching, and versioned FastAPI services.

01

The Problem

Movie discovery is fragmented across search, reviews, and watchlists. Most experiences are either generic or limited to keyword matching.

02

The Solution

CineScope combines catalog discovery, semantic recommendations, watchlist workflows, and session security in one backend-first platform.

Conversational Discovery

Gemini Pro powers conversational recommendations with semantic matching across the catalog.

Conversational DiscoveryGemini Pro powers conversational recommendations with semantic matching across the catalog.
Caching First

Redis reduces repeated TMDB requests and improves responsiveness for high-frequency queries.

Caching FirstRedis reduces repeated TMDB requests and improves responsiveness for high-frequency queries.
Versioned Data Layer

SQLAlchemy 2.0 models + Alembic migrations keep schema changes explicit and production-safe.

Versioned Data LayerSQLAlchemy 2.0 models + Alembic migrations keep schema changes explicit and production-safe.
Secure Sessions

JWT refresh token rotation via Redis enables revocable, safer long-lived sessions.

Secure SessionsJWT refresh token rotation via Redis enables revocable, safer long-lived sessions.
03

Stack

FastAPI · PostgreSQL · Redis · SQLAlchemy 2.0 · Gemini Pro · Docker Compose · Next.js · Alembic · PyJWT

04

Architecture

01Next.js frontend
02FastAPI backend (versioned routes + OpenAPI)
03Redis cache layer
04TMDB fetch pipeline on cache miss
05Gemini recommendation layer
06PostgreSQL persistence (SQLAlchemy + Alembic)

Backend deployed with Docker Compose on DigitalOcean, frontend on Vercel, API docs exposed through Swagger.

05

My Role

Designed and built the backend architecture with clean service boundaries, versioned APIs, and migration-first database changes.

Integrated conversational recommendations using Gemini Pro and semantic search primitives over the movie catalog.

Implemented Redis caching strategy to reduce external dependency pressure and improve repeat-query performance.

Built secure auth flows using JWT refresh token rotation and Redis-managed session controls.

Containerized deployment workflow to keep local and production environments reproducible and predictable.

06

Technical Challenge

Challenge: External API limits and repeated calls

Without caching, popular queries repeatedly hit upstream APIs, increasing latency and operational risk during traffic spikes.

Solution: Read-through Redis caching

  1. 01Check Redis before every catalog lookup
  2. 02Serve cache hits immediately
  3. 03On miss, fetch from TMDB and write back with TTL
  4. 04Reuse cached payloads for repeated queries

Lower external dependency load, more stable response behavior, and better user-perceived speed.

Explore CineScope

Live in production.

Try the demoBackend sourceFrontend source