Skip to content

Repository files navigation

StreamPick

AI-powered movie and TV show recommendation app that solves the "what should I watch tonight" problem.

Instead of bouncing between Netflix, Google, IMDb, and Reddit to find something good — StreamPick puts everything in one place. Personalized recommendations, multi-source ratings, and an AI agent you can describe a vibe to.

"Something like Breaking Bad but shorter" → StreamPick gives you specific picks with reasons.

Features

  • Personalized home feed — recommendations based on selected genres and thumbs up/down rating history
  • AI chat agent — conversational AI powered by Claude (Anthropic); describe a mood or vibe and get specific recommendations back
  • AI review snippets — Claude generates 3 short review-style snippets per title based on real ratings, genre, and plot data
  • Multi-source ratings — IMDb, Rotten Tomatoes, and Metacritic all in one place
  • Genre filtering — browse by Action, Comedy, Crime, Horror, Sci-Fi, and more
  • Search with filters — search across all titles or filter by Movies only / TV Shows only
  • Watchlist — save titles across sessions
  • Onboarding flow — genre selection and title preference seeding for new users
  • Per-user personalization — Firebase Auth with isolated preferences, watchlist, and rating history per account

Tech Stack

Layer Technology
Framework React Native + Expo (SDK 54)
Language TypeScript
Navigation Expo Router
AI Claude Haiku API (Anthropic)
Movie Data TMDB API + OMDb API
Authentication Firebase Auth
Local Storage AsyncStorage
Build EAS Build
Editor VS Code

AI Integration

Two features powered by Claude Haiku (claude-haiku-4-5-20251001):

1. AI Chat Agent (app/(tabs)/chat.tsx)

  • Multi-turn conversation history passed with every request
  • System prompt engineering to shape recommendation behavior
  • Handles vague, vibe-based queries and asks follow-up questions to narrow recommendations

2. AI Review Snippets (app/detail.tsx)

  • Structured JSON output — Claude returns a strict array of { text, source } objects
  • Generated per-title based on real IMDb rating, genre, plot, director, and cast data
  • Rendered as styled review cards with source attribution

Project Structure

StreamPick/
├── app/
│   ├── (tabs)/
│   │   ├── index.tsx        # Home feed + recommendation engine
│   │   ├── explore.tsx      # Watchlist screen
│   │   └── chat.tsx         # AI chat agent
│   ├── detail.tsx           # Movie/show detail screen
│   ├── onboarding.tsx       # New user onboarding flow
│   ├── auth.tsx             # Login and signup
│   └── _layout.tsx          # Root layout + auth routing
├── firebaseConfig.ts        # Firebase initialization
├── assets/
└── app.json

Setup

  1. Clone the repo
  2. Run npm install
  3. Create a .env file in the root with the following:
EXPO_PUBLIC_CLAUDE_KEY=your_anthropic_api_key
EXPO_PUBLIC_TMDB_TOKEN=your_tmdb_bearer_token
EXPO_PUBLIC_OMDB_KEY=your_omdb_api_key
EXPO_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
EXPO_PUBLIC_FIREBASE_APP_ID=your_app_id
  1. Run npx expo start
  2. Press i for iOS simulator or a for Android

APIs Used

  • TMDB API — movie and TV discovery, genre filtering, search, trending
  • OMDb API — IMDb ratings, Rotten Tomatoes, Metacritic scores
  • Anthropic Claude API — AI review snippets and conversational recommendations

This product uses the TMDB API but is not endorsed or certified by TMDB.

Status

Currently in final testing. Android build complete via EAS Build. Submitting to Google Play Store.

Author

Anarat Fatima MS Business Analytics — W.P. Carey School of Business, Arizona State University LinkedIn

About

AI-powered movie & TV show recommendation app built with React Native, Firebase, and Claude API

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages