This is an app I made to store and manage the list of movies and tv shows I'm interested in. I used to keep this data in a big Google Sheet, but it required way too much manual work, and searching and filtering was very tedious. There are existing solutions for this, but I wanted a UX tailored exactly to my own needs.
- Adding movies and shows by filling a form, or just pasting an IMDb ID.
- Keeping track of the states: waiting for next season, ready to watch, in progress, etc. Transition between states with a single button press.
- Easy but powerful search, with keywords.
- Poster image search (based on Google image search).
- External links to IMDb, torrent search, subtitle search, trailers, recaps, etc.
- Keyboard shortcuts for frequently used features.
- Mobile support.
- Automatic daily backups.
- Database: MongoDB
- Server: Node.js Express API
- Client: React SPA with Material UI
- All components of the architecture are currently locally hosted. I have scripts to run them all on a single Terminal window.
- All components of the architecture are in the same repository for easy code sharing (in hindsight, this probably wasn't the right decision)
- No unit tests. Since I am the only developer and user of this app, I didn't see the point.
- Only tested on the latest Chrome, Safari and Mobile Safari.
- Clone the repo
- Install MongoDB if you don't already have
nvm use 14
- Run
npm install
- Then
npm run start-all
for development mode.
- Start in development mode:
- Start Mongo DB:
npm run mongo
- Start server:
npm run server
- Start client:
npm start
- Start Mongo DB:
- Start all in development mode:
npm run start-all
- Make production build:
npm run build
- Start production build:
npm run start-all-prod