All Projects → yuchiu → Netflix Clone

yuchiu / Netflix Clone

Licence: mit
Netflix like full-stack application with SPA client and backend implemented in service oriented architecture

Programming Languages

javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Netflix Clone

Spring Boot 2.x Examples
Spring Boot 2.x code examples
Stars: ✭ 104 (-33.33%)
Mutual labels:  postgresql, elasticsearch
Tunnel
PG数据同步工具(Java实现)
Stars: ✭ 122 (-21.79%)
Mutual labels:  postgresql, elasticsearch
Scrapyd Cluster On Heroku
Set up free and scalable Scrapyd cluster for distributed web-crawling with just a few clicks. DEMO 👉
Stars: ✭ 106 (-32.05%)
Mutual labels:  scrapy, web-scraping
Bug Tracker Pern Ts
Bug Tracking app with project members support. Made with PERN stack + TypeScript.
Stars: ✭ 79 (-49.36%)
Mutual labels:  postgresql, expressjs
Django Zombodb
Easy Django integration with Elasticsearch through ZomboDB Postgres Extension
Stars: ✭ 136 (-12.82%)
Mutual labels:  postgresql, elasticsearch
Adminer Custom
Customizations for Adminer, the best database management tool written in PHP.
Stars: ✭ 99 (-36.54%)
Mutual labels:  postgresql, elasticsearch
W3develops
The w3develops.org open source codebase - Learn, build, and meetup with other developers on DISCORD https://discord.gg/WphGvTT and YOUTUBE http://bit.ly/codingyt
Stars: ✭ 120 (-23.08%)
Mutual labels:  postgresql, expressjs
Scrapy Craigslist
Web Scraping Craigslist's Engineering Jobs in NY with Scrapy
Stars: ✭ 54 (-65.38%)
Mutual labels:  scrapy, web-scraping
Dialogue.moe
Stars: ✭ 127 (-18.59%)
Mutual labels:  scrapy, elasticsearch
Transformalize
Configurable Extract, Transform, and Load
Stars: ✭ 125 (-19.87%)
Mutual labels:  postgresql, elasticsearch
Transporter
Sync data between persistence engines, like ETL only not stodgy
Stars: ✭ 1,175 (+653.21%)
Mutual labels:  postgresql, elasticsearch
Node Express Postgresql Sequelize
Node.js, Express.js, Sequelize.js and PostgreSQL RESTful API
Stars: ✭ 148 (-5.13%)
Mutual labels:  postgresql, expressjs
Spring Examples
SpringBoot Examples
Stars: ✭ 67 (-57.05%)
Mutual labels:  postgresql, elasticsearch
Whatsmars
Java生态研究(Spring Boot + Redis + Dubbo + RocketMQ + Elasticsearch)🔥🔥🔥🔥🔥
Stars: ✭ 1,389 (+790.38%)
Mutual labels:  rpc, elasticsearch
Aspnetcorenlog
ASP.NET Core NLog MS SQL Server PostgreSQL MySQL Elasticsearch
Stars: ✭ 54 (-65.38%)
Mutual labels:  postgresql, elasticsearch
Haproxy Configs
80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Elasticsearch, SolrCloud, HBase, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, Hue, ZooKeeper, SSH, RabbitMQ, Redis, Riak, Cloudera, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, Rancher etc.
Stars: ✭ 106 (-32.05%)
Mutual labels:  postgresql, elasticsearch
Run johnny
An endless runner game built on phaser and nodejs
Stars: ✭ 14 (-91.03%)
Mutual labels:  postgresql, expressjs
Phalcon Vm
Vagrant configuration for PHP7, Phalcon 3.x and Zephir development.
Stars: ✭ 43 (-72.44%)
Mutual labels:  postgresql, elasticsearch
Openrank Backend
Free and Open Source Coding Challenges Platform
Stars: ✭ 123 (-21.15%)
Mutual labels:  postgresql, expressjs
Indigo
Universal cheminformatics libraries, utilities and database search tools
Stars: ✭ 146 (-6.41%)
Mutual labels:  postgresql, elasticsearch

Netflix Clone

  • Checkout branch "React-View" for frontend only Netflix Clone with React Redux

Quick Links

Demo

Tech Stack

Implementation Hightlights

Getting Started

Deployment

Author

Acknowledgments


Demo

Live Site Demo

Demo: Link

Video Demo

demogif


Tech Stack


Implementation Highlights

  • single page application web client with React & Redux
  • service oriented architecure backend
  • REST for client server communication, JSON RPC for inter service communication
  • scrape raw movie data from imdb
  • provides processed imdb movies data with our movie service API
  • persisted ElasticSearch for movie's database for optimized searching capability
  • PostgreSQL for user's database

User Stories

  • users can register and log in to their account
  • landing page has collections of movie for recommendations
  • users can search for movies
  • users can browse search result by pages
  • users can select and view details of a movie
  • users can see his/her history of browsed movie
  • users can add or remove movie to his/her bookmark

Current Plans for Expansion

  • containerize services and database with Docker

Future Plans for Expansion

  • seperate search into its own service that utilize ElasticSearch, use MongoDB as persisted database for movie-service and sync data between ElasticSearch and MongoDB
  • Machine Learning recommendation system?
  • Machine Learning classification for recommended movie collections?
  • scrape and stream videos for movies?

Getting Started

Prerequisites

!important .env file is required for setting up environment variables for this project
an example of .env file is located at root directory

Tools & Versions

Tools Versions
npm 6.1.0
pip 9.0.1
nodejs 10.7.0
python 2.7
elasticsearch 6.3.1
postgres 10.5

Building Data Pipeline

Data Fetcher

  • install dependencies
pip install -r requirements.txt
  • start scraper pipeline for fetching raw data from IMDB, process and store to ElasticSearch
cd data-pipeline/imdb_scraper
scrapy crawl "imdb_spider"

Serving Application

Movie Service

  • dependent on ElasticSearch as data source

  • install dependencies & start Movie-Service

cd movie-service
npm install
npm start

Application will be serving on http://localhost:3230

User Service

  • dependent on PostgreSQL as data source

  • install dependencies & start User-Service

cd user-service
npm install
npm start

Application will be serving on http://localhost:3130

Web Server

  • install dependencies & start Web-Server
cd web-server
npm install
npm start

Application will be serving on http://localhost:3030

Web Client

  • install dependencies & start application
cd web-client
npm install
npm start

Application will be serving on http://localhost:3000


Deployment

  • Not setup yet

Author

  • Yu Chiu

License

This project is licensed under the MIT License - see the LICENSE file for details


Acknowledgments

  • Not setup yet

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].