# sanjeevpandeyy/studynotionapp architecture

> Architecture diagram of the GitHub repository sanjeevpandeyy/studynotionapp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sanjeevpandeyy/studynotionapp
- Repository: https://github.com/sanjeevpandeyy/studynotionapp

## Overview

StudyNotion is a role-based online learning platform for discovering courses, enrolling and learning, creating course content, and administering users and catalog data. The main workflow spans course discovery and detail pages, account access, student learning and progress, instructor course authoring, and admin management; payments and contact are additional capabilities. The sampled files establish the app’s route structure and server route mounting, but not most route-to-controller or client-to-server wiring, so those links are omitted.

Main entry points: [`my-app/server/index.js`](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/index.js) (Express Entry), [`my-app/src/App.jsx`](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/App.jsx) (Route Application), [`my-app/server/controller/ratingAndReview.js`](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/controller/ratingAndReview.js) (Review Logic), [`my-app/server/model/Course.js`](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/model/Course.js) (Course Records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Learner and Staff App"]
  node_app["Route Application<br/>[App.jsx]"]
  node_catalog["Catalog Browse<br/>[Catalog.jsx]"]
  node_course_details["Course Details<br/>[CourseDetails.jsx]"]
  node_auth_pages["Account Access<br/>[Login.jsx]"]
  node_dashboard["Role Dashboard<br/>[Dashboard.jsx]"]
  node_course_view["Course Learning<br/>[ViewCourse.jsx]"]
  node_course_builder["Course Authoring<br/>[index.jsx]"]
  node_admin_tools["Admin Tools<br/>[index.jsx]"]
  node_auth_operations["Auth Operations<br/>[authAPI.jsx]"]
  node_api_connector["API Connector<br/>[apiConnector.jsx]"]
end

subgraph group_server["API Surface"]
  node_server["Express Entry<br/>[index.js]"]
  node_user_routes["User Routes<br/>[Users.js]"]
  node_course_routes["Course Routes<br/>[Course.js]"]
  node_payment_routes["Payment Routes<br/>[Payment.js]"]
  node_contact_routes["Contact Routes<br/>[Contact.js]"]
  node_admin_routes["Admin Routes<br/>[Admin.js]"]
  node_admin_course_routes["Admin Course Routes<br/>[AdminCourse.js]"]
  node_admin_category_routes["Category Admin Routes<br/>[AdminCategory.js]"]
  node_analytics_routes["Analytics Routes<br/>[AdminAnalytics.js]"]
  node_review_controller["Review Logic<br/>[ratingAndReview.js]"]
end

subgraph group_domain["Learning Records"]
  node_course_model[("Course Records<br/>[Course.js]")]
  node_review_model[("Review Records")]
end

node_visitor(("Learner or Staff"))

node_visitor -->|"uses"| node_app
node_app -->|"routes to"| node_catalog
node_app -->|"routes to"| node_course_details
node_app -->|"routes to"| node_auth_pages
node_app -->|"protects and routes"| node_dashboard
node_app -->|"routes to"| node_course_view
node_app -->|"routes to"| node_course_builder
node_app -->|"role-routes to"| node_admin_tools
node_auth_operations -->|"calls"| node_api_connector
node_server -->|"mounts at auth"| node_user_routes
node_server -->|"mounts at course"| node_course_routes
node_server -->|"mounts at payment"| node_payment_routes
node_server -->|"mounts at reach"| node_contact_routes
node_server -->|"mounts at admin"| node_admin_routes
node_server -->|"mounts at admin/course"| node_admin_course_routes
node_server -->|"mounts at admin/category"| node_admin_category_routes
node_server -->|"mounts at admin"| node_analytics_routes
node_review_controller -->|"reads enrollment"| node_course_model
node_review_controller -->|"creates and queries"| node_review_model
node_review_controller -->|"adds review reference"| node_course_model

click node_app "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/App.jsx"
click node_catalog "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/Catalog.jsx"
click node_course_details "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/CourseDetails.jsx"
click node_auth_pages "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/Login.jsx"
click node_dashboard "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/Dashboard.jsx"
click node_course_view "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/ViewCourse.jsx"
click node_course_builder "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/components/core/Dashboard/AddCourse/index.jsx"
click node_admin_tools "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/components/core/Dashboard/Admin/ManageCourses/index.jsx"
click node_auth_operations "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/services/operations/authAPI.jsx"
click node_api_connector "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/services/apiConnector.jsx"
click node_server "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/index.js"
click node_user_routes "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Users.js"
click node_course_routes "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Course.js"
click node_payment_routes "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Payment.js"
click node_contact_routes "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Contact.js"
click node_admin_routes "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Admin.js"
click node_admin_course_routes "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/AdminCourse.js"
click node_admin_category_routes "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/AdminCategory.js"
click node_analytics_routes "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/AdminAnalytics.js"
click node_review_controller "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/controller/ratingAndReview.js"
click node_course_model "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/model/Course.js"
click node_review_model "https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/model/RatingAndReviews.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_catalog,node_course_details,node_auth_pages,node_dashboard,node_course_view,node_course_builder,node_admin_tools,node_auth_operations,node_api_connector toneBlue
class node_server,node_user_routes,node_course_routes,node_payment_routes,node_contact_routes,node_admin_routes,node_admin_course_routes,node_admin_category_routes,node_analytics_routes,node_review_controller toneAmber
class node_course_model,node_review_model toneMint
class node_visitor toneIndigo
```

## Components

### Learner and Staff App

- [Route Application](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/App.jsx): `my-app/src/App.jsx`
- [Catalog Browse](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/Catalog.jsx): `my-app/src/pages/Catalog.jsx`
- [Course Details](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/CourseDetails.jsx): `my-app/src/pages/CourseDetails.jsx`
- [Account Access](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/Login.jsx): `my-app/src/pages/Login.jsx`
- [Role Dashboard](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/Dashboard.jsx): `my-app/src/pages/Dashboard.jsx`
- [Course Learning](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/pages/ViewCourse.jsx): `my-app/src/pages/ViewCourse.jsx`
- [Course Authoring](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/components/core/Dashboard/AddCourse/index.jsx): `my-app/src/components/core/Dashboard/AddCourse/index.jsx`
- [Admin Tools](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/components/core/Dashboard/Admin/ManageCourses/index.jsx): `my-app/src/components/core/Dashboard/Admin/ManageCourses/index.jsx`
- [Auth Operations](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/services/operations/authAPI.jsx): `my-app/src/services/operations/authAPI.jsx`
- [API Connector](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/src/services/apiConnector.jsx): `my-app/src/services/apiConnector.jsx`

### API Surface

- [Express Entry](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/index.js): `my-app/server/index.js`
- [User Routes](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Users.js): `my-app/server/routes/Users.js`
- [Course Routes](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Course.js): `my-app/server/routes/Course.js`
- [Payment Routes](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Payment.js): `my-app/server/routes/Payment.js`
- [Contact Routes](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Contact.js): `my-app/server/routes/Contact.js`
- [Admin Routes](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/Admin.js): `my-app/server/routes/Admin.js`
- [Admin Course Routes](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/AdminCourse.js): `my-app/server/routes/AdminCourse.js`
- [Category Admin Routes](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/AdminCategory.js): `my-app/server/routes/AdminCategory.js`
- [Analytics Routes](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/routes/AdminAnalytics.js): `my-app/server/routes/AdminAnalytics.js`
- [Review Logic](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/controller/ratingAndReview.js): `my-app/server/controller/ratingAndReview.js`

### Learning Records

- [Course Records](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/model/Course.js): `my-app/server/model/Course.js`
- [Review Records](https://github.com/sanjeevpandeyy/studynotionapp/blob/main/my-app/server/model/RatingAndReviews.js): `my-app/server/model/RatingAndReviews.js`

### Other components

- **Learner or Staff**

## Connections

- Learner or Staff → Route Application: uses
- Route Application → Catalog Browse: routes to
- Route Application → Course Details: routes to
- Route Application → Account Access: routes to
- Route Application → Role Dashboard: protects and routes
- Route Application → Course Learning: routes to
- Route Application → Course Authoring: routes to
- Route Application → Admin Tools: role-routes to
- Auth Operations → API Connector: calls
- Express Entry → User Routes: mounts at auth
- Express Entry → Course Routes: mounts at course
- Express Entry → Payment Routes: mounts at payment
- Express Entry → Contact Routes: mounts at reach
- Express Entry → Admin Routes: mounts at admin
- Express Entry → Admin Course Routes: mounts at admin/course
- Express Entry → Category Admin Routes: mounts at admin/category
- Express Entry → Analytics Routes: mounts at admin
- Review Logic → Course Records: reads enrollment
- Review Logic → Review Records: creates and queries
- Review Logic → Course Records: adds review reference
