Skip to content

SaH1l191/StudyNotion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudyNotion Ed-Tech Platform

StudyNotion is a versatile and intuitive ed-tech platform that enables users to create, consume, and rate educational content. It provides a seamless and interactive learning experience for students while offering a platform for instructors to showcase their expertise and connect with learners worldwide. The platform is built using the MERN stack, which includes ReactJS, NodeJS, MongoDB, and ExpressJS.

Link :- https://v0-study-notion.vercel.app/

Front-End Screenshot

Table of Contents

System Architecture

System Architecture The StudyNotion ed-tech platform follows a client-server architecture with the following main components:

  • Front-end: Built with ReactJS, it communicates with the back end using RESTful API calls.
  • Back-end: Developed with NodeJS and ExpressJS, it handles user authentication, course management, and more.
  • Database: Utilizes MongoDB as a NoSQL database to store course content, user data, and other relevant information.

System Architecture Diagram

Front-end

The front end of StudyNotion is built with ReactJS, offering a dynamic and responsive user interface for students and instructors. Here are some key pages and functionalities:

For Students:

  • Homepage: Introduction to the platform.
  • Course List: List of available courses with descriptions and ratings.
  • Wishlist: Display added courses.
  • Cart Checkout: Complete course purchase using Razorpay.
  • Course Content: Access course material, including videos.
  • Enrolled Courses: Progress and list of enrolled courses.
  • User Details: Account information.
  • User Edit Details: Edit account information.

For Instructors:

  • Dashboard: Overview of instructor's courses and ratings.
  • Insights: Detailed course analytics including the number of views, clicks, and other relevant metrics.
  • Course Management Pages: Create, update, delete courses.
  • View and Edit Profile Details: Account management.

Technologies Used:

  • ReactJS for building dynamic UIs.
  • CSS & Tailwind CSS for styling.
  • Redux for state management.
  • VSCode for development.

Additionally, various npm packages are used to enhance the functionality of the front end.

Back-end

The back end of StudyNotion is built with NodeJS and ExpressJS and uses MongoDB as its primary database. Key features and functionalities include:

  • User Authentication and Authorization: Secure login, OTP verification, and forgot password functionality.
  • Course Management: Instructors can create, update, delete courses, and students can view and rate them.
  • Payment Integration: Razorpay integration for course purchases.
  • Cloud-based Media Management: Cloudinary for storing and managing media content.
  • Markdown Formatting: Course content is stored in Markdown format for rendering.

Technologies Used:

  • Node.js for backend development.
  • Express.js for routing and middleware.
  • MongoDB as a NoSQL database.
  • JWT for authentication and authorization.
  • Bcrypt for password hashing.
  • Mongoose for database interaction.

Data Models and Database Schema

  • Student Schema: Includes name, email, password, and course details.
  • Instructor Schema: Includes name, email, password, and course details.
  • Course Schema: Includes course name, description, instructor details, and media content.

API Design

StudyNotion's API follows the REST architectural style, implemented using Node.js and Express.js. It uses JSON for data exchange and standard HTTP request methods. Below are some sample API endpoints:

  • POST /api/auth/signup: Create a new user account.
  • POST /api/auth/login: Log in and generate a JWT token.
  • POST /api/auth/verify-otp: Verify OTP sent to the user's email.
  • POST /api/auth/forgot-password: Send a password reset link.
  • GET /api/courses: Get a list of all available courses.
  • GET /api/courses/:id: Get details of a specific course.
  • POST /api/courses: Create a new course.
  • PUT /api/courses/:id: Update an existing course.
  • DELETE /api/courses/:id: Delete a course.
  • POST /api/courses/:id/rate: Add a course rating (out of 5).

Sample API Requests and Responses:

  • GET /api/courses: Get all courses
    Response: A list of all courses in the database.

  • GET /api/courses/:id: Get a single course by ID
    Response: The course with the specified ID.

  • POST /api/courses: Create a new course
    Request: The course details in the request body
    Response: The newly created course.

  • PUT /api/courses/:id: Update an existing course by ID
    Request: The updated course details in the request body
    Response: The updated course.

  • DELETE /api/courses/:id: Delete a course by ID
    Response: A success message indicating that the course has been deleted.

Deployment

StudyNotion is deployed on various cloud-based services:

  • Front-end: Vercel for static site hosting.
  • Back-end: Render or Railway for Node.js and MongoDB hosting.
  • Media Files: Cloudinary for media content storage.
  • Database: MongoDB Atlas for database hosting.

This infrastructure ensures scalability, security, and reliability.


Thank you for using StudyNotion!

About

StudyNotion - An Edtech Platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages