StudyNotion is a fully functional ed-tech platform that enables users to create, consume, and rate educational content. The platform is built using the MERN stack, which includes ReactJS, NodeJS, MongoDB, and ExpressJS. StudyNotion aims to provide:
- A seamless and interactive learning experience for students, making education more accessible and engaging.
- A platform for instructors to showcase their expertise and connect with learners across the globe. In the following sections, we will cover the technical details of the platform, including:
- System architecture: The high-level overview of the platform's components and diagrams of the architecture.
- Front-end: The description of the front-end architecture, user interface design, features, and functionalities of the front-end, and frameworks, libraries, and tools used.
- Back-end: The description of the back-end architecture, features and functionalities of the back-end, frameworks, libraries, tools used, and data models and database schema.
- API Design: The description of the API design, list of API endpoints, their functionalities, and sample API requests and responses.
### Front-end
The front end of the platform is built using ReactJS, ReactJS allows for the creation of dynamic and responsive user interfaces, which are critical for providing an engaging learning experience to the students. The front end communicates with the back end using RESTful API calls
The back end of the platform is built using NodeJS and ExpressJS,. The back end provides APIs for the front end to consume, which include functionalities such as user authentication, course creation, and course consumption. The back end also handles the logic for processing and storing the course content and user data.
The database for the platform is built using MongoDB, which is a NoSQL database that provides a flexible and scalable data storage solution. MongoDB allows for the storage of unstructured and semi-structured data. The database stores the course content, user data, and other relevant information related to the platform.
The StudyNotion platform's API is designed following the REST architectural style. The API is implemented using Node.js and Express.js. It uses JSON for data exchange and follows standard HTTP request methods such as GET, POST, PUT, and DELETE. Sample list of API endpoints and their functionalities:
- /api/auth/signup (POST) - Create a new user (student or instructor) account.
- /api/auth/login (POST) – Log in using existing credentials and generate a JWT token.
- /api/auth/verify-otp (POST) - Verify the OTP sent to the user's registered email.
- /api/auth/forgot-password (POST) - Send an email with a password reset link to the registered email.
- /api/courses (GET) - Get a list of all available courses.
- /api/courses/:id (GET) - Get details of a specific course by ID.
- /api/courses (POST) - Create a new course.
- /api/courses/:id (PUT) - Update an existing course by ID.
- /api/courses/:id (DELETE) - Delete a course by ID.
- /api/courses/:id/rate (POST) - Add a rating (out of 5) to a course. 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.