Giter VIP home page Giter VIP logo

moviejar's Introduction

MovieJar: Movie Organization and Selection Tool

movie-jar

๐Ÿ“– Table of Contents

โญ Introduction

MovieJar is a project that originated as my capstone project during my Web Development bootcamp at BrainStation, which I am continuously developing further. This project addresses the common challenge of selecting a movie to watch from a vast list of choices. Movies are organized into "Jars" and can be selected based on mood and runtime preferences, simplifying the decision-making process.

๐ŸŽฏ Project Goals and Features

  • MovieJar allows users to organize and select movies by creating customized jars to store groups of movies based on their preferences.
  • A search bar is provided for users to search for movies on TMDB (The Movie Database). Users can select desired results and add them to any number of jars, along with specifying a mood to assist with future selections.
  • Movies and jars are displayed in a user-friendly format. On desktop, hovering over a movie provides details, while on mobile, a modal popup displays information upon user selection.
  • Users have the flexibility to delete jars and movies as needed.
  • The "Movie Picker" tool helps users filter movies in their jars based on preferences such as mood and runtime.
  • The backend of MovieJar is configured with three many-many relationships between users, jars, and movies, enabling future expansion and sharing of jars among friends and family members.
  • The app is fully responsive for both mobile and desktop use.
  • The MVP (Minimum Viable Product) is fully functional, including secure authentication through Google oAuth. Feel free to try it out!

๐Ÿ’ป Technical Implementation

  • Front-end development is powered by React.js and SCSS, with custom styling without relying on design libraries.
  • Movie data is retrieved from TMDB.
  • On the backend, Express.js is used for the API.
  • Authentication is implemented using Google oAuth 2.0 and Passport.js, with session management through Redis.
  • Database management is handled with MySQL2 and Knex.js.
  • Deployment is achieved through Heroku for the backend and Netlify for the frontend, with DNS management via Netlify.

๐ŸŽฌ Demonstration

You can experience MovieJar in action through the following options:

๐Ÿ”จ Installation Instructions

To run MovieJar locally, follow these steps:

  1. Configure the server by following the instructions provided in the backend repository. Start the server.

  2. Clone this repository.

  3. Create a .env file in the project directory and add the following environment variables:

REACT_APP_BASE_URL=<backend server url, ie https://localhost:8080/>
REACT_APP_TMDB_API_KEY=<key from TMDB>
  1. Install dependencies npm i and start project with npm start

๐ŸŒฑ Key Learnings (so far!)

Throughout the development of MovieJar, I have gained valuable insights and experiences:

  • Implementing authentication in the project was a significant learning opportunity, as it introduced complexities that I initially underestimated. However, I thoroughly enjoyed the challenge and ended up refactoring the code to improve its robustness.

  • This project has taught me about scoping and realistic sprint planning, helping me understand how to manage project growth effectively.

  • I've recognized the importance of testing and am actively learning and applying the Jest Testing Framework to enhance the application's reliability and scalability in future releases.

๐Ÿš€ Upcoming Updates

MovieJar is continuously evolving, and I have several exciting updates in the pipeline:

  • Integration of edit functionality for user data.

  • Implementation of the ability to share jars with friends and make movie recommendations.

  • Exploring the integration of external APIs that allow filtering movies based on viewing platforms (e.g., Netflix).

๐Ÿ“š References

  • TMDB (The Movie Database) was used as a data source for this application.

  • Icons used in the project were sourced from icon8 and flaticon.com, created by artists Nguyen Hoang Nam and others.

Thank you for exploring MovieJar! Feel free to reach out with any questions or feedback.

moviejar's People

Contributors

anagelberg avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.