{"id":26896396,"url":"https://github.com/harshilmalani07/study_notion","last_synced_at":"2026-04-04T08:39:27.301Z","repository":{"id":285341994,"uuid":"957811630","full_name":"HarshiLMalani07/Study_Notion","owner":"HarshiLMalani07","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":"2025-03-31T07:40:36.000Z","size":6068,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T11:48:57.698Z","etag":null,"topics":["bcrypt","cloudinary","express","jwt","mongodb","razorpay-payment","react","redux-toolkit","tailwindcss"],"latest_commit_sha":null,"homepage":"https://studynotion-frontend.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/HarshiLMalani07.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-31T07:08:33.000Z","updated_at":"2025-03-31T07:41:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"4fab3010-273d-470b-8c3e-7395606a060d","html_url":"https://github.com/HarshiLMalani07/Study_Notion","commit_stats":null,"previous_names":["harshilmalani07/study_notion"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HarshiLMalani07/Study_Notion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshiLMalani07%2FStudy_Notion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshiLMalani07%2FStudy_Notion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshiLMalani07%2FStudy_Notion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshiLMalani07%2FStudy_Notion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HarshiLMalani07","download_url":"https://codeload.github.com/HarshiLMalani07/Study_Notion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshiLMalani07%2FStudy_Notion/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261808046,"owners_count":23212688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-01T03:44:04.061Z","updated_at":"2025-12-30T19:51:41.110Z","avatar_url":"https://github.com/HarshiLMalani07.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StudyNotion Ed-Tech Platform\n\n🚀 [Link to website][https://studynotion-frontend.vercel.app/]\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://studynotion-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%2Fharshilmalani07%2Fstudy_notion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharshilmalani07%2Fstudy_notion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshilmalani07%2Fstudy_notion/lists"}