Cursor Agentandmathieumoran1 3884ce6492 feat: Add compression and caching to movie routes
Adds gzip compression middleware and an in-memory cache for movie data to improve performance. Also adds database indexes for common query patterns.

Co-authored-by: mathieumoran1 <[email protected]>
2025-12-21 21:24:27 +00:00
2025-12-21 13:46:11 -05:00
2025-01-26 16:03:25 -05:00

Oscars Pool 2026

Little nodejs + mongodb app that I hack together with ChatGPT and Cursor to keep track of watched movies for an incoming Oscars Pool with some friends.

Oscars Pool 2026

Features

  • User accounts: register, login, JWT auth
  • Simple registration verification via DOG_NAMES
  • Mark nominees as watched (per user), with watched date
  • Browse movies by Oscar year + API for available years
  • User stats: watched count/ratio and watched titles
  • Movie details pulled from OMDb (title/plot/rating/poster) via IMDb ID
  • Admin movie management: add, edit (optionally refresh from OMDb), delete
  • Built-in player page with multiple source options (VOD link, direct video file, embed)
  • Resume playback: per-user playback progress saving (time/duration)
  • Global settings: active Oscar year, “completion” modal content for checklist
  • Password flows: admin temp password reset + forced change on next login
  • Version endpoint backed by latest GitHub commit (cached)

Setup

Create a .env file at the project root (same folder as package.json).

Minimal steps:

npm install
node index.js

Add this to your .env (required: MONGO_URI, JWT_SECRET):

# required
MONGO_URI=mongodb://127.0.0.1:27017/oscars-pool # MongoDB connection string
JWT_SECRET=replace-with-a-random-string         # JWT signing secret (auth)

# optional
DOG_NAMES=woof,WOOF,Woof                        # simple registration "verification"
OMDB_API=your_omdb_key                          # OMDb API key (movie info)
GITHUB_OWNER=quoije                             # version history
GITHUB_REPO=oscars-pool                         # version history

Generate a good JWT_SECRET:

openssl rand -hex 32

Database (MongoDB)

This app uses MongoDB via Mongoose. Provide a connection string in MONGO_URI.

  • Use MongoDB Atlas (recommended) or a local MongoDB instance.
  • MONGO_URI examples:
    • Atlas: mongodb+srv://USER:[email protected]/<dbName>?retryWrites=true&w=majority
    • Local: mongodb://127.0.0.1:27017/<dbName>
  • Collections are created/managed automatically from the models in models/ (e.g. User, Movie, Setting, PlaybackProgress).
S
Description
No description provided
Readme
26 MiB
Languages
JavaScript 71.5%
HTML 19.8%
CSS 4.8%
Python 3.9%