{"id":27448089,"url":"https://github.com/yashsarode45/studynotion-mega-project","last_synced_at":"2026-04-07T07:44:34.582Z","repository":{"id":198875011,"uuid":"691020188","full_name":"yashsarode45/StudyNotion-Mega-Project","owner":"yashsarode45","description":"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.","archived":false,"fork":false,"pushed_at":"2023-09-14T09:33:28.000Z","size":6069,"stargazers_count":12,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T16:20:14.029Z","etag":null,"topics":["bcrypt","cloudinary","express","jwt","mongodb","razorpay-payment","react","redux-toolkit","tailwindcss"],"latest_commit_sha":null,"homepage":"https://study-notion-project-yash.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yashsarode45.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-13T10:47:45.000Z","updated_at":"2025-04-23T14:13:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"52aa5dfe-031d-4233-9639-cf6a67c323ba","html_url":"https://github.com/yashsarode45/StudyNotion-Mega-Project","commit_stats":null,"previous_names":["yashsarode45/studynotion-mega-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yashsarode45/StudyNotion-Mega-Project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashsarode45%2FStudyNotion-Mega-Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashsarode45%2FStudyNotion-Mega-Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashsarode45%2FStudyNotion-Mega-Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashsarode45%2FStudyNotion-Mega-Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yashsarode45","download_url":"https://codeload.github.com/yashsarode45/StudyNotion-Mega-Project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yashsarode45%2FStudyNotion-Mega-Project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31504897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bcrypt","cloudinary","express","jwt","mongodb","razorpay-payment","react","redux-toolkit","tailwindcss"],"created_at":"2025-04-15T07:22:09.989Z","updated_at":"2026-04-07T07:44:34.561Z","avatar_url":"https://github.com/yashsarode45.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StudyNotion Ed-Tech Platform\n\nStudyNotion 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.\n\n## Table of Contents\n\n- [System Architecture](#system-architecture)\n- [Front-end](#front-end)\n- [Back-end](#back-end)\n- [API Design](#api-design)\n- [Deployment](#deployment)\n\n---\n\n## System Architecture\n\nThe StudyNotion ed-tech platform follows a client-server architecture with the following main components:\n\n- **Front-end**: Built with ReactJS, it communicates with the back end using RESTful API calls.\n- **Back-end**: Developed with NodeJS and ExpressJS, it handles user authentication, course management, and more.\n- **Database**: Utilizes MongoDB as a NoSQL database to store course content, user data, and other relevant information.\n\n![System Architecture Diagram](https://github.com/yashsarode45/StudyNotion-Mega-Project/assets/65209607/3a154827-641d-4269-b662-203afcfd7654)\n\n---\n\n## Front-end\n\nThe 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:\n\n**For Students:**\n\n- **Homepage**: Introduction to the platform.\n- **Course List**: List of available courses with descriptions and ratings.\n- **Wishlist**: Display added courses.\n- **Cart Checkout**: Complete course purchase using Razorpay.\n- **Course Content**: Access course material, including videos.\n- **Enrolled Courses**: Progress and list of enrolled courses.\n- **User Details**: Account information.\n- **User Edit Details**: Edit account information.\n\n**For Instructors:**\n\n- **Dashboard**: Overview of instructor's courses and ratings.\n- **Insights**: Detailed course including the number of views, clicks, and other relevant metrics.\n- **Course Management Pages**: Create, update, delete courses.\n- **View and Edit Profile Details**: Account management.\n\nFront-end tools and technologies include ReactJS, CSS, Tailwind CSS, Redux for state management, and VSCode for development.\nAdditionally, we use some npm packages to add extra functionality to the front end.\n\n[View Live Demo](https://study-notion-mega-project-frontend.vercel.app/)\n![studynotion1](https://github.com/yashsarode45/StudyNotion-Mega-Project/assets/65209607/ad992ea3-e257-404a-9d40-83183f7edfd3)\n![studynotion2](https://github.com/yashsarode45/StudyNotion-Mega-Project/assets/65209607/87089177-e065-4b8a-8515-3af8e3aed4db)\n\n\n---\n\n## Back-end\n\nThe back end of StudyNotion is built with NodeJS and ExpressJS and uses MongoDB as its primary database. Key features and functionalities include:\n\n- **User Authentication and Authorization**: Secure login, OTP verification, and forgot password functionality.\n- **Course Management**: Instructors can create, update, delete courses, and students can view and rate them.\n- **Payment Integration**: Razorpay integration for course purchases.\n- **Cloud-based Media Management**: Cloudinary for storing and managing media content.\n- **Markdown Formatting**: Course content is stored in Markdown format for rendering.\n\n**Frameworks, libraries, and tools used**: Node.js, MongoDB, Express.js, JWT for authentication and authorization, Bcrypt for password hashing, and Mongoose for database interaction.\n\n### Data Models and Database Schema\n\n- **Student Schema**: Includes name, email, password, and course details.\n- **Instructor Schema**: Includes name, email, password, and course details.\n- **Course Schema**: Includes course name, description, instructor details, and media content.\n\n---\n\n## API Design\n\nStudyNotion'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. Sample API endpoints include:\n\n- `POST /api/auth/signup`: Create a new user account.\n- `POST /api/auth/login`: Log in and generate a JWT token.\n- `POST /api/auth/verify-otp`: Verify OTP sent to the user's email.\n- `POST /api/auth/forgot-password`: Send a password reset link.\n- `GET /api/courses`: Get a list of all available courses.\n- `GET /api/courses/:id`: Get details of a specific course.\n- `POST /api/courses`: Create a new course.\n- `PUT /api/courses/:id`: Update an existing course.\n- `DELETE /api/courses/:id`: Delete a course.\n- `POST /api/courses/:id/rate`: Add a course rating (out of 5).\n\nSample API requests and responses:\n- `GET /api/courses`: Get all courses\n- Response: A list of all courses in the database\n- `GET /api/courses/:id`: Get a single course by ID\n- Response: The course with the specified ID\n- `POST /api/courses`: Create a new course\n- Request: The course details in the request body\n- Response: The newly created course\n- `PUT /api/courses/:id`: Update an existing course by ID\n- Request: The updated course details in the request body\n- Response: The updated course\n- `DELETE /api/courses/:id`: Delete a course by ID\n- Response: A success message indicating that the course has been deleted.\n\n---\n\n## Deployment\n\nStudyNotion is deployed on various cloud-based services:\n\n- Front-end: Vercel for static site hosting.\n- Back-end: Render or Railway for Node.js and MongoDB hosting.\n- Media Files: Cloudinary for media content storage.\n- Database: MongoDB Atlas for database hosting.\n\nThis infrastructure ensures scalability, security, and reliability.\n\n---\n\nThank you for using StudyNotion!\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashsarode45%2Fstudynotion-mega-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyashsarode45%2Fstudynotion-mega-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyashsarode45%2Fstudynotion-mega-project/lists"}