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

Config those in your .env file:

DOG_NAMES=woof, WOOF, Woof     (for "verification")
GITHUB_OWNER=quoije     (for version history)
GITHUB_REPO=oscars-pool     (for version history)
JWT_SECRET=RANDOM STRING     (for authentication token)
MONGO_URI=mongodb+srv://USER:[email protected]/?retryWrites=true&w=majority&appName=Cluster69
OMDB_API=1234567     (for movie info)

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).

run with node .\index.js

S
Description
No description provided
Readme
26 MiB
Languages
JavaScript 71.5%
HTML 19.8%
CSS 4.8%
Python 3.9%