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:
MONGO_URI=your-mongodb-connection-string JWT_SECRET=your-jwt-secret PORT=5000 CLIENT_URL=http://localhost:3000
- Create a
-
Run the application:
- Start the backend server:
cd backend npm start
- Start the frontend server:
cd frontend npm start
- Start the backend server:
-
Access the application:
- Frontend:
http://localhost:3000
- Backend:
http://localhost:5000
- 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.