StudyNotion is an ED Tech (Educational Technology) web application developed using MERN stack.
- User Authentication: StudyNotion provides secure user registration and authentication using JWT (JSON Web Tokens). Users can sign up, log in, and manage their profiles with ease.
- Courses by Instructor: Instructors can create and edit created courses.
- Courses for students: Students can enroll in courses, access course materials, and track their progress.
- Progress Tracking: Study Notion allows students to track their progress in enrolled courses. They can view completed lessons, scores on quizzes and assignments, and overall course progress.
- Payment Integration: Study Notion integrates with Razorpay for payment processing. Users can make secure payments for course enrollment and other services using various payment methods supported by Razorpay.(Currently turned off this feature to access course freely to everyone)
- Instructor Dashboard: Instructors have access to a comprehensive dashboard to view information about their courses, students, and income. The dashboard provides charts and visualizations to present data clearly and intuitively. Instructors can monitor the total number of students enrolled in each course, track course performance, and view their income generated from course sales.
- Categories: Courses can fetch courses according to the category of Course.
- React
- Tailwind
- Javascript
- MongoDB Atlas (Database)
- NodeJS
- ExpressJS
- Backend is in the server folder.
- Before uploading courses and anything create the categories e.g. web dev, Python, etc. (without categories courses cannot be added). You can add categories though create category API {YOUR_LOCAL_ADDRESS}/api/v1/course/createCategory using Postman or Hoppscotch.
- Categories can directly be added to the database.
-
Clone the repository to your local machine.
git clone https://github.com/himanshu8443/Study-Notion-master.git
-
Install the required packages.
cd Study-Notion-master npm install cd server npm install
-
Set up the environment variables: Create a .env file in the root directory and /server Add the required environment variables, such as database connection details, JWT secret, and any other necessary configurations check .env.example files for more info. For root folder add these values in .env
REACT_APP_BASE_URL = {YOUR_LOCAL_ADDRESS}/api/v1
Add these values in .env inside server folder
MAIL_HOST = smtp.gmail.com MAIL_USER = {Your_mail} MAIL_PASS = {Your_mail_password} JWT_SECRET = {add_secretKey_yourself} FOLDER_NAME = "StudyNotion" RAZORPAY_KEY = {Razorpay_key}(not neccessary for this code) RAZORPAY_SECRET = {Razorpay_Secret}(not neccessary for this code) CLOUD_NAME = {Cloudinary_id_name} API_KEY = {Cloudinary_api_key} API_SECRET = {Cloudinary_api_secret} MONGODB_URL={Mongodb_atlas_url} PORT = 4000 ORIGIN = {local_address) or {live_frontend_address}
-
Start the development server.
npm run dev