# chintanhirpara2707/adhyay_placement_portal architecture

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

- Interactive diagram: https://gitdiagram.com/chintanhirpara2707/adhyay_placement_portal
- Repository: https://github.com/chintanhirpara2707/adhyay_placement_portal

## Overview

This is a campus-placement platform: students discover jobs and track applications, companies publish openings and review applicants, and administrators manage placement operations. The Expo app contains role-specific routes backed by Supabase; a separate web UI presents a student feed, application tracker, profile builder, and placement-drive modal. Sampled files support several data and UI relationships, but most route implementations were not inspected, so their internal flows are not inferred.

Main entry points: [`src/lib/supabase.ts`](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/lib/supabase.ts) (Supabase data service), [`web/src/App.tsx`](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/App.tsx) (Web app coordinator), [`src/lib/authSession.ts`](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/lib/authSession.ts) (Session and role sync), [`src/store/authStore.ts`](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/store/authStore.ts) (Auth state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and shared services"]
  node_auth["Sign-in and roles"]
  node_auth_session["Session and role sync<br/>[authSession.ts]"]
  node_auth_store["Auth state<br/>[authStore.ts]"]
  node_supabase[("Supabase data service<br/>[supabase.ts]")]
end

subgraph group_student["Student placement"]
  node_student_jobs["Job discovery and details<br/>[jobs.tsx]"]
  node_applications["Application tracking<br/>[applications.tsx]"]
  node_student_profile["Student profile<br/>[profile.tsx]"]
end

subgraph group_company["Company hiring"]
  node_company_jobs["Job posting<br/>[post-job.tsx]"]
  node_applicant_review["Applicant review<br/>[&#91;id&#93;.tsx]"]
end

subgraph group_admin["Administration"]
  node_admin_ops["Placement administration"]
end

subgraph group_web["Web experience"]
  node_web_app["Web app coordinator<br/>[App.tsx]"]
  node_web_feed["Job feed<br/>[JobFeed.tsx]"]
  node_web_tracker["Application tracker"]
  node_web_profile["Profile builder"]
  node_drive_modal["Placement-drive modal"]
end

node_student_actor(("Student"))
node_company_actor(("Company"))
node_admin_actor(("Administrator"))

node_auth_session -->|"checks session and role"| node_supabase
node_auth_session -->|"updates auth state"| node_auth_store
node_auth_store -->|"signs out"| node_supabase
node_student_actor -.->|"browses openings"| node_student_jobs
node_student_actor -.->|"tracks applications"| node_applications
node_applications -->|"loads applications"| node_supabase
node_student_actor -.->|"maintains profile"| node_student_profile
node_company_actor -.->|"posts opening"| node_company_jobs
node_company_jobs -->|"writes job data"| node_supabase
node_company_actor -.->|"reviews candidate"| node_applicant_review
node_applicant_review -->|"loads applicant data"| node_supabase
node_admin_actor -.->|"manages placement"| node_admin_ops
node_web_app -->|"renders tab"| node_web_feed
node_web_app -->|"renders tab"| node_web_tracker
node_web_app -->|"renders tab"| node_web_profile
node_web_app -->|"opens modal"| node_drive_modal

click node_auth "https://github.com/chintanhirpara2707/adhyay_placement_portal/tree/main/src/app/(auth)"
click node_auth_session "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/lib/authSession.ts"
click node_auth_store "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/store/authStore.ts"
click node_supabase "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/lib/supabase.ts"
click node_student_jobs "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(student)/jobs.tsx"
click node_applications "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(student)/applications.tsx"
click node_student_profile "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(student)/profile.tsx"
click node_company_jobs "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(company)/post-job.tsx"
click node_applicant_review "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(company)/applicant/%5Bid%5D.tsx"
click node_admin_ops "https://github.com/chintanhirpara2707/adhyay_placement_portal/tree/main/src/app/(admin)"
click node_web_app "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/App.tsx"
click node_web_feed "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/components/JobFeed.tsx"
click node_web_tracker "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/components/ApplicationTracker.tsx"
click node_web_profile "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/components/StudentProfileBuilder.tsx"
click node_drive_modal "https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/components/PlacementDriveModal.tsx"

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_auth,node_auth_session,node_auth_store,node_supabase toneBlue
class node_student_jobs,node_applications,node_student_profile toneAmber
class node_company_jobs,node_applicant_review toneMint
class node_admin_ops toneRose
class node_web_app,node_web_feed,node_web_tracker,node_web_profile,node_drive_modal,node_student_actor,node_company_actor,node_admin_actor toneIndigo
```

## Components

### Access and shared services

- [Sign-in and roles](https://github.com/chintanhirpara2707/adhyay_placement_portal/tree/main/src/app/(auth)): `src/app/(auth)`
- [Session and role sync](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/lib/authSession.ts): `src/lib/authSession.ts`
- [Auth state](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/store/authStore.ts): `src/store/authStore.ts`
- [Supabase data service](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/lib/supabase.ts): `src/lib/supabase.ts`

### Student placement

- [Job discovery and details](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(student)/jobs.tsx): `src/app/(student)/jobs.tsx`
- [Application tracking](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(student)/applications.tsx): `src/app/(student)/applications.tsx`
- [Student profile](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(student)/profile.tsx): `src/app/(student)/profile.tsx`

### Company hiring

- [Job posting](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(company)/post-job.tsx): `src/app/(company)/post-job.tsx`
- [Applicant review](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/src/app/(company)/applicant/%5Bid%5D.tsx): `src/app/(company)/applicant/[id].tsx`

### Administration

- [Placement administration](https://github.com/chintanhirpara2707/adhyay_placement_portal/tree/main/src/app/(admin)): `src/app/(admin)`

### Web experience

- [Web app coordinator](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/App.tsx): `web/src/App.tsx`
- [Job feed](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/components/JobFeed.tsx): `web/src/components/JobFeed.tsx`
- [Application tracker](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/components/ApplicationTracker.tsx): `web/src/components/ApplicationTracker.tsx`
- [Profile builder](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/components/StudentProfileBuilder.tsx): `web/src/components/StudentProfileBuilder.tsx`
- [Placement-drive modal](https://github.com/chintanhirpara2707/adhyay_placement_portal/blob/main/web/src/components/PlacementDriveModal.tsx): `web/src/components/PlacementDriveModal.tsx`

### Other components

- **Student**
- **Company**
- **Administrator**

## Connections

- Session and role sync → Supabase data service: checks session and role (evidence: `src/lib/authSession.ts`)
- Session and role sync → Auth state: updates auth state (evidence: `src/lib/authSession.ts`)
- Auth state → Supabase data service: signs out (evidence: `src/store/authStore.ts`)
- Student → Job discovery and details: browses openings
- Student → Application tracking: tracks applications
- Application tracking → Supabase data service: loads applications (evidence: `src/app/(student)/applications.tsx`)
- Student → Student profile: maintains profile
- Company → Job posting: posts opening
- Job posting → Supabase data service: writes job data (evidence: `src/app/(company)/post-job.tsx`)
- Company → Applicant review: reviews candidate
- Applicant review → Supabase data service: loads applicant data (evidence: `src/app/(company)/applicant/[id].tsx`)
- Administrator → Placement administration: manages placement
- Web app coordinator → Job feed: renders tab (evidence: `web/src/App.tsx`)
- Web app coordinator → Application tracker: renders tab (evidence: `web/src/App.tsx`)
- Web app coordinator → Profile builder: renders tab (evidence: `web/src/App.tsx`)
- Web app coordinator → Placement-drive modal: opens modal (evidence: `web/src/App.tsx`)
