All Projects → techreagan → Youtube Clone Nodejs Api

techreagan / Youtube Clone Nodejs Api

VueTube is a YouTube clone built with nodejs, expressjs & mongodb. This is the RESTful API repository.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Youtube Clone Nodejs Api

Mevn Boilerplate
A fullstack boilerplate with Mongo, ExpressJS, VueJS and NodeJS.
Stars: ✭ 277 (-37.19%)
Mutual labels:  mongoose, mongodb, expressjs
Angular Cms
An flexiable, extendable, modular, single CMS app based on Angular, Express, MongoDB
Stars: ✭ 109 (-75.28%)
Mutual labels:  mongoose, mongodb, expressjs
Angular Full Stack
Angular Full Stack project built using Angular, Express, Mongoose and Node. Whole stack in TypeScript.
Stars: ✭ 1,261 (+185.94%)
Mutual labels:  mongoose, mongodb, expressjs
Mean Angular4 Chat App
MEAN stack with Angular 4 Chat App
Stars: ✭ 41 (-90.7%)
Mutual labels:  mongoose, mongodb, expressjs
Angular2 Express Mongoose Gulp Node Typescript
AngularJS 2 (Updated to 4.2.0) Mean Stack application which uses Angular2, Gulp, Express, Node, MongoDB (Mongoose) with Repository Pattern Business Layer
Stars: ✭ 201 (-54.42%)
Mutual labels:  mongoose, mongodb, expressjs
Mean Stack Angular6 Crud Example
MEAN Stack Angular 6 CRUD Web Application
Stars: ✭ 69 (-84.35%)
Mutual labels:  mongoose, mongodb, expressjs
Vue Nodejs Youtube Clone
This is the frontend (VueJS) of the Youtube clone called VueTube.
Stars: ✭ 314 (-28.8%)
Mutual labels:  mongoose, mongodb, expressjs
Node React Ecommerce
Build ECommerce Website Like Amazon By React & Node & MongoDB
Stars: ✭ 1,080 (+144.9%)
Mutual labels:  mongoose, mongodb, expressjs
Express Es6 Starter
Starter project for creating a MVC express server with MongoDB
Stars: ✭ 178 (-59.64%)
Mutual labels:  mongoose, mongodb, expressjs
Amazona
Build Ecommerce Like Amazon By MERN Stack
Stars: ✭ 152 (-65.53%)
Mutual labels:  mongoose, mongodb, expressjs
Checksheet Manager
Checksheet Manager for college checksheets. Created with AngularJS and Node/Express/MongoDB.
Stars: ✭ 31 (-92.97%)
Mutual labels:  mongoose, mongodb, expressjs
Builderbook
Open source web application to learn JS stack: React, Material-UI, Next.js, Node.js, Express.js, Mongoose, MongoDB database.
Stars: ✭ 3,015 (+583.67%)
Mutual labels:  mongoose, mongodb, expressjs
Nodejs Backend Architecture Typescript
Node.js Backend Architecture Typescript - Learn to build a backend server for Blogging platform like Medium, FreeCodeCamp, MindOrks, AfterAcademy - Learn to write unit and integration tests - Learn to use Docker image - Open-Source Project By AfterAcademy
Stars: ✭ 1,292 (+192.97%)
Mutual labels:  mongoose, mongodb, expressjs
Nodejs Rest Api Project Structure Express
Nodejs project structure practices for building RESTful APIs using Express framework and MongoDB.
Stars: ✭ 134 (-69.61%)
Mutual labels:  mongoose, mongodb, expressjs
Bookmarks.dev
Bookmarks and Code Snippets Manager for Developers & Co
Stars: ✭ 218 (-50.57%)
Mutual labels:  mongoose, mongodb, expressjs
Nest Mean
NestJS Tutorial Repository
Stars: ✭ 250 (-43.31%)
Mutual labels:  mongoose, mongodb, expressjs
Nodejs Restful Api
How to create a RESTful CRUD API using Nodejs?
Stars: ✭ 285 (-35.37%)
Mutual labels:  mongoose, mongodb
Mongoose Paginate V2
A cursor based custom pagination library for Mongoose with customizable labels.
Stars: ✭ 283 (-35.83%)
Mutual labels:  mongoose, mongodb
Mern Social
A MERN stack based social media application [Full-Stack React Projects]
Stars: ✭ 288 (-34.69%)
Mutual labels:  mongodb, expressjs
Jianshu
仿简书nx+nodejs+nestjs6+express+mongodb+angular8+爬虫
Stars: ✭ 296 (-32.88%)
Mutual labels:  mongoose, mongodb

VueTube RESTful API - YouTube Clone

VueTube is a YouTube clone built with nodejs, expressjs & mongodb.

Features

CRUD (Create, Read, Update And Delete)

  • Authentication with JWT (Reset Password with email)
    • Login (User/Admin)
    • Register
    • Forgot Password
  • Pagination and search where necessary
  • API Security (NoSQL Injections, XSS Attacks, http param pollution etc)
  • Video (CRUD)
    • Upload video
    • Upload video thumbnail
    • Watch video
    • Increase Views
    • Like and dislike video
    • Download video
    • Comment & reply for video
    • Update video details
    • Delete video
  • Subscribe to a channel
  • View liked videos
  • Trending
  • Subscriptions
  • History (CRUD)
    • Watch history
    • Search history
  • Settings
    • Modify channel name and email
    • Change password
    • Upload channel avatar

Frontend Repo

Frontend was developed with vue js and vuetify VueTube

API Documentation

Hosted on netlify: Coming Soon

Extensive and testing documentation with postman: VueTube API

Database Model

Though the diagram uses sql data type, this diagram is to show you the various collections in the mongo database.

Screenshot

Requirement

  • NodeJS
  • MongoDB

Configuration File

Rename the config/.env.example to .env, then modify to your environment variables, mongodb uri, set your JWT_SECRET and SMTP variables

NODE_ENV=development
PORT=3001

MONGO_URI=YOUR_URL

JWT_SECRET=YOUR_SECRET
JWT_EXPIRE=30d
JWT_COOKIE_EXPIRE=30

FILE_UPLOAD_PATH = ./public/uploads
MAX_FILE_UPLOAD = 1000000

SMTP_HOST=smtp.mailtrap.io
SMTP_PORT=2525
SMTP_EMAIL=
SMTP_PASSWORD=
[email protected]
FROM_NAME=QuizzApp

Email testing: use mailtrap for email testing, it's easy no stress.

Installation

Install all npm dependecies

npm install

Install nodemon globally

npm install -g nodemon

Note

Make sure you run the seeder to get categories in your database or Create a user with the role admin, then add category with the category endpoint.

Run database seeder

  • Seeder folder is _data/
  • Edit the seeder file if you want to
node seeder -i

Delete all data

node seeder -d

Start web server

node run dev

Screenshots

Delete the screenshot folder if you download this code (Screenshots folder is 3.14mb in size).

Sign In

Screenshot

Sign Up

Screenshot

Home Page

Screenshot

Watch Page

Screenshot

Upload Thumbnail Modal

Screenshot

For more screenshots check out the vue frontend repo VueTube

License

This project is licensed under the MIT License

Developed by Reagan Ekhameye (Tech Reagan)

Reach me on twitter @techreagan

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].