/Movie_house

This projects recommends the movies/webseries on the basis of search and genre history of the user.

Primary LanguageEJS

Movie_house

This Movie_house is a web-dev project, aims at recommending the movies and series to the user based on the search history of the user with the help of ML Algorithms. It also recommends the content on the basis of user's Genre history as well as genre based filtering of the content. Along with all these, users can create rooms together and hang out and chill while watching the movies. This project is solely designed and developed by our team System_Reboot (Shashank Singh,Himanshi Sharma,Ankit Gupta).

To start the app

  • Run data.py file(python3)
  • npm install
  • node index

Table of Contents:

  • Features
  • Technology Stack
  • Workflow $ Database
  • Future Plans
  • Limitations
  • Troubleshooting
  • Images
  • Credits

Features:

  1. Search Movie : Option is provided to Search movie in the website which return 6 related movies including searched one
  2. Search Based Recommendation : It recommends related moive to the login user according to his/her search history
  3. Popularity based Action Movie Recommendation : Recommends action movie to the user on the basis of the popularity of the movie
  4. Popularity based Thriller Movie Recommendation : Recommends thriller movie to the user on the basis of the popularity of the movie
  5. Popularity based Adventure Movie Recommendation : Recommends adventurous movie to the user on the basis of the popularity of the movie
  6. Create Meets : User can create room in which two or more member can come together and watch movie and can chat simultaneously
  7. Video Conversation : 2+ people can have a video conversation in this website about moive or something
  8. Turn off / on Camera : Users are given the option to either turn on or off their webcam during call
  9. Mute / Unmute Audio : Users are given the option to either turn on or off their mic during call
  10. Mute All Member : A user can mute other users in the call to avoid unwanted sound
  11. Name on Hovering : While hovering on a video box one can see the Member name
  12. Chat : While watching the movie , users can chat simultaneously
  13. Sign Up / Log In : If user watch moives regularly and hosts regular room and want to store the chats, list of created room and quickly remind people of the room then they can log in
  14. Reminders : Server automatically remind users about their room at the time of their room
  15. Contact Us : User can contact us and give feedback which will help me
  16. Help Page : A help page is provided where every question regarding the use of the website is provided
  17. Create Groups / Join Groups : User can create many groups, each with a key to keep the group private and secure from unwanted people
  18. Group Details in Group Dashboard : In the dashboard, one can see the details such as key and members so that if one forgets the key, they can find it there and also know who all are a part of the group
  19. Sound Alerts : This is provided so that the people in the call become aware of the entering of a new person

Technology Stack:

  1. Node.js - Back End
  2. Python - Recommendation system
  3. MongoDB (Mongoose) - Database
  4. Bcrypt - Hash Passwords
  5. Express-session - To manage sessions
  6. EJS - Templating
  7. CSS - Designing (also used Bootstrap's framework and AOS' library to design)
  8. JavaScript - For interactivity (also used jQuery)
  9. Socket.io - For real time communication
  10. Peer.js - Simplifies WebRTC's use
  11. Nodemailer - Sending Reminder Mails
  12. Node-cron - Scheduling Reminders
  13. Pickle - For creating Model file

Workflow

Challenges

  • Cold-start Problem : Recommendation for new user and new movies was a problem for me. So for new user I recommended most popular movie and new movie are recommend to user according to genres and keyword
  • Integration of Python and Nodejs : using "require("child_process").spawn" I got rid of this

Future

Recommend similar choice user :- Recommendation of user those who watch moive of similar genres and keyword.

  • I plan to add genres and keyword of all the searched movie
  • convert whole thing in vector using countVectorizer
  • store distance of one user with all other user in matrix using cosine_similarity
  • Then recommend most similar user

Images :

Home page

Search

Signup

Dashboard

Troubleshooting:

  • If you are not able to see the other user then try checking your connection and try using mobile data
  • If you are not able to connect with the other user - go to inspect -> settings -> untick "Enable Java Script Source Maps"

Credits: