StudyNotion is a comprehensive MERN stack-based EdTech platform designed to empower students and educators by providing a seamless learning experience. The platform offers features such as course management, user authentication, dynamic content delivery, and more.
- Features
- Tech Stack
- Setup and Installation
- Project Structure
- Environment Variables
- Available Scripts
- Contributing
- User Authentication: Secure registration and login with JWT-based authentication.
- Role-Based Access Control: Separate roles for students and educators.
- Course Management: Create, update, and manage courses.
- Dynamic Content Delivery: Video lectures, quizzes, and resources.
- Responsive Design: Fully optimized for desktop and mobile.
- Analytics Dashboard: Insights for educators on student engagement.
- Payment Integration: Secure payments for premium courses.
- Frontend: React, Redux, CSS Modules
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT (JSON Web Tokens)
- Hosting: Vercel (Frontend), Render/Heroku (Backend)
- Version Control: Git and GitHub
Ensure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn
- MongoDB (local or cloud-based, e.g., MongoDB Atlas)
-
Clone the repository:
git clone https://github.com/your-username/studynotion.git cd studynotion
-
Install dependencies:
- For the frontend:
cd frontend npm install
- For the backend:
cd backend npm install
- For the frontend:
-
Set up environment variables:
- Create a
.env
file in thebackend
directory. - Add the following variables:
VITE_BASE_URL=https://your-backend-url.com VITE_RAZORPAY_KEY_ID=your_razorpay_key_id_here
- Create a
-
Set up environment variables:
- Create a
.env
file in thefrontend
directory. - Add the following variables:
PORT=3000 DATABASE_URL=your_mongodb_connection_string_here MAIL_USER=[email protected] MAIL_HOST=smtp.gmail.com MAIL_PASS=your_email_password_here JWT_SECRET_KEY=your_jwt_secret_key_here FOLDER_NAME=YourProjectFolderName RAZORPAY_KEY_ID=your_razorpay_key_id_here RAZORPAY_SECRET_ID=your_razorpay_secret_key_here CLOUDINARY_API_KEY=your_cloudinary_api_key_here CLOUDINARY_API_SECRET=your_cloudinary_api_secret_here CLOUDINARY_NAME=your_cloudinary_cloud_name_here
- Create a
-
Run the application:
- Start the backend server:
cd backend npm run dev
- Start the frontend server:
cd frontend npm run dev
- Start the backend server:
-
Access the application:
- Frontend:
http://localhost:5173
- Backend:
http://localhost:3000
- Frontend:
studynotion/
├── frontend/ # React frontend
│ ├── public/ # Public assets
│ ├── src/ # Source files
│ ├── package.json # Frontend dependencies
├── backend/ # Express backend
│ ├── models/ # MongoDB models
│ ├── routes/ # API routes
│ ├── controllers/ # Business logic
│ ├── middlewares/ # Custom middleware
│ ├── utils/ # Utility functions
│ ├── package.json # Backend dependencies
├── README.md # Documentation
- Start:
npm start
- Build:
npm run build
- Start:
npm start
- Development:
npm run dev
Contributions are welcome! Follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Commit changes:
git commit -m "Add your message here"
- Push to the branch:
git push origin feature-name
- Open a Pull Request.