/Hypertube

:movie_camera: Hypertube is single page streaming web applications that stream movies. Develop back-end side using nodeJS with express framework.

Primary LanguageJavaScriptMIT LicenseMIT

Hypertube

Contents

Introduction

This project proposes to create a web application that allows the user to research and watch videos.

The player will be directly integrated to the site, and the videos will be downloaded through the BitTorrent protocol.

The research engine will interrogate multiple external sources of your choice, like for example http://www.legittorrents.info, or even https://archive.org.

Once the element selected, it will be downloaded from the server and streamed on the web player at the same time. Which means that the player won’t only show the video once the download is completed, but will be able to stream directly the video feed.

Team

lsoulima

ayoubgm

sberrich

Stack

  • Back:

Node.js express micro-framework,

MongoDb with mongoose ORM Torrent-stream

FFMPEG

API calls

  • Front:

React Js with webpack, react-dom-router

Styled components

Material-UI

Manual

1. Prepare DB

Install MongoDB compass and connect to:

mongodb://127.0.0.1:27017/

2. Clone the repo

$> git clone https://github.com/lsoulima/Hypertube.git
$> cd Hypertube

3. Run Server

  • Front-End:
$> cd client
$> npm i
$> serve -s build -p 3000

Then go to http://localhost:3000 in your Browser.

  • Back-End:
$> cd server
$> npm i
$> npm start

Documentation

In your browser go to :

http://localhost:3001/api/documentation

Preview

landing

register

login

profile

edit

browse

search filter

stream1

stream2

stream3

stream4

Demo

Hypertube Demo in Youtube

General guidelines

All the framework, micro-framework, libraries etc. . . are authorized within the limits where they are not used to create a video stream from a torrent, thus limiting the educational purpose of this project.

⚠️ For example, libraries such as webtorrent, pulsar and peerflix are forbidden.

📱 Our website must be usable on a mobile phone and keep an acceptable layout on small resolutions.

Bonus

  • Add additional Omniauth policies.
  • Manage different video resolutions.
  • API RESTful.
  • Delete Comment.
  • Click on the profile to see who commented.
  • Dark Theme.
  • Arabic Subtitles.
  • Suggestion movies
  • Watched & Favorite lists in profile.

Subject

subject.pdf