Skip to content

Building an E-learning app where course minted NFTs and users pay by Crypto.

License

Notifications You must be signed in to change notification settings

AmaanSayyad/E-learning_Crypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

"Building an E-learning app where course minted NFTs and users pay by Crypto."

~ Fully Fledged, Automated and Responsive Multi Page Application.


📌 Getting Started

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

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

  • Use MongoDB Cloud Storage or you can Install MongoDB

  • 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 = "somesecretlongstring"
    • ACCESS_TOKEN_LIFE = 10H
    • REFRESH_TOKEN_SECRET = "somesecretlongstringxyz"
    • REFRESH_TOKEN_LIFE = 10H
    • SENDGRID_KEY = "CreateAccountonSendGridaccesstheotpandgetthekeystringhere"
    • MONGO_DATABASE = "CreateAccountonMongoDBAtlascreateclustergetthekeystringhere"
    • OAuth2Client = ""
    • STRIPE_SECRET_TOKEN = ""
    • REDIS_HOST = ""
    • REDIS_PASSWORD = ""
    • REDIS_PORT = ""

[Note: Make sure the variables of the .env file match with that of the config files.]


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


📌 Implemented Features Overview:

-For Student's

  • Authentication with signup, login, OTP, resend OTP, forgot password (fully validated with bootstrap alerts)
  • Google authentication using react-google-login and google auth-library
  • Payment gateway -Stripe integrated with backend to buy courses with Net Banking / Card.
  • Redux store to easily manage states
  • Homepage with courses (categorically)
  • Recommended Courses based on user's preferences (Recommendation System)
  • Rating of Courses
  • Bookmarked Courses where users can remove or add a bookmark
  • Download resources (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

-For Teacher's

  • Proper Authentication system with signup, login, OTP, resend OTP, forgot password (fully validated with bootstrap alerts)
  • Fully validated uploading form with description, title, Image and other details
  • CKEditor for writing in textbox with abilities to add different headings, paragraphs, bold, italics, link, tables, sizes etc
  • Teacher can upload up to 5 videos with an upload bar to show progress
  • Teachers can see their uploaded courses
  • Teachers can delete their course
  • Teachers can edit their course