Skip to content

thromel/streamverse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Streamverse

A Netflix-style streaming app built with React, Express, and PostgreSQL.

Prerequisites

  • Node.js 18 LTS recommended (.nvmrc provided; Node 17+ needs the OpenSSL legacy provider for the frontend — already configured)
  • Docker Desktop (for PostgreSQL)

Quick Start

1. Start PostgreSQL

docker compose up -d
# or from repo root: npm run setup   (starts DB + seeds)

This starts Postgres 16 on port 5432 and auto-applies the schema from db/init/01-schema.sql.

Setting Value
Host localhost
Port 5432
Database streamverse
User streamverse
Password streamverse

2. Backend

cd backend
cp .env.example .env   # edit if needed
npm install
npm run seed           # load Table Backup/*.json data
npm start              # http://localhost:5001

3. Frontend

cd frontend
npm install
npm start              # http://localhost:3000

Optionally set REACT_APP_API_URL in frontend/.env if the backend runs on a different host/port.

Project Structure

streamverse/
├── docker-compose.yml       # Postgres container
├── db/
│   ├── init/01-schema.sql   # Postgres schema (auto-applied)
│   └── legacy-oracle/       # Original Oracle DDL/procedures/triggers
├── Table Backup/            # JSON seed data exports
├── backend/
│   ├── app.js               # Express entry point
│   ├── config/              # Environment config
│   ├── controllers/           # Route handlers
│   ├── routes/
│   ├── services/            # DB layer, rating/subscription logic
│   └── scripts/
│       ├── seed.js          # Import Table Backup JSON
│       └── run-tmdb.js      # Optional TMDB data loader
└── frontend/
    └── src/
        ├── config.js        # API_BASE_URL
        ├── pages/
        └── containers/

API Endpoints

Prefix Description
/api/users Signup, login, account settings
/api/profiles Profile CRUD, watchlist, ratings, playback
/api/browse Movies, shows, search, recommendations
/api/subscription Plans, billing, subscription management

Smoke Test

With the backend running:

cd backend && npm run smoke

Optional: Load TMDB Data

Requires TMDB_API_KEY in backend/.env:

cd backend
npm run load-tmdb

Migration Notes

This project was migrated from Oracle (oracledb) to PostgreSQL (pg). Stored procedures and triggers were replaced with application logic in:

  • backend/services/rating-aggregator.js — movie/show rating aggregates
  • backend/services/subscription-utils.js — billing and profile limits

About

A simple Netflix clone developed by Node.js backend & React frontend

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages