Final Report
Final Report
Task Distribution
*Most features were worked on by the entire team.
• Steven
– Movie Carousel & Navigation
– Modal Creation
– Content Trailers
– Movie Page
– Television Page
– Genre Pages
– Styling
– View + Partial Creation
– Client Side JS injection Using EJS
– Navigation Bar
– TMDB API integration and Queries
– YouTube API integration
– Local API Integration
– Lists
• Stacy
– Sessions
– Database Queries
– Login Page
– Styling
– Settings
– User Creation
– Updating User Fields
– User Deletion
– Create Account Page
– Lists
• Keldin
– AWS
– S3 Bucket
– Picture Cropping
– Data Management
– Modals
– Site Hosting
– Investor on Domain
– EC2 Instances
– Docker
– Database Schema
1
– Database Scripts
– Create Account
– Sessions
– Lists
• Sam
– Search Bar
– Initial Design Plan
Usage Guide
BingeHive is currently live at here. To get started, simply visit the site and
explore around for different movies or tv shows that are available. If you already
know what you are looking for, there is also a search bar to quickly jump search
for a title.
Technology Stack
• Frontend
– HTML, CSS, and JavaScript
• Backend
– Node.js - Runtime environment for server-side JavaScript
– Express - Used for building RESTful APIs and handling routes
– MySQL - Used for storing and managing user generated data
• Authentication
– Express Session - Used for user authentication and authorization
– Bcrypt - For hashing and salting the user passwords
• Hosting/Deployment
– AWS EC2 - Used for deploying the MySQL database and hosting the
web app
– AWS S3 - Used for storing users’ profile pictures
– Docker - Used for quickly deploying in a containerized environment
• Version Control
– Git - Used for tracking changes in the codebase
2
– Repl - Used for tracking and deploying a testing environment
• Other Tools
– MySQLWorkbench - Used to build the database schema
– IntelliJ - Used to collaborate with others in real time
– SSH - Used for server administration
• External APIs
– YouTube IFrame Player - Used to fetch movie and tv show trailers
– TMDB - Used to fetch information on movies and tv shows (e.g.,
titles and descriptions)
• Additional Dependencies
– Multer - Used for profile picture file uploading from the user
– Tingle - Used for modals
– Cropper - Used for cropping user seleted images client side
app.listen(3000, () => {
console.log("Server started!");
});
Future Plans
Currently, the generated lists can only be seen by the user that owns in. Future
iterations of this web app would allow ideally to share those lists with friends
and family, to create social aspect behind the app.
Acknowledgments/Contact
Feel free to reach out to the team members who contributed to this project.
We’d be happy to answer any questions or provide further information.
• Keldin M. - LinkedIn GitHub
• Stacy K. - LinkedIn GitHub
• Steven C. - LinkedIn GitHub