Hypertube is a mock/clone movie streaming site where users can search for movies that they can either stream or download.
The aim of this project, one of the Web projects from the 42 / WeThinkCode_ curriculum, is to develop a website and demonstrate the learning of the use/implementation of external APIs, oauthentication (external authentication), and torrent protocols.
NOTE - The production of this project is purely educational and in no way indorses pirating in any shape or form.
Hypertube makes use of two servers.
- An Apache server (in this case an bitnami local server)
- A Node server.
A local server to host on, in this case we will make use of bitnami local server environments
- Install Bitnami MAMP
- Install Bitnami WAMP
NOTE - this project hasn't been tested on a linux based system
- Install Bitnami LAMP
- Install Node (12.18.3 LTS)
Clone this repo to your local machine using:
cd [Insert path to your MAMP/ WAMP / LAMP Directory ]/apache2/htdocs
git clone https://github.com/CLetinic/Hypertube.git
Start the Node server
cd [Insert path to your MAMP/ WAMP / LAMP Directory ]/apache2/htdocs/Hypertube/NODE
npm install
node app.js
Locate and run the executable file
Configure Server port
NOTE - by default the server is set to port 80 we need to change it to 8080
Start the server
Browse to site location
http://localhost:8080/Hypertube
In [Insert path to your MAMP/ WAMP / LAMP Directory ]/apache2/htdocs/Hypertube/setup.php
Change the password of $password
, to the password chosen during the installation of bitnami server - phpMyAdmin password.
To create database and tables:
In the browser, navigate to
http://localhost:8080/Hypertube/setup.php
Search page by default show the most popular movies
User is able to Search, Filter and Sort
Crew
NOTE - Here the stream is buffering to at least 10% - Hence the "Pending"
This is on the NODE server when the user clicks stream or download.
NOTE - Only at 10% and aboce will the stream become available
- HTML
- CSS
- Javascript
- jQuery
- Bootstrap
- Bootswatch (Bootstrap Theming) - Cyborg Theme
Granted, it isn't the cleanest file structure....
Hypertube
├── Facebook
│ └── ... # OAuthentication - Facebook
├── favicon
│ └── ...
├── GoogleAPI
│ └── ... # OAuthentication - Google
├── images
│ └── ... # Front-End - Images / Assets
├── misc
│ ├── documents
│ │ ├── hypertube.en.pdf # Project Brief
│ │ └── hypertube.markingsheet.pdf # Project Marking Sheet
│ └── images
│ ├── MAMP
│ │ └── ... # README - Server Setup Images
│ └── ... # README - Project Screen Shots
├── NODE
│ ├── app.js # Back-end - Torrent logic - Script to serve with Node
│ └── ... # Back-end - Torrent logic - Uses Node.js
├── user
│ └── commentinfo.php # Back-End - User Comments
├── 42-callback.php # OAuthentication - 42 | WeThinkCode_
├── config.php # OAuthentication - Configuration
├── home.php # Movie Search Page
├── index.php # Sign In | OAuthentication
├── setup.php # Database - Configuration | Table Creation
├── style.css # Front-End - Styling
└── ... # Front-end | Back-end | Configuration | Project core