• Stars
    star
    622
  • Rank 72,195 (Top 2 %)
  • Language
    JavaScript
  • Created over 4 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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=
FROM_EMAIL=[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

More Repositories

1

vue-nodejs-youtube-clone

This is the frontend (VueJS) of the Youtube clone called VueTube.
Vue
480
star
2

vuetify-youtube-clone-template

A youtube clone template called vuetube built with vue & vuetify
Vue
207
star
3

twitter-clone-php

A twitter clone with basic functionality like tweet, like tweet, following system etc.
PHP
25
star
4

blog-api

This is a minimal blog api with some advance features developed using NodeJS, ExpressJS and MongoDB. If you are looking for a free RESTful API to interact with feel free to use this. It's open source.
JavaScript
21
star
5

blog-nuxtjs

A simple blog app built with nuxtjs and vuetify
Vue
13
star
6

contact-deno-vuejs

This is a contact list app built with denojs, vuejs & mongodb.
Vue
11
star
7

NodeJS-and-ExpressJS-with-MongoDB-Boilerplate

This is my boilerplate for RESTful API with NodeJS and MongoDB
TypeScript
10
star
8

quiz-restful-api

A quiz restful api with multiple and single choice options comprising of many questions in many categories. It has a public and admin route where admin can create questions and options etc.
JavaScript
10
star
9

Boss

Boss is a mini simple PHP mvc framework
PHP
7
star
10

portfolio

My personal portfolio
Vue
4
star
11

vue-auth

This is a vue token based authentication system.
Vue
2
star
12

job-frontend

Vue
2
star
13

IIC-Management-System

HTML
1
star
14

dice-game

A dice game built with vanilla JavaScript. It's a challenge from my YouTube channel.
JavaScript
1
star
15

job-backend

JavaScript
1
star
16

AppIdea

AppIdea allows users to store their project ideas, to avoid forgetting. Built with Boss PHP mini Framework.
PHP
1
star
17

xylophone-web-app

A xylophone music web app built with HTML, CSS and Vanilla Javascript.
HTML
1
star
18

nuxt-blog-template

Blog template built with vuetify and nuxtjs
Vue
1
star