About this app
 What is this app?

CMDb (Claudia's Movie Database) is a small movie database I created as part of my Full Stack Web Development training with CareerFoundry. The app allows users to create accounts, browse movies, and curate a list of favorites. Built with the MERN stack (MongoDB, Express, React, Node.js), it was a valuable learning experience and hopefully I get to build more of these types of things in the future.

Please note: This is a training project for demonstration purposes, not a commercial product. Enjoy exploring, but keep in mind—it’s not the next IMDb!

Thanks a bunch for trying it out!

 Features

User Accounts: You can sign up with a username, password, and an email (feel free to use any email, real or fake). Log in and out to personalize your movie experience.

Movie Collection: Browse movies by title, actor, genre, and director. Filter movies by genre and sort them alphabetically. View detailed movie information, including cast, director, and similar movies.

Favorite Movies: Add and remove movies from your personal list of favorites.

Profile Customisation: Update your username, password, or email from within the app. You can delete your account at any time.

Node.js & Express: Web server environment and framework. These tools power the "behind the scenes" part of the app, handling user requests and delivering data, like movie information, to the frontend.

MongoDB & Mongoose: Database and object data modeling. The app’s movie and user data are stored in MongoDB, and Mongoose helps organize that data, making it easier to manage.

JWT (JSON Web Tokens): For user authentication. This ensures that when users log in, their identity is securely verified so they can safely access their account.

Bcrypt: For password hashing. Protects user passwords by encrypting them, making it harder for hackers to steal sensitive information.

CORS: Cross-origin resource sharing middleware. Allows the frontend and backend to communicate securely, even if they are hosted on different servers.

Heroku & MongoDB Atlas: Hosting the API and database. These are platforms that host the backend and the database, making the app accessible online.


  API Documentation

Documentation regarding all the available API endpoints was set up with Swagger can be found here.

ReactJS: Framework for building the single-page app (SPA). This is the tool used to build the visible part of the app that users interact with, like movie lists and user profiles.

React Bootstrap: Styling and UI components. Helps style the app and make it look nice by providing pre-made buttons, layouts, and other design elements.

Parcel: Build tool for bundling the app. This tool packages all the code together, optimizing it so the app loads quickly and efficiently.

Netlify: Hosting the frontend app. A platform that hosts the frontend of the app, making it available online for users to access from anywhere.

  Disclaimer & Legal Notice

For Educational Purposes Only: This app was created as part of a learning project and is not intended for commercial use. All functionalities are aimed at showcasing my Full Stack development skills, and no monetary gains or commercial activities are involved.

Movie Data & Images used: The movie information (descriptions, genres, etc.) and images (movie posters) are sourced from IMDb and other publicly available data. They are used for non-commercial educational purposes only. If you are the owner of any content displayed and believe it should be removed, please contact me, and I will address it promptly.

No Misuse Intended: The app is not designed for improper use. It does not collect sensitive data beyond what is necessary to demonstrate user login and customization features. No emails will be sent to users. No personal emails, communications, or marketing materials will be sent to users. You are welcome to create an account using fake or temporary email addresses.

  Impressum

As this is a non-commercial, educational project, it should not require a formal Impressum. However, if you have any concerns, feel free to reach out to me for clarifications.

Privacy Policy: User data (username, password, email) is collected in a database built with MongoDB and securely hosted on Heroku. This user data is not shared with third parties. No communications or marketing emails will be sent to users, and all data stays within the app for demonstration purposes only. Users can delete their account and associated data anytime from within the app.

Terms & Conditions: This app is for demonstration and learning purposes only. By using this app, you acknowledge that it is a student project, and any data you input is not intended to be used for real-world purposes.