# ankit-yadav-8/ankit-edureach3 architecture

> Architecture diagram of the GitHub repository ankit-yadav-8/ankit-edureach3, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ankit-yadav-8/ankit-edureach3
- Repository: https://github.com/ankit-yadav-8/ankit-edureach3

## Overview

EduReach is a JEE/NEET preparation and college-discovery portal, with a React frontend and an Express API. The central visitor journey is to explore exam and college information, estimate a rank, find eligible colleges, and inspect cutoff rounds and college details. The product also includes counselling resources, mentorship, tests, community and reviews, plus administrative tools. The graph preserves these major branches; some server integrations are represented only where the excerpts or README establish their wiring.

Main entry points: [`src/App.jsx`](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/App.jsx) (App routing), [`src/utils/cutoffEngine.js`](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/cutoffEngine.js) (Cutoff engine), [`src/utils/collegePredictor.js`](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/collegePredictor.js) (College predictor), [`src/auth/api.js`](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/auth/api.js) (API client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Portal and navigation"]
  node_app["App routing<br/>[App.jsx]"]
  node_home["Portal home<br/>[Home.jsx]"]
end

subgraph group_discovery["College discovery"]
  node_college_catalog["College catalog<br/>[Colleges.jsx]"]
  node_college_data["College data<br/>[colleges.js]"]
  node_rank_predictor["Rank predictor<br/>[rankPredictor.js]"]
  node_college_predictor["College predictor"]
  node_predictor_hook["Predictor hook"]
  node_predictor_worker["Predictor worker"]
  node_cutoff_api["Cutoff engine<br/>[cutoffEngine.js]"]
  node_real_cutoffs["Real cutoff engine"]
  node_cutoff_data["Cutoff datasets<br/>[cutoffs2025.js]"]
  node_seat_matrix["Seat matrix<br/>[seatMatrix.js]"]
  node_college_detail["College details<br/>[CollegeDetail.jsx]"]
end

subgraph group_learning["Exam preparation"]
  node_jee_main["JEE Main<br/>[JeeMain.jsx]"]
  node_jee_advanced["JEE Advanced<br/>[JeeAdvanced.jsx]"]
  node_neet["NEET preparation<br/>[Neet.jsx]"]
end

subgraph group_mentorship["Mentorship and community"]
  node_mentorship_page["Mentorship<br/>[Mentorship.jsx]"]
  node_mentorship_api["Mentorship routes<br/>[mentorship.js]"]
  node_tests_page["Test series<br/>[TestSeries.jsx]"]
  node_community_page["Community"]
  node_reviews_ui["College reviews<br/>[CollegeReviews.jsx]"]
end

subgraph group_backend["API and operations"]
  node_reviews_route["Review API<br/>[reviews.js]"]
  node_review_store[("Review records<br/>[Review.js]")]
  node_auth_context["User authentication<br/>[AuthContext.jsx]"]
  node_auth_api["API client<br/>[api.js]"]
  node_api_server["API server<br/>[index.js]"]
  node_admin_portal["Admin portal<br/>[Admin.jsx]"]
  node_enrollment_store[("Enrollments<br/>[Enrollment.js]")]
end

node_visitor(("Student"))

node_visitor -->|"opens portal"| node_app
node_app -->|"routes to"| node_home
node_app -->|"routes to"| node_jee_main
node_app -->|"routes to"| node_jee_advanced
node_app -->|"routes to"| node_neet
node_app -->|"routes to"| node_college_catalog
node_app -->|"routes to"| node_college_detail
node_app -->|"routes to"| node_mentorship_page
node_visitor -->|"enters marks"| node_rank_predictor
node_rank_predictor -->|"hands off rank"| node_college_predictor
node_predictor_hook -->|"uses"| node_college_predictor
node_predictor_hook -->|"dispatches work"| node_predictor_worker
node_predictor_worker -->|"calls"| node_college_predictor
node_predictor_worker -->|"loads predictor data"| node_real_cutoffs
node_college_predictor -->|"finds eligible colleges"| node_college_data
node_college_catalog -->|"lists colleges"| node_college_data
node_college_detail -->|"shows cutoff rounds"| node_cutoff_api
node_cutoff_api -->|"reads real rounds"| node_real_cutoffs
node_cutoff_api -->|"uses seat data"| node_seat_matrix
node_cutoff_api -->|"uses fallback data"| node_cutoff_data
node_real_cutoffs -->|"maps colleges"| node_college_data
node_visitor -->|"reads or submits"| node_reviews_ui
node_reviews_ui -->|"submits review"| node_auth_api
node_reviews_route -->|"queries and saves"| node_review_store
node_visitor -->|"signs in"| node_auth_context
node_auth_context -->|"calls auth methods"| node_auth_api
node_auth_api -.->|"sends API requests"| node_api_server
node_api_server -->|"mounts routes"| node_mentorship_api
node_visitor -->|"takes tests"| node_tests_page
node_visitor -->|"joins community"| node_community_page
node_admin_portal -->|"uses admin API"| node_auth_api

click node_app "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/App.jsx"
click node_home "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Home.jsx"
click node_college_catalog "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Colleges.jsx"
click node_college_data "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/data/colleges.js"
click node_rank_predictor "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/rankPredictor.js"
click node_college_predictor "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/collegePredictor.js"
click node_predictor_hook "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/hooks/useCollegePredictor.js"
click node_predictor_worker "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/workers/collegePredictor.worker.js"
click node_cutoff_api "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/cutoffEngine.js"
click node_real_cutoffs "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/realCutoffEngine.js"
click node_cutoff_data "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/data/cutoffs2025.js"
click node_seat_matrix "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/data/seatMatrix.js"
click node_college_detail "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/CollegeDetail.jsx"
click node_jee_main "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/JeeMain.jsx"
click node_jee_advanced "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/JeeAdvanced.jsx"
click node_neet "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Neet.jsx"
click node_mentorship_page "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Mentorship.jsx"
click node_mentorship_api "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/routes/mentorship.js"
click node_tests_page "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/components/mentorship/TestSeries.jsx"
click node_community_page "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/PublicCommunity.jsx"
click node_reviews_ui "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/components/home/CollegeReviews.jsx"
click node_reviews_route "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/routes/reviews.js"
click node_review_store "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/models/Review.js"
click node_auth_context "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/auth/AuthContext.jsx"
click node_auth_api "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/auth/api.js"
click node_api_server "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/index.js"
click node_admin_portal "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Admin.jsx"
click node_enrollment_store "https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/models/Enrollment.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_home toneBlue
class node_college_catalog,node_college_data,node_rank_predictor,node_college_predictor,node_predictor_hook,node_predictor_worker,node_cutoff_api,node_real_cutoffs,node_cutoff_data,node_seat_matrix,node_college_detail toneAmber
class node_jee_main,node_jee_advanced,node_neet toneMint
class node_mentorship_page,node_mentorship_api,node_tests_page,node_community_page,node_reviews_ui toneRose
class node_reviews_route,node_review_store,node_auth_context,node_auth_api,node_api_server,node_admin_portal,node_enrollment_store,node_visitor toneIndigo
```

## Components

### Portal and navigation

- [App routing](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/App.jsx): `src/App.jsx`
- [Portal home](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Home.jsx): `src/pages/Home.jsx`

### College discovery

- [College catalog](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Colleges.jsx): `src/pages/Colleges.jsx`
- [College data](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/data/colleges.js): `src/data/colleges.js`
- [Rank predictor](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/rankPredictor.js): `src/utils/rankPredictor.js`
- [College predictor](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/collegePredictor.js): `src/utils/collegePredictor.js`
- [Predictor hook](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/hooks/useCollegePredictor.js): `src/hooks/useCollegePredictor.js`
- [Predictor worker](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/workers/collegePredictor.worker.js): `src/workers/collegePredictor.worker.js`
- [Cutoff engine](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/cutoffEngine.js): `src/utils/cutoffEngine.js`
- [Real cutoff engine](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/utils/realCutoffEngine.js): `src/utils/realCutoffEngine.js`
- [Cutoff datasets](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/data/cutoffs2025.js): `src/data/cutoffs2025.js`
- [Seat matrix](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/data/seatMatrix.js): `src/data/seatMatrix.js`
- [College details](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/CollegeDetail.jsx): `src/pages/CollegeDetail.jsx`

### Exam preparation

- [JEE Main](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/JeeMain.jsx): `src/pages/JeeMain.jsx`
- [JEE Advanced](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/JeeAdvanced.jsx): `src/pages/JeeAdvanced.jsx`
- [NEET preparation](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Neet.jsx): `src/pages/Neet.jsx`

### Mentorship and community

- [Mentorship](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Mentorship.jsx): `src/pages/Mentorship.jsx`
- [Mentorship routes](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/routes/mentorship.js): `server/routes/mentorship.js`
- [Test series](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/components/mentorship/TestSeries.jsx): `src/components/mentorship/TestSeries.jsx`
- [Community](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/PublicCommunity.jsx): `src/pages/PublicCommunity.jsx`
- [College reviews](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/components/home/CollegeReviews.jsx): `src/components/home/CollegeReviews.jsx`

### API and operations

- [Review API](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/routes/reviews.js): `server/routes/reviews.js`
- [Review records](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/models/Review.js): `server/models/Review.js`
- [User authentication](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/auth/AuthContext.jsx): `src/auth/AuthContext.jsx`
- [API client](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/auth/api.js): `src/auth/api.js`
- [API server](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/index.js): `server/index.js`
- [Admin portal](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/src/pages/Admin.jsx): `src/pages/Admin.jsx`
- [Enrollments](https://github.com/ankit-yadav-8/ankit-edureach3/blob/main/server/models/Enrollment.js): `server/models/Enrollment.js`

### Other components

- **Student**

## Connections

- Student → App routing: opens portal
- App routing → Portal home: routes to (evidence: `src/App.jsx`)
- App routing → JEE Main: routes to (evidence: `src/App.jsx`)
- App routing → JEE Advanced: routes to (evidence: `src/App.jsx`)
- App routing → NEET preparation: routes to (evidence: `src/App.jsx`)
- App routing → College catalog: routes to (evidence: `src/App.jsx`)
- App routing → College details: routes to (evidence: `src/App.jsx`)
- App routing → Mentorship: routes to (evidence: `src/App.jsx`)
- Student → Rank predictor: enters marks (evidence: `README.md`)
- Rank predictor → College predictor: hands off rank (evidence: `README.md`)
- Predictor hook → College predictor: uses (evidence: `src/hooks/useCollegePredictor.js`)
- Predictor hook → Predictor worker: dispatches work (evidence: `src/workers/collegePredictor.worker.js`)
- Predictor worker → College predictor: calls (evidence: `src/workers/collegePredictor.worker.js`)
- Predictor worker → Real cutoff engine: loads predictor data (evidence: `src/workers/collegePredictor.worker.js`)
- College predictor → College data: finds eligible colleges (evidence: `README.md`)
- College catalog → College data: lists colleges (evidence: `README.md`)
- College details → Cutoff engine: shows cutoff rounds (evidence: `README.md`)
- Cutoff engine → Real cutoff engine: reads real rounds (evidence: `src/utils/cutoffEngine.js`)
- Cutoff engine → Seat matrix: uses seat data (evidence: `src/utils/cutoffEngine.js`)
- Cutoff engine → Cutoff datasets: uses fallback data (evidence: `src/utils/cutoffEngine.js`)
- Real cutoff engine → College data: maps colleges (evidence: `src/utils/realCutoffEngine.js`)
- Student → College reviews: reads or submits
- College reviews → API client: submits review (evidence: `src/components/home/CollegeReviews.jsx`)
- Review API → Review records: queries and saves (evidence: `server/routes/reviews.js`)
- Student → User authentication: signs in (evidence: `src/auth/AuthContext.jsx`)
- User authentication → API client: calls auth methods (evidence: `src/auth/AuthContext.jsx`)
- API client → API server: sends API requests
- API server → Mentorship routes: mounts routes (evidence: `server/index.js`)
- Student → Test series: takes tests (evidence: `README.md`)
- Student → Community: joins community (evidence: `README.md`)
- Admin portal → API client: uses admin API (evidence: `src/auth/api.js`)
