Study Notion
Study Notion
Computer Aided Power Electronics Analysis And Design (Rajiv Gandhi Proudyogiki
Vishwavidyalaya)
STUDY
NOTION
A Major Project Report
Submitted in Partial fulfillment for the award of
Bachelor of Technology in CSE-AIML
Submitted to
RAJIV GANDHI PROUDYOGIKI VISHWAVIDYALAYA
BHOPAL (M.P)
Department of CSE-AIML
Lakshmi Narain College of Technology, Bhopal
(M.P.)
Session 2022-23
DEPARTMENT OF CSE-AIML
CERTIFICATE
Guide Name
Approved By
(Prof.)
Prof. & HOD
DEPARTMENT OF CSE-AIML
ACKNOWLEDGEMENT
Anup Arya
(0103AL201009),
Jiya Tejwani
(0103AL201025),
Nayan Kolankar
(0103AL201033)
S.NO TOPICS
1. Introduction
2. Literature Survey.
4. Problem Analysis
6. ER Diagram/Flow Diagram
7. Software Specification
9. Coding
11. Conclusion
CHAPTER 1
INTRODUCTION
The platform is built using the MERN stack, which includes ReactJS, NodeJS,
MongoDB, and
Express JS.
4. Assessment and Analytics: Ed Tech platforms often include tools for creating
and conducting assessments, as well as analytics to track student performance.
These analytics can provide valuable insights for educators to tailor their
teaching methods and interventions.
9. Data Security and Privacy: Given the sensitive nature of educational data,
Ed Tech platforms need robust security measures to protect student and
teacher information. Compliance with data privacy regulations is crucial.
10. Integration with Other Systems: Many Ed Tech platforms need to integrate
with existing educational systems, such as student information systems, to
streamline data flow and ensure a cohesive educational experience.
CHAPTER 2
LITERATURE SURVEY
● EdTech allows students to learn from virtually anywhere. There are no longer
restrictions keeping students and teachers in the classroom or even in the same
geographic location as their instructors.
● EdTech gives teachers the flexibility to create different learning plans for each
might give students the ability to visit new locations through videos or play
educational games, or they could even use augmented reality (AR) or virtual
reality (VR) to enhance a lesson.
might give students the ability to visit new locations through videos or play
educational games, or they could even use augmented reality (AR) or virtual
reality (VR) to enhance a lesson.
● When teaching resources are exclusively online, students and instructors can
easily collaborate on assignments during class and after school. Platforms like
social media, collaborative wiki pages, and interactive whiteboards also allow
students to work together easily and virtually.
● Before EdTech changed how students learn, getting in touch with a teacher
outside of school was difficult. Now, with messaging apps and virtual
meetings, a student may be able to get real-time help when they need it — if
the instructor is available, of course.
plans for each of their students. This approach aims to customize learning
based on a student’s strengths, skills and interests. Video content tools help
students learn at their own pace and because students can pause and rewind
lectures, these videos can help students fully grasp lessons.
● Educational technology has the potential to make everything — from the way
their course materials. Thus, one of the primary goals of any top educational
app development firm is to foster increased student engagement.
unique needs of individual learners. Custom Edu Tech solutions use data-
driven algorithms, AI, and ML techniques. These technologies help construct
customized learning trajectories. These technologies consider each student’s
strengths, weaknesses, and preferences.
● One of the biggest advantages of using Edtech is the reduced amount of paper
used in the classroom. Millions of trees are cut down each year to provide
paper to schools. If more educational facilities used technology, the number of
trees that would have to be cut down would be massively reduced..
CHAPTER 3
MAJOR OBJECTIVE & SCOPE OF PROJECT
3.1 Objective
The major objective of our EdTech project is to revolutionize the way education is
delivered and accessed, making it more accessible, engaging, and effective for
learners of all ages and backgrounds. In today's fast-paced, digital world, traditional
educational methods are no longer sufficient in meeting the diverse and evolving
needs of students. Our project aims to bridge the gap by harnessing the power of
technology to enhance the educational experience.
3.1.1 Increase access to quality education
The first key objective of our EdTech project is to increase access to quality
education. Education should not be limited by geographical boundaries, economic
disparities, or physical constraints. Through our platform, we will provide a wide
range of courses and learning resources that can be accessed by anyone with an
internet connection, allowing individuals from remote areas and underserved
communities to access high-quality education. This inclusivity will empower
individuals who may have been previously left behind to acquire knowledge and skills
that can improve their lives and communities.
3.1.2 Enhance education quality
Secondly, our project seeks to enhance the engagement and motivation of learners.
Traditional classrooms often struggle to keep students engaged and interested in the
learning process. Through the use of interactive multimedia, gamification, and
personalized learning pathways, our EdTech platform will provide a more dynamic
and enjoyable learning experience. By tailoring content to individual needs and
preferences, we aim to boost students' motivation and retention, ultimately leading to
better educational outcomes.
3.1.3. Enhancing Reachability
Another key objective is to support educators in their teaching endeavors. We
recognize the vital role that teachers and instructors play in the education system. Our
EdTech project will provide a wealth of resources, tools, and training opportunities
for educators, helping them to adapt to the changing landscape of education and
become more effective in their roles. By empowering educators with the latest
CHAPTER 4
PROBLEM ANALYSIS
One of the central problems our EdTech project aims to address is the lack of access
to quality education. This issue is particularly prevalent in remote and underserved
areas, where traditional educational institutions are scarce or of low quality. As the
world becomes increasingly digital, it is essential to bridge this educational divide.
The lack of access to quality education perpetuates inequality, limiting the
opportunities available to those who are geographically isolated or economically
disadvantaged.
Moreover, educators face their own set of challenges within the current education
system. Teachers are often burdened with excessive administrative tasks, large class
sizes, and limited resources, leaving them with little time to focus on personalized
instruction and innovative teaching methods. The problem of teacher burnout is
prevalent, with many educators feeling overwhelmed and undervalued. These issues
ultimately impact the quality of education being delivered in classrooms.
The pace of change in the modern world also presents a problem. With rapid
technological advancements and evolving job markets, individuals need to acquire
new skills continuously. The traditional education system often falls short in
preparing learners for this dynamic environment. As a result, the problem of skill
obsolescence arises, leaving individuals unprepared for the demands of the workforce
and hindering their personal and professional growth.
Another problem that our EdTech project aims to address is the lack of personalized
learning experiences. Traditional classrooms struggle to tailor instruction to the
unique needs and interests of each student. This one-size-fits-all approach leaves
many learners underserved, as they may not receive the support they need to excel.
Personalization is key to unlocking the full potential of every learner.
The lack of data-driven insights within the education system is a significant problem.
Educators and institutions often lack the tools and resources to collect and analyze
data on student performance and engagement. This results in a lack of evidence-based
decision-making and hinders the ability to identify and address areas of improvement
in the educational process.
Emerging technologies such as virtual reality (VR) and augmented reality (AR)
remain largely untapped in the education sector. These technologies have the potential
to create immersive and interactive learning experiences, but the problem lies in the
slow adoption of these innovations within traditional classrooms, limiting the
possibilities for engaging and effective teaching.
CHAPTER 5
HARDWARE PLATFORM REQUIREMENT
Internet Required
connection
CHAPTER 6
ER DIAGRAM/FLOW DIAGRAM
1.2.1 Front-End
The front end is part of the platform that the user interacts with. It's like the "face" of
the platform that the user sees and interacts with. The front end of Study Notion is
designed using a tool called Figma, which is a popular design tool that allows for the
creation of clean and minimal user interfaces.
The front end of StudyNotion has all the necessary pages that an ed-tech platform
should have. Some of these pages are:-
For Students:
● Homepage: This page will have a brief introduction to the platform, as well as
links to the course list and user details.
● Course List: This page will have a list of all the courses available on the
platform, along with their descriptions and ratings.
● Wishlist: This page will display all the courses that a student has added to their
wishlist.
● Cart Checkout: This page will allow the user to complete the course purchase.
● Course Content: This page will have the course content for a particular course,
including videos, and other related material.
● User Details: This page will have details about the student's account, including
their name, email, and other relevant information.
● User Edit Details: This page will allow the student to edit their account details.
For Instructors:
● Insights: This page will have detailed insights into the instructor's courses,
including the number of views, clicks, and other relevant metrics.
● Course Management Pages: These pages will allow the instructor to create,
update, and delete courses, as well as manage the course content and pricing.
● View and Edit Profile Details: These pages will allow the instructor to view
and edit their account details.
● Insights: This page will have detailed insights into the platform's metrics,
including the number of registered users, courses, and revenue.
● Instructor Management: This page will allow the admin to manage the
platform's instructors, including their account details, courses, and ratings.
● Other Relevant Pages: The admin will also have access to other relevant
pages, such as user management and course management pages.
To build the front end, we use frameworks and libraries such as ReactJS, which is a
popular JavaScript library for building user interfaces. We also use CSS and Tailwind,
which are styling frameworks that help make the user interface look good and
responsive. Additionally, we use some npm packages to add extra functionality to the
front end. To manage the state of the application, we use Redux, which is a popular
state management library for React. Finally, we use a development environment
called VS Code, which is a popular code editor, to develop the front end.
1.2.1 Back-End
Description of the Back-end Architecture:
Study Notion uses a monolithic architecture, with the backend built using Node.js and
Express.js, and MongoDB as the primary database. Monolithic architecture refers to a
design approach where all the modules of the application are combined into a single
large program, with a single codebase, to enable better control, security, and
performance.
Node.js is a popular JavaScript runtime that allows us to run JavaScript code outside
of the browser. Express.js is a web application framework that simplifies the process
of building web applications in Node.js. MongoDB is a popular NoSQL database that
allows for flexible data storage and retrieval, making it a suitable choice for complex
applications like StudyNotion
1. User authentication and authorization: Students and instructors can sign up and
log in to the platform using their email addresses and password. The platform also
supports OTP (One-Time Password) verification and forgot password
functionality for added security.
2. Course management: Instructors can create, read, update, and delete courses, as
well as manage course content and media. Students can view and rate courses.
3. Payment Integration: Students will purchase and enrol on courses by completing
the checkout flow that is followed by Razorpay integration for payment handling.
CHAPTER 7
SOFTWARE SPECIFICATION
Before start creating our app, there are a few things that we have to take into
consideration.
6.1.1Technology Used
MERN STACK
MERN stack, React can become a companion to the other technologies for developing
JavaScript and JSON-oriented applications. Figure 1 below illustrates the architecture
of the MERN stack technology:
MongoDB
Express JS
Express.js is a routing and middleware framework for managing the many routing
options for a website. It operates between the request and response cycles.
Middleware is invoked after the server receives the request and before the controller
actions transmit the response. One or more pieces of middleware are executed to
perform particular tasks, such as authorizing requests or parsing request content.
Express applications are composed of a sequence of middleware function calls.
Typically, the first middleware executed to process the request initiates the task
pipeline. The initial middleware can either complete the request and provide it to the
users or call the subsequent middleware to continue the request. The same approach
will be continued until the pipeline's last middleware takes the result of the preceding
middleware as input.
React
React, representing the letter 'R' in the MERN stack, focuses on creating the View
Layer, which is well-known for all visible parts of the page of an application. React is
a multi-purposed, open-source JavaScript library used for building user interfaces
based on UI components.
Since React was established to cope with sophisticated, large-scale user interfaces
combined with real-time dynamic data and data binding, it has been steadily
improving its single-page application development and frontend utilities for
programmers of all levels.
Node JS
JWT
JWT (JSON Web Tokens) are used for authentication and authorization, providing a
secure and reliable way to manage user credentials.
Bcrypt
Bcrypt is used for password hashing, adding an extra layer of security to user data.
Mongoose
Visual Studio Code is a lightweight but powerful source code editor which runs on
your desktop and is available for Windows, macOS and Linux. It comes with built-in
support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions
for other languages and runtimes (such as C++, C#, Java, Python, PHP, Go, .NET).
In the Stack Overflow 2022 Developer Survey, Visual Studio Code was ranked the
most popular developer environment tool among 71,010 respondents, with 74.48%
reporting that they use it.
CHAPTER 8
8.1 Home
8.4 Dashboard
CHAPTER 9
CODING
9.1 Index.js
1. import React from "react";
2. import ReactDOM from "react-dom/client";
3. import App from "./App";
4. import "./index.css";
5. import { BrowserRouter } from "react-router-dom";
6. import { Provider } from "react-redux";
7. import rootReducer from "./reducer";
8. import { configureStore } from "@reduxjs/toolkit";
9. import { Toaster } from "react-hot-toast";
9.2 App.js
1. import "./App.css";
2. import { Route, Routes } from "react-router-dom";
3. import { Home } from "../src/Pages/Home";
32. }>
33. <Route path="/dashboard/my-profile" element={<MyProfile />} />
34. <Route path="/dashboard/settings" element={<MyProfile />} />
35. <Route
a. path="/dashboard/enrolled-courses"
b. element={<EnrolledCourses />}/>
36. <Route path="/dashboard/purchase-history" element={<MyProfile />} />
37. </Route>
38. <Route path="/about" element={<About />} />
39. <Route path="/contact" element={<ContactUs />} />
40. </Routes>
41. <Footer />
42. </div>
43. );
44. };
45. export default App;
16. return (
17. <div
18. className={flex ${position} my-20 mx-auto justify-center gap-20 text-
white}
19. >
20. {/* section 1 */}
21. <div className="flex flex-col w-[50%] gap-6 ">
22. {heading}
23. <div className="text-richblack-300 font-bold">{subheading}</div>
24. <div className="flex gap-7 mt-7">
25. <Button
a. text={b1text.text}
b. active={b1text.active}
c. links={b1text.links}
d. arrow={b1text.arrow}
e. flex
f. items-center
g. gap-2
26. >
a. <div className="flex items-center gap-2">
b. <FaArrowRight />
c. </div>
27. </Button>
28. <Button
a. text={b2text.text}
b. active={b2text.active}
c. links={b2text.links}
29. ></Button>
30. </div>
31. <div></div>
32. </div>
56. );
57. };
9.4 About Page
1. import React from "react";
2. import HighlightText from "../Components/Core/HomePage/HighlightText";
3. import img1 from "../assets/Images/aboutus1.webp";
4. import img2 from "../assets/Images/aboutus2.webp";
5. import img3 from "../assets/Images/aboutus3.webp";
6. import img4 from "../assets/Images/FoundingStory.png";
7. import Stats from "../Components/Core/aboutPage/Stats";
8. import CTAButton from "../Components/Core/HomePage/CTAButton";
9. import Footer from "../Components/common/Footer";
10. import LearningGrid from "../Components/Core/aboutPage/LearningGrid";
11. import ContactFormSection from
"../Components/Core/aboutPage/ContactFormSection";
12. const About = () => {
13. return (
14. <div>
15. <div className="flex justify-center w-screen pt-16 bg-richblack-800">
16. {/* Section 1 */}
17. <section className="w-9/12 mx-auto">
18. <div className="flex flex-col items-center gap-3 text-richblack-100 ">
a. <div>About Us</div>
b. <header className=" text-center font-bold text-2xl text-white">
c. Driving Innovation in Online Education for a <br />
d. <HighlightText text="Brighter Future" />
e. </header>
f. <p className="text-[14px] text-center mt-2">
g. Studynotion is at the forefront of driving innovation in online
h. education. We're passionate about creating a brighter future by
i. offering cutting-edge courses, leveraging emerging technologies,
j. and nurturing a vibrant learning community.
k. </p>
l. <div className="relative mt-10">
14. </div>
15. <div className=" flex gap-4 items-start justify-start">
16. <BiWorld className="text-2xl bg-richblack-800 text-richblack-100 rounded-
md" />
17. <div className="text-richblack-5 flex flex-col gap-1">
a. <h4 className="font-medium text-xl">Visit us</h4>
b. <p className="text-sm text-richblack-200">
c. Come and say hello at our office HQ.{" "}
d. </p>
e. <p className="text-sm text-richblack-200">
f. Here is the location/ address
g. </p>
18. </div>
19. </div>
20. <div className=" flex gap-4 items-start justify-start">
21. <PiPhoneCallFill className="text-2xl bg-richblack-800 text-richblack-100
rounded-md" />
22. <div className="text-richblack-5 flex flex-col gap-1">
a. <h4 className="font-medium text-xl">Call us</h4>
b. <p className="text-sm text-richblack-200">
c. Mon - Fri From 8am to 5pm{" "}
d. </p>
e. <p className="text-sm text-richblack-200">+123 456 7890</p>
23. </div>
24. </div>
25. </div>
26. <div className="flex flex-col gap-4 w-[55%] p-[24px] rounded-xl border-
[1px] border-richblack-500 mb-4">
27. <h2 className="text-4xl font-bold text-richblack-5 ">
28. Got a Idea? We’ve got the skills. Let’s team up
29. </h2>
30. <p className=" text-base text-richblack-500">
31. Tell us more about yourself and what you’re got in mind.
32. </p>
9. if (authLoading || profileLoading) {
10. return (
11. <div className="flex flex-col gap-7 justify-center items-center mt-10">
12. <p className="text-center text-richblack-5 text-2xl">Loading.....</p>
13. <Spinner />
14. </div>
15. );
16. }
17. return (
18. <div className="relative min-h-[calc(100vh-3.5rem)] flex gap-6">
19. <SideBar />
20. <div className="h-[calc(100vh-3.5rem)] overflow-auto">
21. <div className="w-11/12 max-auto max-w-[1000px] py-10">
22. <Outlet />
23. </div>
24. </div>
25. </div>
26. );
27. };
28. export default Dashboard;
11. setTotalNoOfLectures,
12. } from "../slices/viewCourseSlice"
13. export default function ViewCourse() {
14. const { courseId } = useParams()
15. const { token } = useSelector((state) => state.auth)
16. const dispatch = useDispatch()
17. const [reviewModal, setReviewModal] = useState(false)
18. useEffect(() => {
19. ;(async () => {
20. const courseData = await getFullDetailsOfCourse(courseId, token)
21. // console.log("Course Data here... ", courseData.courseDetails)
22. dispatch(setCourseSectionData(courseData.courseDetails.courseContent))
23. dispatch(setEntireCourseData(courseData.courseDetails))
24. dispatch(setCompletedLectures(courseData.completedVideos))
25. let lectures = 0
26. courseData?.courseDetails?.courseContent?.forEach((sec) => {
27. lectures += sec.subSection.length
28. })
29. dispatch(setTotalNoOfLectures(lectures))
30. })()
31. // eslint-disable-next-line react-hooks/exhaustive-deps
32. }, [])
33. return (
34. <>
35. <div className="relative flex min-h-[calc(100vh-3.5rem)]">
36. <VideoDetailsSidebar setReviewModal={setReviewModal} />
37. <div className="h-[calc(100vh-3.5rem)] flex-1 overflow-auto">
38. <div className="mx-6">
a. <Outlet />
39. </div>
40. </div>
41. </div>
42. {reviewModal && <CourseReviewModal
setReviewModal={setReviewModal} />}
43. </>
44. )}
9.10 Backend
1. const express = require("express");
2. require("dotenv").config();
3. const { DBConnect } = require("./Config/database");
4. const cookieParser = require("cookie-parser");
5. const cors = require("cors");
6. const { cloudinaryConnect } = require("./Config/cloudinary");
7. const fileUpload = require("express-fileupload");
8. const userRoutes = require("./Routes/User");
9. const profileRoutes = require("./Routes/Profile");
10. const courseRoutes = require("./Routes/Course");
11. const paymentRoutes = require("./Routes/Payment");
12. const app = express();
13. const PORT = process.env.PORT || 4000;
14. DBConnect();
15. app.use(cookieParser());
16. app.use(express.json());
17. app.use(cors({ origin: "http://localhost:3000", credentials: true }));
18. app.use(
19. fileUpload({
20. useTempFiles: true,
21. tempFileDir: "/tmp",
22. })
23. );
24. cloudinaryConnect();
25. app.use("/api/v1/auth", userRoutes);
26. app.use("/api/v1/profile", profileRoutes);
27. app.use("/api/v1/payment", paymentRoutes);
28. app.use("/api/v1/course", courseRoutes);
29. app.get("/", (req, res) => {
30. res.json({
CHAPTER 10
PROJECT LIMITATION AND FUTURE SCOPE
● Digital Divide - The digital divide extends beyond access to include variations
ed tech tools obsolete quickly. Projects may struggle to keep up with the latest
developments, leading to potential inefficiencies or the need for frequent
updates.
● Data Privacy Concerns - Ed tech projects involve the collection and storage
of sensitive student data. Ensuring robust data privacy measures is critical, and
any breach could lead to significant consequences.
● Cultural and Linguistic Diversity - Ed tech tools may not always be tailored
● Financial Constraints - Budget constraints can limit the scope and quality of
CHAPTER 11
CONCLUSION