This project is a video streaming website that allows users to upload video to their account, the video can be watched or viewed by other users who have access to the website.
- React/Typescript - The framework used for developing the components and UI.
- Material UI - Javascript framework for styling and CSS compartmentalization.
- ReactPlayer - ReactPlayer is used for the video player.
- Node JS/Express JS - Backend used for our API routes.
- Mongo DB/Atlas - Database used to store our user and application data.
- AWS Bucket - AWS bucket is used for storing of user profile Image.
- Cloudinary - Cloudinary is used for storing of videos.
- User login/sign up authentication.
- Upload videos.
- Users are able to watch videos which is streamed from the server.
- Delete videos.
- upload profile image.
- update user profile.
- Comment on a Video.
- Like or dislike a Video.
- Like or dislike a Comment.
If you want to run the application locally, follow the instructions below:
- Clone repository
- Install Dependencies - Run
npm installin the root directory and client directory - Create a file with the name
.env - Add the application secret key for authentication using
SECRET_KEYto.env - Add the application mongo uri
MONGO_LOCAL_URIto.env. Additional information to run mongoDB locally can be found here. Alternatively you can use Mongo Atlas here. - To run code from the code editor, create an account on Cloudinary. You can find your api key after registering here. Add cloudinary keys
CLOUDINARY_NAME,CLOUDINARY_API_KEYandCLOUDINARY_API_SECRETto.env. - Sign up for AWS S3 and add
S3_ACCESS_KEY,S3_ACCESS_SECRETandS3_BUCKET_NAMEto.env - Final
.envappear should like below:
JWT_SECRET=<Secret key for JWT >
MONGO_LOCAL_URI=<Your mongo uri>
AWS_BUCKET_NAME=<your aws bucket name>
AWS_BUCKET_REGION=<your aws bucket data base region>
AWS_BUCKET_ACCESS_KEY=< your aws access key>
AWS_BUCKET_SECRET_ACCESS_KEY=< your aws secret access key>
CLOUDINARY_NAME=< your cloudinary account name>
CLOUDINARY_API_KEY=< your cloudinary api key>
CLOUDINARY_API_SECRET=<your cloudinary api secret key>
- Run
npm run devto start the server on the root directory andnpm starton client to start the application
