Skip to content

StudyNotion is an EdTech platform with three user roles: Admin, Instructor, and Student. The Admin creates categories, Instructors create courses within those categories, and Students learn through interactive content. It’s designed to streamline course management and provide a smooth learning experience.

Notifications You must be signed in to change notification settings

ChaitanyaZunzurkar/StudyNotion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 

Repository files navigation

StudyNotion

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.


Table of Contents


Features

  • 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.

Tech Stack

  • 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

Setup and Installation

Prerequisites

Ensure you have the following installed:

  • Node.js (v14 or higher)
  • npm or yarn
  • MongoDB (local or cloud-based, e.g., MongoDB Atlas)

Installation Steps

  1. Clone the repository:

    git clone https://github.com/your-username/studynotion.git
    cd studynotion
  2. Install dependencies:

    • For the frontend:
      cd frontend
      npm install
    • For the backend:
      cd backend
      npm install
  3. Set up environment variables:

    • Create a .env file in the backend directory.
    • Add the following variables:
      VITE_BASE_URL=https://your-backend-url.com
      VITE_RAZORPAY_KEY_ID=your_razorpay_key_id_here
  4. Set up environment variables:

    • Create a .env file in the frontend 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
  5. Run the application:

    • Start the backend server:
      cd backend
      npm run dev
    • Start the frontend server:
      cd frontend
      npm run dev
  6. Access the application:

    • Frontend: http://localhost:5173
    • Backend: http://localhost:3000

Project Structure

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

Available Scripts

Frontend

  • Start:
    npm start
  • Build:
    npm run build

Backend

  • Start:
    npm start
  • Development:
    npm run dev

Contributing

Contributions are welcome! Follow these steps:

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature-name
  3. Commit changes:
    git commit -m "Add your message here"
  4. Push to the branch:
    git push origin feature-name
  5. Open a Pull Request.

About

StudyNotion is an EdTech platform with three user roles: Admin, Instructor, and Student. The Admin creates categories, Instructors create courses within those categories, and Students learn through interactive content. It’s designed to streamline course management and provide a smooth learning experience.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published