Skip to content

jbmsacps-stack/watch-vault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

100 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WatchVault Logo

WatchVault

Build your personal watch vault.
Create lists for everything you want to watch β€” Movies, Series, Anime.

Live Demo Node.js MongoDB

HTML CSS JavaScript

🌐 Live App: Open WatchVault


About

WatchVault is a full-stack web application for organizing personal entertainment. Rather than passive logging, it gives users full control through custom lists and flexible collection management β€” whether queuing a weekend watchlist, tracking series progress, or sorting anime by season.

WatchVault is not a streaming platform. It is a personal organization tool.

This project was built as a portfolio piece, developed primarily through my own problem-solving and technical skills. The entire application β€” frontend, backend, database, authentication, and deployment β€” was completed independently within a 12-hour build window.

The frontend was designed and built using vanilla HTML, CSS, and JavaScript without any frameworks or UI libraries. ChatGPT was used only as a reference tool for clarification and guidance during development.


Screenshots

Home Page

WatchVault Home Page Screenshot



Explore Page

WatchVault Explore Page Screenshot



My List Page

WatchVault My List Page Screenshot

Features

Content Discovery

  • Search movies, series, and anime via the OMDb API
  • Look up titles by keyword or IMDb ID
  • Browse trending content from the homepage

List Management

  • Create and name custom collections
  • Add and remove titles freely across any list
  • Track episode progress with season and episode details per title

Authentication

  • User registration and login
  • Stateless sessions via JSON Web Tokens (JWT)

Data Persistence

  • MongoDB via Mongoose ODM
  • Separate schemas for users, lists, and saved titles
  • All data scoped per user

Tech Stack

Layer Technology
Frontend HTML, CSS, Vanilla JavaScript
Backend Node.js, Express.js
Database MongoDB (Mongoose ODM)
Auth JSON Web Tokens (JWT)
External API OMDb API
Hosting Replit

The frontend uses no frameworks or libraries by design β€” a deliberate choice to demonstrate proficiency with core web fundamentals.


Architecture

Client (HTML / CSS / JS)
        ↓
   Express REST API
        ↓
   Business Logic Layer
        ↓
   MongoDB via Mongoose

Project Structure

watch-vault/
β”‚
β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ auth.js          # Register & login endpoints
β”‚   β”œβ”€β”€ lists.js         # List CRUD operations
β”‚   └── savedTitles.js   # Title save/remove logic
β”‚
β”œβ”€β”€ models/              # Mongoose schemas β€” User, List, Title
β”œβ”€β”€ server.js            # Entry point
β”œβ”€β”€ .env                 # Environment variables (not committed)
β”œβ”€β”€ package.json
└── README.md

Getting Started

Prerequisites

1. Clone the repository

git clone https://github.com/jbmsacps-stack/watch-vault.git
cd watch-vault

2. Install dependencies

npm install

3. Configure environment variables

Create a .env file in the project root:

MONGO_URI=your_mongodb_connection_string
API_KEY=your_omdb_api_key
JWT_SECRET=your_jwt_secret_key

4. Start the server

node server.js

Visit http://localhost:5000


API Reference

Authentication

Method Endpoint Description
POST /api/auth/register Register a new user
POST /api/auth/login Login and receive JWT

Lists

Method Endpoint Description
GET /api/lists Get all lists for the authenticated user
POST /api/lists Create a new list
DELETE /api/lists/:id Delete a list by ID

Saved Titles

Method Endpoint Description
POST /api/saved Save a title to a list
DELETE /api/saved/:id Remove a title from a list

Search

Method Endpoint Description
GET /api/search?q=keyword Search titles by keyword
GET /api/search?id=imdbID Fetch a title by IMDb ID

Roadmap

  • Episode-level progress tracking
  • Automated trending content updates
  • UI transitions and animation improvements
  • Role-based access control
  • Production deployment via Docker or VPS
  • Public list sharing

Author

Joshua Baskar β€” Aspiring Full-Stack Developer

πŸ“¬ jbmsacps@gmail.com
πŸ”— GitHub Β· LinkedIn Β· Live App


Copyright & Usage Terms

WatchVault Β· Copyright Β© 2026 Joshua Baskar Β· All rights reserved.

Permitted Uses

  • Viewing and studying the source code for personal learning
  • Referencing the project in non-commercial academic or portfolio work, with attribution
  • Private forking for personal experimentation
  • Sharing links to this repository or the live application with proper credit

Restricted Uses

The following require explicit written permission from the author:

  • Publicly publishing this project or any substantial portion of its code
  • Monetizing this project in any form β€” paid access, commercial integration, ad revenue, etc.
  • Redistributing modified or unmodified versions under a different name or identity
  • Claiming authorship or ownership of any part of this project

Commercial or revenue-generating use may be discussed. Licensing arrangements, including royalty terms, are open to reasonable negotiation.

πŸ“¬ Contact: jbmsacps@gmail.com

Fair Use

Personal education, commentary, criticism, and non-commercial research are understood to fall within fair use and are welcomed.

Similarity Disclaimer

WatchVault was developed independently. Any resemblance to existing products, services, or applications in name, design, or functionality is coincidental and unintentional.

Usage Summary

Use Case Status
Personal learning & study βœ… Permitted
Private forking & experimentation βœ… Permitted
Sharing with attribution βœ… Permitted
Academic reference with credit βœ… Permitted
Public publishing ⚠️ Permission required
Commercial or monetized use ⚠️ Permission + licensing required
Redistribution under a different name ❌ Not permitted
Claiming ownership ❌ Not permitted

Unauthorized use may be subject to applicable intellectual property and copyright law. The author reserves the right to pursue all available remedies in response to violations.


Last updated: April 2026 Β· Created by Joshua Baskar

⭐ If you found this useful, a star is appreciated.

About

A full-stack web app to explore, organize, and manage movies, series, and anime using custom user lists and flexible content handling.

Topics

Resources

License

Stars

Watchers

Forks

Contributors