Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

NotificationsYou must be signed in to change notification settings

techreagan/youtube-clone-nodejs-api

Repository files navigation

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 vuetifyVueTube

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=developmentPORT=3001MONGO_URI=YOUR_URLJWT_SECRET=YOUR_SECRETJWT_EXPIRE=30dJWT_COOKIE_EXPIRE=30FILE_UPLOAD_PATH=./public/uploadsMAX_FILE_UPLOAD=1000000SMTP_HOST=smtp.mailtrap.ioSMTP_PORT=2525SMTP_EMAIL=SMTP_PASSWORD=FROM_EMAIL=noreply@quizapp.comFROM_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 repoVueTube

License

This project is licensed under the MIT License

Developed by Reagan Ekhameye (Tech Reagan)

Reach me on twitter@techreagan

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp