A Full Stack MERN Based Web Project
StudyNotion is a full-stack MERN EdTech platform where users can browse courses, purchase them, access dashboards, manage their learning progress, and interact with a clean and structured UI. The project includes a complete authentication system, course management, payments, and a production-ready backend.
StudyNotion is designed to provide a simple and effective learning experience. Users can sign up, log in, explore courses, watch content, and manage their profile. The platform also includes admin and instructor-focused functionality such as course creation, section management, and content upload.
- User registration and login
- JWT-based authentication
- Course browsing page
- Course details page
- Course purchase using Razorpay
- User dashboard with enrolled courses
- Instructor features for creating and managing courses
- Content management with sections and subsections
- Secure backend APIs
- Cloud media storage support
- Responsive frontend
- Centralized global state for user and course data
- React
- Redux / Context API
- Tailwind CSS
- React Router
- Node.js
- Express.js
- MongoDB with Mongoose
- Razorpay for payments
- Cloudinary for media storage
- JWT authentication
- Bcrypt for password hashing
Clone the repository:
git clone https://github.com/your-username/studynotion.gitNavigate to the project folder:
cd studynotionInstall frontend dependencies:
cd frontend
npm installInstall backend dependencies:
cd backend
npm installStart the backend server:
cd backend
npm run devStart the frontend:
cd frontend
npm run devCreate a .env file in the backend folder and add the following variables:
MONGODB_URL=
JWT_SECRET=
RAZORPAY_KEY_ID=
RAZORPAY_KEY_SECRET=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
Create a .env file in the frontend (if needed):
VITE_BACKEND_URL=
- POST /auth/signup
- POST /auth/login
- POST /auth/reset-password
- GET /courses
- GET /courses/:id
- POST /courses/create
- POST /courses/add-section
- POST /courses/add-subsection
- POST /payments/capture
- POST /payments/verify
- GET /profile
- GET /profile/enrolled-courses
If you want to contribute:
- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request