StudyNotion is a fully functional ed-tech platform designed to enable users to create, consume, and rate educational content. Built with the powerful MERN stack (MongoDB, ExpressJS, ReactJS, NodeJS), it aims to deliver an immersive learning experience to students and a robust platform for instructors to showcase their expertise.
- Introduction
- Features
- System Architecture
- Front-end
- Back-end
- API Design
- Deployment
- Running the Project
- Future Enhancements
- Conclusion
StudyNotion strives to make education more accessible and engaging by providing:
- A seamless and interactive learning experience for students.
- A platform for instructors to showcase their expertise and connect with learners worldwide.
-
For Students:
- Browse courses with descriptions and ratings.
- Add courses to wishlist or cart and complete purchases.
- Access detailed course content (videos, documents, etc.).
- Manage user details and edit profile.
-
For Instructors:
- Manage courses (create, update, delete, and edit content).
- Access insights on course performance (views, clicks, ratings).
- Edit profile details.
-
For Admin (Future Scope):
- Monitor platform metrics like revenue and user statistics.
- Manage instructors and users.
The platform follows a client-server architecture, comprising:
- Front-end (ReactJS): Handles user interface and interactions.
- Back-end (NodeJS, ExpressJS): Manages APIs and business logic.
- Database (MongoDB): Stores user data, courses, and media.
The front-end is designed for responsiveness and interactivity using:
- ReactJS: Component-based architecture.
- Tailwind CSS: Styling for a clean and responsive UI.
- Redux: State management for scalable applications.
- Homepage: Brief introduction to the platform.
- Course List: Browse all available courses.
- Wishlist/Cart Checkout: Manage and purchase courses.
- User Details/Edit: Manage profile.
- Dashboard: Overview of instructor's courses.
- Course Management: CRUD operations for courses.
- Insights: Detailed course performance metrics.
The back-end is built using:
- Node.js: JavaScript runtime for server-side logic.
- Express.js: Framework for API handling.
- MongoDB: Flexible NoSQL database for data storage.
- User authentication (JWT and Bcrypt for security).
- Course management (CRUD operations for instructors).
- Payment gateway integration using Razorpay.
- Cloud media storage with Cloudinary.
- Student: Name, email, password, enrolled courses.
- Instructor: Name, email, password, created courses.
- Course: Title, description, media content, ratings.
The platform's API adheres to REST principles, supporting CRUD operations and secure data exchange.
Endpoint | Method | Description |
---|---|---|
/api/auth/signup |
POST | Create a new user account |
/api/auth/login |
POST | Log in and generate a JWT token |
/api/courses |
GET | Retrieve all available courses |
/api/courses/:id |
GET | Retrieve course details by ID |
/api/courses/:id/rate |
POST | Add a rating to a course |
- Front-end: Hosted on Vercel.
- Back-end: Hosted on Render.
- Database: MongoDB Atlas for reliable and scalable data storage.
- Media: Cloudinary for image and video management.
To set up and run the project locally:
-
Clone the repository:
git clone https://github.com/Sandipkushwaha20/StudyNotion cd studynotion
-
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.env
file in the root directory. - Add your environment variables (e.g., database URL, JWT secret, etc.).
To run this project, you need to configure the following environment variables in a
.env
file in the server folder of your project directory:- MAIL_HOST= # Host address for your email provider (e.g., smtp.example.com)
- MAIL_USER= # Email address or username for authentication
- MAIL_PASS= # Password or App-specific password for authentication
- JWT_SECRET= # Secret key for signing JWT tokens
- FOLDER_NAME= # Name of the folder where files will be stored
- RAZORPAY_KEY= # Razorpay API key
- RAZORPAY_SECRET= # Razorpay secret key
- CLOUD_NAME= # Your Cloudinary cloud name
- API_KEY= # Your Cloudinary API key
- API_SECRET= # Your Cloudinary API secret
- MONGODB_URL= # MongoDB connection string
- PORT=4000 # Port on which the server will run
- REACT_APP_BASE_URL= # Base URL for the backend API (e.g., https://api.example.com)
- RAZORPAY_KEY= # Razorpay API key for payment processing
- Create a
-
Start the development server:
npm run dev
The application will be available at http://localhost:3000
.
- Gamification: Add badges, points, and leaderboards to increase engagement.
- Personalized Learning Paths: Tailored course recommendations based on user interests.
- Mobile App: Develop native applications for iOS and Android.
- AI-Powered Features: Use machine learning for personalized recommendations.
- AR/VR Integration: Immersive learning experiences for certain courses.
StudyNotion leverages modern web technologies to offer a robust and user-friendly ed-tech platform. While it already supports a comprehensive feature set, its planned future enhancements will make it even more engaging and impactful for students and instructors.
For more details or contributions, reach out at: [email protected]