All Projects → ayush-lab → Coursera-Clone

ayush-lab / Coursera-Clone

Licence: GPL-3.0 license
Coursera clone

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Coursera-Clone

sre
📚 Index for my study topics
Stars: ✭ 47 (-2.08%)
Mutual labels:  coursera, courses
gobarber-api-gostack11
API GoBarber / NodeJS / Express / Typescript / SOLID
Stars: ✭ 39 (-18.75%)
Mutual labels:  jest, multer
Awesome Courses
List of free online programming/CS courses [Massive Open Online Courses]
Stars: ✭ 273 (+468.75%)
Mutual labels:  coursera, courses
node-backend-template
A template for NodeJS backend projects
Stars: ✭ 19 (-60.42%)
Mutual labels:  jest, multer
Go Videos Ru
Каталог докладов, лекций и других видеоматериалов по Go
Stars: ✭ 64 (+33.33%)
Mutual labels:  coursera, courses
links-to-free-online-courses
📖 Free online courses resources.
Stars: ✭ 51 (+6.25%)
Mutual labels:  coursera, courses
nodejs-graphql-template
Template project for Node.js® GraphQL APIs
Stars: ✭ 13 (-72.92%)
Mutual labels:  jest
rating
Rating stars component
Stars: ✭ 28 (-41.67%)
Mutual labels:  rating
reactjs-vite-tailwindcss-boilerplate
ReactJS + Vite boilerplate to be used with Tailwindcss.
Stars: ✭ 103 (+114.58%)
Mutual labels:  jest
geek-time-courses
Geektime courses sharing repo
Stars: ✭ 15 (-68.75%)
Mutual labels:  courses
React-Redux-Enterprise
A React-Redux boilerplate for enterprise/large scaled web applications
Stars: ✭ 77 (+60.42%)
Mutual labels:  jest
xv
❌ ✔️ zero-config test runner for simple projects
Stars: ✭ 588 (+1125%)
Mutual labels:  jest
image-upload-app
A simple image upload application using React and Node, which explores multiple ways to upload an image including using multer as a middleware, a CDN system and converting an image to a string and storing it.
Stars: ✭ 35 (-27.08%)
Mutual labels:  multer
node-bookmarks-parser
Parses Firefox/Chrome HTML bookmarks files
Stars: ✭ 44 (-8.33%)
Mutual labels:  bookmark
react-jest-enzyme-example
A minimal configuration for testing React components with Jest and Enzyme.
Stars: ✭ 23 (-52.08%)
Mutual labels:  jest
qa-automation-base
There are basic projects for automation frameworks based on Kotlin/Java and TypeScript for the backend, frontend, and mobile.
Stars: ✭ 45 (-6.25%)
Mutual labels:  jest
ds
👨‍🔬 In Russian: Обновляемая структурированная подборка бесплатных ресурсов по тематикам Data Science: курсы, книги, открытые данные, блоги и готовые решения.
Stars: ✭ 102 (+112.5%)
Mutual labels:  courses
zeit
A Fitbit clock face for learners of the German language
Stars: ✭ 41 (-14.58%)
Mutual labels:  jest
Robotics--Coursera
Courses by University of Pennsylvania via Coursera
Stars: ✭ 48 (+0%)
Mutual labels:  coursera
Applied-Text-Mining-in-Python
Applied Data Science with Python Specialization: Course 4 (University of Michigan)
Stars: ✭ 26 (-45.83%)
Mutual labels:  coursera

Coursera Clone star repo

Fully responsive single page application made using MERN Stack! 💙

TECH USED

  • React
  • Node
  • Mongo db
  • Express
  • Redux
  • Redis
  • Jest

DATABASE USED

  • Mongo
  • Redis

Getting Started

Clone the repo to your local environment, you have to seperately install all the dependencies for backend and frontend.

For Backend, go to the backend folder (cd Backend) and run npm i

  • Install MongoDB

  • or, you can use the website

  • add your environmental variables

  • Create a .env file in the root directory of the backend folder and add your tokens there with respect to the config files variables.

    • ACCESS_TOKEN_SECRET = "some secret"
    • ACCESS_TOKEN_LIFE = time
    • REFRESH_TOKEN_SECRET = "some secret"
    • REFRESH_TOKEN_LIFE = time
    • SENDGRID_KEY = ""
    • MONGO_DATABASE = ""
    • OAuth2Client = ""
    • STRIPE_SECRET_TOKEN = ""
    • REDIS_HOST = ""
    • REDIS_PASSWORD = ""
    • REDIS_PORT = ""

Note: Make sure the .env files variables matches with that of the config files like the image below.

env files variables

For Frontend, go to the frontend folder (cd Front-end) and run npm i

To run a development environment, you can use the npm start command. This will start up a development web server on port 3000 for frontend, and a nodemon-watched API server on port 8080.

Note: you have to do npm start for backend and frontend seperately.

Unit testing

You can test the backend, express endpoints using command ( npm test )

Docker Compose

Coursera Clone is dockerised and docker hub repository can be found here https://hub.docker.com/repository/docker/ayushverma/coursera/general

If you use Docker and Docker Compose, you can start the entire project with:

docker-compose up

🏭 Features

Student

  • Authentication system with signup,login,otp verification,resend otp,forgot password (fully validated with bootstrap alerts)
  • Google authentication (Oauth2) using react-google-login and google auth-library
  • Stripe Payment gateway integrated with backend to buy courses
  • Redux store to easily manage states
  • Homepage with courses being fetched categorically
  • Recommended Courses based on user's preferences
  • Rating of Courses
  • Bookmarked Courses where users can remove or add bookmark
  • Download resourses (pdf - notes)
  • Responsive React Video player for videos
  • Progress bar
  • CoursePage with all the content of the course
  • Searching based on course and teacher
  • Real Time Live Group classes

Teacher

  • Proper Authentication system with signup,login,otp verification,resend otp,forgot password (fully validated with bootstrap alerts)
  • Fully validated teacher uploading form with descriptition,title,Image and other details
  • CkEditor for writing in textbox with abilities to add diffrent headings,paragraphs,bold,italics,link,tables,sizes etc
  • Teacher can upload upto 5 videos with upload bar to show progress
  • Teacher can see their uploaded courses
  • Teacher can delete their course
  • Teacher can edit their course

Testing using jest and supertest for express endpoints.

Real Time Live Group Classes using socket.io and Optimized with redis for caching messages

Screenshots

Authentication pages

Signup Page

alt text

Login Page

alt text

Otp and Resend Otp Page

alt text

Forgot Password Page

alt text


Main Screens

Homepage

alt text

Course Page

alt text

Bookmark Page

alt text

Payment Checkout Page

alt text

Live Classes Page

alt text

Preference Page

alt text

Teacher's Courses

alt text

Teacher Uploading Details

alt text

Teacher Uploading Videos

alt text


Responsive Designs

Mobile Design Authentication

alt text

Mobile Design CoursePage

alt text

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