# tanvir210111/admify architecture

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

- Interactive diagram: https://gitdiagram.com/tanvir210111/admify
- Repository: https://github.com/tanvir210111/admify

## Overview

Admify supports students exploring study options and preparing applications, with agents and agencies helping manage student cases and university representatives handling institutional relationships. The principal workflow spans discovery and recommendations, affordability and scholarship planning, application submission and tracking, and consultant support. Admin tools govern users, platform content, payments, and operations. The README documents these capabilities; sampled code confirms routing, application persistence, credit operations, and university-representative functions, but not every feature’s internal wiring.

Main entry points: [`backend/server.js`](https://github.com/tanvir210111/admify/blob/main/backend/server.js) (API server), [`backend/config/db.js`](https://github.com/tanvir210111/admify/blob/main/backend/config/db.js) (MongoDB), [`backend/routes`](https://github.com/tanvir210111/admify/tree/main/backend/routes) (Student routes), [`src/App.jsx`](https://github.com/tanvir210111/admify/blob/main/src/App.jsx) (Role-based web app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_student["Student journey"]
  node_student_tools["Student tools"]
  node_student_service["Student service<br/>[studentService.js]"]
  node_ai_routes["AI routes<br/>[aiRoutes.js]"]
  node_ai_service["AI service<br/>[aiService.js]"]
  node_application_flow["Application tracking"]
  node_wallet_flow["Wallet and credits"]
  node_application_model["Applications<br/>[Application.js]"]
end

subgraph group_partners["Partner operations"]
  node_agent_ops["Agent operations<br/>[agentController.js]"]
  node_agency_ops["Agency operations"]
  node_unirep_ops["University operations"]
end

subgraph group_platform["Platform management"]
  node_admin_ops["Admin operations<br/>[adminController.js]"]
  node_admin_routes["Admin routes<br/>[adminRoutes.js]"]
end

subgraph group_runtime["Application runtime"]
  node_web["Role-based web app<br/>[App.jsx]"]
  node_api_client["API client<br/>[api.js]"]
  node_api_server["API server<br/>[server.js]"]
  node_auth_routes["Authentication routes<br/>[authRoutes.js]"]
  node_student_routes["Student routes"]
  node_mongo[("MongoDB<br/>[db.js]")]
  node_external_mail["SMTP email"]
end

node_student(("Student"))
node_agent(("Agent / agency"))
node_unirep(("University representative"))
node_admin(("Admin"))

node_student -->|"uses"| node_web
node_agent -->|"uses"| node_web
node_unirep -->|"uses"| node_web
node_admin -->|"uses"| node_web
node_web -->|"routes to"| node_student_tools
node_student_tools -->|"requests services"| node_student_service
node_student_service -->|"calls API"| node_api_client
node_api_client -->|"sends requests"| node_api_server
node_api_server -->|"mounts"| node_auth_routes
node_api_server -->|"mounts"| node_student_routes
node_api_server -->|"mounts"| node_ai_routes
node_api_server -->|"mounts"| node_admin_routes
node_ai_routes -->|"handles AI requests"| node_ai_service
node_student_routes -->|"handles applications"| node_application_flow
node_application_flow -->|"reads and writes"| node_mongo
node_application_flow -->|"uses schema"| node_application_model
node_student_routes -->|"handles wallet requests"| node_wallet_flow
node_wallet_flow -->|"reads and writes"| node_mongo
node_student_routes -->|"handles agent requests"| node_agent_ops
node_agent_ops -->|"reads and writes"| node_mongo
node_student_routes -->|"handles agency requests"| node_agency_ops
node_agency_ops -->|"reads and writes"| node_mongo
node_api_server -->|"routes representative requests"| node_unirep_ops
node_unirep_ops -->|"reads and writes"| node_mongo
node_admin_routes -->|"dispatches requests"| node_admin_ops
node_admin_ops -->|"reads and writes"| node_mongo
node_unirep_ops -.->|"sends activation email"| node_external_mail

click node_web "https://github.com/tanvir210111/admify/blob/main/src/App.jsx"
click node_student_tools "https://github.com/tanvir210111/admify/tree/main/src/pages/student"
click node_student_service "https://github.com/tanvir210111/admify/blob/main/src/services/studentService.js"
click node_api_client "https://github.com/tanvir210111/admify/blob/main/src/lib/api.js"
click node_api_server "https://github.com/tanvir210111/admify/blob/main/backend/server.js"
click node_auth_routes "https://github.com/tanvir210111/admify/blob/main/backend/routes/authRoutes.js"
click node_student_routes "https://github.com/tanvir210111/admify/tree/main/backend/routes"
click node_ai_routes "https://github.com/tanvir210111/admify/blob/main/backend/routes/aiRoutes.js"
click node_ai_service "https://github.com/tanvir210111/admify/blob/main/backend/services/aiService.js"
click node_application_flow "https://github.com/tanvir210111/admify/blob/main/backend/controllers/applicationController.js"
click node_wallet_flow "https://github.com/tanvir210111/admify/blob/main/backend/controllers/walletController.js"
click node_agent_ops "https://github.com/tanvir210111/admify/blob/main/backend/controllers/agentController.js"
click node_agency_ops "https://github.com/tanvir210111/admify/blob/main/backend/controllers/agencyController.js"
click node_unirep_ops "https://github.com/tanvir210111/admify/blob/main/backend/controllers/universityRepController.js"
click node_admin_ops "https://github.com/tanvir210111/admify/blob/main/backend/controllers/adminController.js"
click node_admin_routes "https://github.com/tanvir210111/admify/blob/main/backend/routes/adminRoutes.js"
click node_mongo "https://github.com/tanvir210111/admify/blob/main/backend/config/db.js"
click node_application_model "https://github.com/tanvir210111/admify/blob/main/backend/models/Application.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_student_tools,node_student_service,node_ai_routes,node_ai_service,node_application_flow,node_wallet_flow,node_application_model toneBlue
class node_agent_ops,node_agency_ops,node_unirep_ops toneAmber
class node_admin_ops,node_admin_routes toneMint
class node_web,node_api_client,node_api_server,node_auth_routes,node_student_routes,node_mongo,node_external_mail toneRose
class node_student,node_agent,node_unirep,node_admin toneIndigo
```

## Components

### Student journey

- [Student tools](https://github.com/tanvir210111/admify/tree/main/src/pages/student): `src/pages/student`
- [Student service](https://github.com/tanvir210111/admify/blob/main/src/services/studentService.js): `src/services/studentService.js`
- [AI routes](https://github.com/tanvir210111/admify/blob/main/backend/routes/aiRoutes.js): `backend/routes/aiRoutes.js`
- [AI service](https://github.com/tanvir210111/admify/blob/main/backend/services/aiService.js): `backend/services/aiService.js`
- [Application tracking](https://github.com/tanvir210111/admify/blob/main/backend/controllers/applicationController.js): `backend/controllers/applicationController.js`
- [Wallet and credits](https://github.com/tanvir210111/admify/blob/main/backend/controllers/walletController.js): `backend/controllers/walletController.js`
- [Applications](https://github.com/tanvir210111/admify/blob/main/backend/models/Application.js): `backend/models/Application.js`

### Partner operations

- [Agent operations](https://github.com/tanvir210111/admify/blob/main/backend/controllers/agentController.js): `backend/controllers/agentController.js`
- [Agency operations](https://github.com/tanvir210111/admify/blob/main/backend/controllers/agencyController.js): `backend/controllers/agencyController.js`
- [University operations](https://github.com/tanvir210111/admify/blob/main/backend/controllers/universityRepController.js): `backend/controllers/universityRepController.js`

### Platform management

- [Admin operations](https://github.com/tanvir210111/admify/blob/main/backend/controllers/adminController.js): `backend/controllers/adminController.js`
- [Admin routes](https://github.com/tanvir210111/admify/blob/main/backend/routes/adminRoutes.js): `backend/routes/adminRoutes.js`

### Application runtime

- [Role-based web app](https://github.com/tanvir210111/admify/blob/main/src/App.jsx): `src/App.jsx`
- [API client](https://github.com/tanvir210111/admify/blob/main/src/lib/api.js): `src/lib/api.js`
- [API server](https://github.com/tanvir210111/admify/blob/main/backend/server.js): `backend/server.js`
- [Authentication routes](https://github.com/tanvir210111/admify/blob/main/backend/routes/authRoutes.js): `backend/routes/authRoutes.js`
- [Student routes](https://github.com/tanvir210111/admify/tree/main/backend/routes): `backend/routes`
- [MongoDB](https://github.com/tanvir210111/admify/blob/main/backend/config/db.js): `backend/config/db.js`
- **SMTP email**

### Other components

- **Student**
- **Agent / agency**
- **University representative**
- **Admin**

## Connections

- Student → Role-based web app: uses
- Agent / agency → Role-based web app: uses
- University representative → Role-based web app: uses
- Admin → Role-based web app: uses
- Role-based web app → Student tools: routes to
- Student tools → Student service: requests services
- Student service → API client: calls API
- API client → API server: sends requests
- API server → Authentication routes: mounts
- API server → Student routes: mounts
- API server → AI routes: mounts
- API server → Admin routes: mounts
- AI routes → AI service: handles AI requests
- Student routes → Application tracking: handles applications
- Application tracking → MongoDB: reads and writes
- Application tracking → Applications: uses schema
- Student routes → Wallet and credits: handles wallet requests
- Wallet and credits → MongoDB: reads and writes
- Student routes → Agent operations: handles agent requests
- Agent operations → MongoDB: reads and writes
- Student routes → Agency operations: handles agency requests
- Agency operations → MongoDB: reads and writes
- API server → University operations: routes representative requests
- University operations → MongoDB: reads and writes
- Admin routes → Admin operations: dispatches requests
- Admin operations → MongoDB: reads and writes
- University operations → SMTP email: sends activation email
