# krithik-ctrl/neet_predictor architecture

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

- Interactive diagram: https://gitdiagram.com/krithik-ctrl/neet_predictor
- Repository: https://github.com/krithik-ctrl/neet_predictor

## Overview

The repository appears to be a college-admissions guidance platform: students authenticate, maintain a profile, run college predictions, review and save results in choice lists, and manage paid access. It also provides administrative tools for users, admissions data, reporting, and permissions. The tree identifies these capabilities, while sampled controllers confirm service calls for several workflows; wiring for unsampled modules is shown only at the broad API boundary.

Main entry points: [`server/routes/index.js`](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/routes/index.js) (HTTP API), [`server/modules/choice-list/choiceList.controller.js`](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/choice-list/choiceList.controller.js) (Choice lists), [`client/app/(public)/page.js`](https://github.com/krithik-ctrl/neet_predictor/blob/main/client/app/(public)/page.js) (Web interface), [`client/services/api/predictor.js`](https://github.com/krithik-ctrl/neet_predictor/blob/main/client/services/api/predictor.js) (API clients)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Student web app"]
  node_web_ui["Web interface<br/>[page.js]"]
  node_client_apis["API clients<br/>[predictor.js]"]
  node_admin_console["Admin console<br/>[admin.js]"]
end

subgraph group_identity["Accounts and profiles"]
  node_user_auth["User accounts<br/>[user.controller.js]"]
  node_student_profile["Student profile"]
end

subgraph group_admissions["Admissions guidance"]
  node_prediction["College predictor"]
  node_prediction_history["Prediction history"]
  node_college_data["College catalog"]
  node_course_data["Course catalog"]
  node_cutoff_data["Cutoff data"]
  node_choice_lists["Choice lists"]
  node_saved_colleges["Saved colleges"]
end

subgraph group_monetization["Plans and payments"]
  node_plans["Plans<br/>[plan.controller.js]"]
  node_payments["Payments"]
  node_subscriptions["Subscriptions"]
end

subgraph group_operations["Administration"]
  node_admin_auth["Admin authentication"]
  node_admin_users["User management"]
  node_admin_dashboard["Admin dashboard"]
  node_admin_management["Admin access control"]
  node_admin_activity["Admin activity"]
end

node_student(("Student"))
node_admin_actor(("Administrator"))
node_api["HTTP API<br/>[index.js]"]

node_student -->|"uses"| node_web_ui
node_web_ui -->|"requests"| node_client_apis
node_client_apis -->|"calls"| node_api
node_admin_actor -->|"uses"| node_admin_console
node_admin_console -->|"calls"| node_api
node_api -->|"dispatches"| node_user_auth
node_api -->|"dispatches"| node_student_profile
node_api -->|"dispatches"| node_prediction
node_api -->|"dispatches"| node_prediction_history
node_api -->|"dispatches"| node_college_data
node_api -->|"dispatches"| node_course_data
node_api -->|"dispatches"| node_cutoff_data
node_api -->|"dispatches"| node_choice_lists
node_api -->|"dispatches"| node_saved_colleges
node_api -->|"dispatches"| node_plans
node_api -->|"dispatches"| node_payments
node_api -->|"dispatches"| node_subscriptions
node_api -->|"dispatches"| node_admin_auth
node_api -->|"dispatches"| node_admin_users
node_api -->|"dispatches"| node_admin_dashboard
node_api -->|"dispatches"| node_admin_management
node_user_auth -->|"logs activity"| node_admin_activity
node_admin_management -->|"logs activity"| node_admin_activity
node_choice_lists -->|"exports PDF or Excel"| node_choice_lists

click node_web_ui "https://github.com/krithik-ctrl/neet_predictor/blob/main/client/app/(public)/page.js"
click node_client_apis "https://github.com/krithik-ctrl/neet_predictor/blob/main/client/services/api/predictor.js"
click node_api "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/routes/index.js"
click node_user_auth "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/users/user.controller.js"
click node_student_profile "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/student-profile/studentProfile.controller.js"
click node_prediction "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/predictor/predictor.controller.js"
click node_prediction_history "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/prediction-history/predictionHistory.controller.js"
click node_college_data "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/colleges/college.controller.js"
click node_course_data "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/courses/course.controller.js"
click node_cutoff_data "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/cutoffs/cutoff.controller.js"
click node_choice_lists "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/choice-list/choiceList.controller.js"
click node_saved_colleges "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/saved-colleges/savedCollege.controller.js"
click node_plans "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/plans/plan.controller.js"
click node_payments "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/payment/payment.controller.js"
click node_subscriptions "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/subscription/subscription.controller.js"
click node_admin_console "https://github.com/krithik-ctrl/neet_predictor/blob/main/client/services/api/admin.js"
click node_admin_auth "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-auth/adminAuth.controller.js"
click node_admin_users "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-dashboard/admin-users/adminUsers.controller.js"
click node_admin_dashboard "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-dashboard/overview/dashboard.controller.js"
click node_admin_management "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-management/adminManagement.controller.js"
click node_admin_activity "https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-activity/adminActivity.service.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_web_ui,node_client_apis,node_admin_console toneBlue
class node_user_auth,node_student_profile toneAmber
class node_prediction,node_prediction_history,node_college_data,node_course_data,node_cutoff_data,node_choice_lists,node_saved_colleges,node_api toneMint
class node_plans,node_payments,node_subscriptions toneRose
class node_admin_auth,node_admin_users,node_admin_dashboard,node_admin_management,node_admin_activity,node_student,node_admin_actor toneIndigo
```

## Components

### Student web app

- [Web interface](https://github.com/krithik-ctrl/neet_predictor/blob/main/client/app/(public)/page.js): `client/app/(public)/page.js`
- [API clients](https://github.com/krithik-ctrl/neet_predictor/blob/main/client/services/api/predictor.js): `client/services/api/predictor.js`
- [Admin console](https://github.com/krithik-ctrl/neet_predictor/blob/main/client/services/api/admin.js): `client/services/api/admin.js`

### Accounts and profiles

- [User accounts](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/users/user.controller.js): `server/modules/users/user.controller.js`
- [Student profile](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/student-profile/studentProfile.controller.js): `server/modules/student-profile/studentProfile.controller.js`

### Admissions guidance

- [College predictor](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/predictor/predictor.controller.js): `server/modules/predictor/predictor.controller.js`
- [Prediction history](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/prediction-history/predictionHistory.controller.js): `server/modules/prediction-history/predictionHistory.controller.js`
- [College catalog](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/colleges/college.controller.js): `server/modules/colleges/college.controller.js`
- [Course catalog](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/courses/course.controller.js): `server/modules/courses/course.controller.js`
- [Cutoff data](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/cutoffs/cutoff.controller.js): `server/modules/cutoffs/cutoff.controller.js`
- [Choice lists](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/choice-list/choiceList.controller.js): `server/modules/choice-list/choiceList.controller.js`
- [Saved colleges](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/saved-colleges/savedCollege.controller.js): `server/modules/saved-colleges/savedCollege.controller.js`

### Plans and payments

- [Plans](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/plans/plan.controller.js): `server/modules/plans/plan.controller.js`
- [Payments](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/payment/payment.controller.js): `server/modules/payment/payment.controller.js`
- [Subscriptions](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/subscription/subscription.controller.js): `server/modules/subscription/subscription.controller.js`

### Administration

- [Admin authentication](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-auth/adminAuth.controller.js): `server/modules/admin-auth/adminAuth.controller.js`
- [User management](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-dashboard/admin-users/adminUsers.controller.js): `server/modules/admin-dashboard/admin-users/adminUsers.controller.js`
- [Admin dashboard](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-dashboard/overview/dashboard.controller.js): `server/modules/admin-dashboard/overview/dashboard.controller.js`
- [Admin access control](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-management/adminManagement.controller.js): `server/modules/admin-management/adminManagement.controller.js`
- [Admin activity](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/modules/admin-activity/adminActivity.service.js): `server/modules/admin-activity/adminActivity.service.js`

### Other components

- **Student**
- **Administrator**
- [HTTP API](https://github.com/krithik-ctrl/neet_predictor/blob/main/server/routes/index.js): `server/routes/index.js`

## Connections

- Student → Web interface: uses
- Web interface → API clients: requests
- API clients → HTTP API: calls
- Administrator → Admin console: uses
- Admin console → HTTP API: calls
- HTTP API → User accounts: dispatches
- HTTP API → Student profile: dispatches
- HTTP API → College predictor: dispatches
- HTTP API → Prediction history: dispatches
- HTTP API → College catalog: dispatches
- HTTP API → Course catalog: dispatches
- HTTP API → Cutoff data: dispatches
- HTTP API → Choice lists: dispatches
- HTTP API → Saved colleges: dispatches
- HTTP API → Plans: dispatches
- HTTP API → Payments: dispatches
- HTTP API → Subscriptions: dispatches
- HTTP API → Admin authentication: dispatches
- HTTP API → User management: dispatches
- HTTP API → Admin dashboard: dispatches
- HTTP API → Admin access control: dispatches
- User accounts → Admin activity: logs activity
- Admin access control → Admin activity: logs activity
- Choice lists → Choice lists: exports PDF or Excel
