Skip to content

samuelAemro12/CinemaStash

Repository files navigation

🎬 CinemaStash

Table of Contents

  1. Introduction
  2. Features
  3. Technologies Used
  4. How to Run Locally
  5. Security & Validation
  6. License
  7. Author
  8. Notes
  9. Contributing
  10. Issues

Introduction

CinemaStash is a backend API for a movie management system built with MongoDB, Express, and Node.js. It supports user authentication, movie wishlist management, reviews, and TMDB API integration for movie data. The frontend is planned but not included.

🚀 Features

  • 🔐 User Authentication: JWT-based register/login with bcrypt hashing.
  • 📝 Wishlist Management: Add, view, remove movies from user wishlist.
  • 🌟 Review System: Create, update, delete movie reviews (1–5 rating scale).
  • 🎥 TMDB Integration: Fetch movie details and posters by title.
  • Input Validation: express-validator for user, review, and movie routes.
  • 🛡️ Security: Protected routes, sensitive data filtering (e.g., password, email).

🏗️ Tech Stack

  • Layer
  • Backend- Node.js, Express.js, MongoDB (Mongoose)
  • API Data - TMDB API
  • Authentication - JWT, bcrypt
  • Validation - express-validator
  • Rate Limiting - express-rate-limit

⚙️ How To Run Locally

Steps

  • Clone the repository:
    git clone https://github.com/samuelAemro12/CinemaStash.git   
    cd CinemaStash
    Install dependencies:
npm install
  • Set up .env: Create a .env file in the root directory: env
PORT=5000
MONGO_URI=mongodb://localhost:27017/cinemastash
JWT_SECRET=your_jwt_secret
TMDB_API_KEY=your_tmdb_api_key
  • Run the server:
npm run start

🔐 Security & Validation

Input Validation: express-validator for user, review, and movie inputs. Auth Middleware: JWT protects wishlist, review, and user routes. Data Filtering: Excludes sensitive fields (e.g., password, email in user.controller.js). Planned: Rate limiting (express-rate-limit), modular validators.

📃 License

  • MIT License.

Author

Github

🎓 Final Year Computer Information Systems Student

💼 Aspiring Web Developer

📌 Notes

  • Backend-only API; frontend planned.
  • Contributions welcome! See Contributing.

🤝 Contributing

  • Fork the repository. -Create a feature branch: git checkout -b feature/YourFeature -Commit changes: git commit -m 'Add YourFeature -Push to branch: git push origin feature/YourFeature -Open a Pull Request.

🐛 Issues

Report bugs or suggest features via GitHub Issues.

About

CinemaStash API is a secure and scalable backend for managing movies, reviews, wishlists, and recommendations, with TMDB integration and user authentication.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors