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 install
in the root directory and client directory - Create a file with the name
.env
- Add the application secret key for authentication using
SECRET_KEY
to.env
- Add the application mongo uri
MONGO_LOCAL_URI
to.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_KEY
andCLOUDINARY_API_SECRET
to.env
. - Sign up for AWS S3 and add
S3_ACCESS_KEY
,S3_ACCESS_SECRET
andS3_BUCKET_NAME
to.env
- Final
.env
appear 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 dev
to start the server on the root directory andnpm start
on client to start the application