A full-stack Learning Management System (LMS) built using the MERN Stack that enables instructors to create and manage courses while allowing students to enroll, learn through video lectures, track their progress, and interact with course content through ratings and reviews.
StudyNotion is a scalable EdTech platform designed to provide a seamless online learning experience for Students, Instructors, and Admins. The platform offers secure authentication, role-based authorization, course management, progress tracking, and a responsive user interface.
During the development of this project, I designed and implemented a complete full-stack architecture using MongoDB, Express.js, React.js, and Node.js. I built secure JWT-based authentication with bcrypt password hashing and implemented role-based access control to ensure controlled access for different user roles.
The backend exposes RESTful APIs for user authentication, course creation and management, section and lecture management, student enrollment, progress tracking, and course ratings. On the frontend, I developed a modern and responsive user interface using React.js, Redux Toolkit, and Tailwind CSS, following a modular component-based architecture. The project also integrates Cloudinary for media storage and utilizes efficient MongoDB schema design for managing users, courses, lectures, and student progress.
- User Registration & Login
- Browse and Search Courses
- Enroll in Courses
- Watch Video Lectures
- Track Learning Progress
- Rate & Review Courses
- Update User Profile
- Create, Update & Delete Courses
- Manage Sections and Lectures
- Upload Course Content
- View Student Enrollments
- Instructor Dashboard
- JWT Authentication
- Password Hashing using bcrypt
- Protected Routes
- Role-Based Authorization
- Fully Responsive Design
- Modern UI with Tailwind CSS
- Reusable React Components
- Fast and Interactive User Experience
- React.js
- Redux Toolkit
- React Router
- Tailwind CSS
- Axios
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT (JSON Web Tokens)
- bcrypt
- Cloudinary
- Nodemailer
StudyNotion
โ
โโโ client
โ โโโ public
โ โโโ src
โ โโโ package.json
โ
โโโ server
โ โโโ config
โ โโโ controllers
โ โโโ middleware
โ โโโ models
โ โโโ routes
โ โโโ utils
โ โโโ package.json
โ
โโโ README.md
git clone https://github.com/yourusername/StudyNotion.gitcd StudyNotionFrontend
cd client
npm installBackend
cd ../server
npm installCreate a .env file inside the server directory and configure the following variables:
PORT=
MONGODB_URL=
JWT_SECRET=
MAIL_HOST=
MAIL_USER=
MAIL_PASS=
CLOUD_NAME=
API_KEY=
API_SECRET=
FOLDER_NAME=Note: Never commit your
.envfile or any sensitive credentials to GitHub.
cd server
npm run devcd client
npm startAdd screenshots of the following pages:
- Home Page
- Login Page
- Student Dashboard
- Instructor Dashboard
- Course Details Page
- Course Creation Page
- Full-Stack MERN Application
- RESTful API Architecture
- Secure JWT Authentication
- Role-Based Authorization
- Responsive User Interface
- Cloudinary Media Integration
- Course & Lecture Management
- Student Progress Tracking
- Modular & Scalable Codebase
- Clean Folder Structure
The platform can be extended with several advanced features, including:
- ๐ณ Payment Gateway Integration (Stripe/Razorpay)
- ๐น Live Classes using WebRTC or Zoom API
- ๐ฌ Real-Time Chat & Discussion Forums
- ๐ค AI-Powered Course Recommendations
- ๐ Instructor Analytics Dashboard
- ๐ Course Completion Certificates
- ๐ Online Quizzes & Assessments
- ๐ Push & Email Notifications
- ๐ Multi-language Support
- ๐ฑ Progressive Web App (PWA)
- ๐ฅ Downloadable Course Resources
- ๐ Dark Mode
- ๐ Advanced Search & Filtering
Through this project, I gained practical experience in:
- Building scalable full-stack MERN applications
- Designing RESTful APIs following industry best practices
- Implementing secure authentication and authorization using JWT
- Managing application state with Redux Toolkit
- Designing efficient MongoDB schemas and relationships
- Integrating third-party cloud services like Cloudinary
- Building reusable React components
- Creating responsive user interfaces using Tailwind CSS
- Organizing production-ready backend architecture
- Using Git and GitHub for version control and collaboration
Contributions, suggestions, and feature requests are welcome. Feel free to fork the repository, create a new branch, and submit a pull request.
This project is developed for educational and portfolio purposes.
Chandra Kanth
โญ If you found this project useful, consider giving it a Star on GitHub!