afb158becac39870dd4bd9028f03023c729a5c88
Co-authored-by: mathieumoran1 <[email protected]>
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.
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
Configure these in your .env file (required: MONGO_URI, JWT_SECRET):
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)
Example .env:
MONGO_URI=mongodb://127.0.0.1:27017/oscars-pool
JWT_SECRET=change-me
DOG_NAMES=woof,WOOF,Woof
OMDB_API=your_omdb_key
GITHUB_OWNER=quoije
GITHUB_REPO=oscars-pool
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_URIexamples:- Atlas:
mongodb+srv://USER:[email protected]/<dbName>?retryWrites=true&w=majority - Local:
mongodb://127.0.0.1:27017/<dbName>
- Atlas:
- Collections are created/managed automatically from the models in
models/(e.g.User,Movie,Setting,PlaybackProgress).
Languages
JavaScript
71.5%
HTML
19.8%
CSS
4.8%
Python
3.9%
