https://github.com/amaansayyad/e-learning_crypto
Building an E-learning app where course minted NFTs and users pay by Crypto.
https://github.com/amaansayyad/e-learning_crypto
blockchain docker elearning elearning-application elearning-platform elearning-site expressjs javascript metamask mongodb moralis nft nodejs reactjs redis redux walletconnect
Last synced: 8 months ago
JSON representation
Building an E-learning app where course minted NFTs and users pay by Crypto.
- Host: GitHub
- URL: https://github.com/amaansayyad/e-learning_crypto
- Owner: AmaanSayyad
- License: mit
- Created: 2021-12-19T09:30:20.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-16T07:20:17.000Z (over 3 years ago)
- Last Synced: 2024-12-31T21:27:18.527Z (9 months ago)
- Topics: blockchain, docker, elearning, elearning-application, elearning-platform, elearning-site, expressjs, javascript, metamask, mongodb, moralis, nft, nodejs, reactjs, redis, redux, walletconnect
- Language: HTML
- Homepage:
- Size: 14.7 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
## "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](https://www.mongodb.com/) or you can Install [MongoDB](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/)
- 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
- [x] Authentication with signup, login, OTP, resend OTP, forgot password (fully validated with bootstrap alerts)
- [x] Google authentication using react-google-login and google auth-library
- [x] Payment gateway -Stripe integrated with backend to buy courses with Net Banking / Card.
- [x] Redux store to easily manage states
- [x] Homepage with courses (categorically)
- [x] Recommended Courses based on user's preferences (Recommendation System)
- [x] Rating of Courses
- [x] Bookmarked Courses where users can remove or add a bookmark
- [x] Download resources (pdf - notes)
- [x] Responsive React Video player for videos
- [x] Progress bar
- [x] CoursePage with all the content of the course
- [x] Searching based on course and teacher
- [x] Real Time Live Group classes-For Teacher's
- [x] Proper Authentication system with signup, login, OTP, resend OTP, forgot password (fully validated with bootstrap alerts)
- [x] Fully validated uploading form with description, title, Image and other details
- [x] CKEditor for writing in textbox with abilities to add different headings, paragraphs, bold, italics, link, tables, sizes etc
- [x] Teacher can upload up to 5 videos with an upload bar to show progress
- [x] Teachers can see their uploaded courses
- [x] Teachers can delete their course
- [x] Teachers can edit their course
---
![]()