# jayant134/ston-assignment-jayant architecture

> Architecture diagram of the GitHub repository jayant134/ston-assignment-jayant, 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/jayant134/ston-assignment-jayant
- Repository: https://github.com/jayant134/ston-assignment-jayant

## Overview

STON Placement App is a student-facing placement-drive mobile app. Students log in, browse and filter drives by eligibility, inspect a drive and apply, then review application statuses and open a QR admit card. The app uses local mock student/drive data and React Context for shared applied state; the separate Express mock API provides equivalent server endpoints but the README says the mobile app does not call it. Screen-level detail and admit-card wiring are represented from documented features; those screen implementations were not sampled.

Main entry points: [`src/navigation/AppNavigator.js`](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/navigation/AppNavigator.js) (Screen Navigation), [`src/screens/DriveListScreen.js`](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/DriveListScreen.js) (Drive Listing), [`src/screens/MyApplicationsScreen.js`](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/MyApplicationsScreen.js) (My Applications), [`src/context/AppContext.js`](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/context/AppContext.js) (Application State)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mobile["Mobile App"]
  node_app["App Root<br/>[App.js]"]
  node_navigation["Screen Navigation<br/>[AppNavigator.js]"]
  node_login["Login<br/>[LoginScreen.js]"]
  node_drive_list["Drive Listing<br/>[DriveListScreen.js]"]
  node_drive_detail["Drive Detail"]
  node_applications_screen["My Applications"]
  node_admit_card["QR Admit Card<br/>[AdmitCardScreen.js]"]
end

subgraph group_domain["Placement Domain"]
  node_eligibility["Eligibility Rules"]
  node_drive_data["Mock Drives<br/>[mockDrives.js]"]
  node_student_data["Mock Student<br/>[mockStudent.js]"]
  node_app_state["Application State<br/>[AppContext.js]"]
  node_drive_card["Drive Card<br/>[DriveCard.js]"]
  node_eligibility_tag["Eligibility Badge<br/>[EligibilityTag.js]"]
  node_status_badge["Status Badge<br/>[StatusBadge.js]"]
end

subgraph group_server["Mock API"]
  node_api["Express API<br/>[index.js]"]
  node_server_drives["Server Drive Data<br/>[drives.json]"]
end

node_student(("Student"))

node_app -->|"provides state"| node_app_state
node_app -->|"renders"| node_navigation
node_student -->|"enters credentials"| node_login
node_navigation -->|"starts at"| node_login
node_login -->|"opens drives"| node_navigation
node_navigation -->|"routes to"| node_drive_list
node_drive_list -->|"reads drives"| node_drive_data
node_drive_list -->|"reads student"| node_student_data
node_drive_list -->|"checks eligibility"| node_eligibility
node_drive_list -->|"reads applications"| node_app_state
node_drive_list -->|"renders cards"| node_drive_card
node_drive_card -->|"shows status"| node_eligibility_tag
node_drive_list -->|"opens detail"| node_navigation
node_navigation -->|"routes to"| node_drive_detail
node_drive_detail -->|"checks eligibility"| node_eligibility
node_drive_detail -->|"applies drive"| node_app_state
node_drive_list -->|"opens applications"| node_navigation
node_navigation -->|"routes to"| node_applications_screen
node_applications_screen -->|"reads applications"| node_app_state
node_applications_screen -->|"shows status"| node_status_badge
node_applications_screen -->|"opens admit card"| node_navigation
node_navigation -->|"routes to"| node_admit_card
node_api -->|"reads drives"| node_server_drives

click node_app "https://github.com/jayant134/ston-assignment-jayant/blob/main/App.js"
click node_navigation "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/navigation/AppNavigator.js"
click node_login "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/LoginScreen.js"
click node_drive_list "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/DriveListScreen.js"
click node_drive_detail "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/DriveDetailScreen.js"
click node_applications_screen "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/MyApplicationsScreen.js"
click node_admit_card "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/AdmitCardScreen.js"
click node_eligibility "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/utils/eligibilityUtils.js"
click node_drive_data "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/data/mockDrives.js"
click node_student_data "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/data/mockStudent.js"
click node_app_state "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/context/AppContext.js"
click node_drive_card "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/components/DriveCard.js"
click node_eligibility_tag "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/components/EligibilityTag.js"
click node_status_badge "https://github.com/jayant134/ston-assignment-jayant/blob/main/src/components/StatusBadge.js"
click node_api "https://github.com/jayant134/ston-assignment-jayant/blob/main/server/index.js"
click node_server_drives "https://github.com/jayant134/ston-assignment-jayant/blob/main/server/data/drives.json"

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_navigation,node_login,node_drive_list,node_drive_detail,node_applications_screen,node_admit_card toneBlue
class node_eligibility,node_drive_data,node_student_data,node_app_state,node_drive_card,node_eligibility_tag,node_status_badge toneAmber
class node_api,node_server_drives toneMint
class node_student toneIndigo
```

## Components

### Mobile App

- [App Root](https://github.com/jayant134/ston-assignment-jayant/blob/main/App.js): `App.js`
- [Screen Navigation](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/navigation/AppNavigator.js): `src/navigation/AppNavigator.js`
- [Login](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/LoginScreen.js): `src/screens/LoginScreen.js`
- [Drive Listing](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/DriveListScreen.js): `src/screens/DriveListScreen.js`
- [Drive Detail](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/DriveDetailScreen.js): `src/screens/DriveDetailScreen.js`
- [My Applications](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/MyApplicationsScreen.js): `src/screens/MyApplicationsScreen.js`
- [QR Admit Card](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/screens/AdmitCardScreen.js): `src/screens/AdmitCardScreen.js`

### Placement Domain

- [Eligibility Rules](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/utils/eligibilityUtils.js): `src/utils/eligibilityUtils.js`
- [Mock Drives](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/data/mockDrives.js): `src/data/mockDrives.js`
- [Mock Student](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/data/mockStudent.js): `src/data/mockStudent.js`
- [Application State](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/context/AppContext.js): `src/context/AppContext.js`
- [Drive Card](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/components/DriveCard.js): `src/components/DriveCard.js`
- [Eligibility Badge](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/components/EligibilityTag.js): `src/components/EligibilityTag.js`
- [Status Badge](https://github.com/jayant134/ston-assignment-jayant/blob/main/src/components/StatusBadge.js): `src/components/StatusBadge.js`

### Mock API

- [Express API](https://github.com/jayant134/ston-assignment-jayant/blob/main/server/index.js): `server/index.js`
- [Server Drive Data](https://github.com/jayant134/ston-assignment-jayant/blob/main/server/data/drives.json): `server/data/drives.json`

### Other components

- **Student**

## Connections

- App Root → Application State: provides state
- App Root → Screen Navigation: renders
- Student → Login: enters credentials
- Screen Navigation → Login: starts at
- Login → Screen Navigation: opens drives
- Screen Navigation → Drive Listing: routes to
- Drive Listing → Mock Drives: reads drives
- Drive Listing → Mock Student: reads student
- Drive Listing → Eligibility Rules: checks eligibility
- Drive Listing → Application State: reads applications
- Drive Listing → Drive Card: renders cards
- Drive Card → Eligibility Badge: shows status
- Drive Listing → Screen Navigation: opens detail
- Screen Navigation → Drive Detail: routes to
- Drive Detail → Eligibility Rules: checks eligibility
- Drive Detail → Application State: applies drive
- Drive Listing → Screen Navigation: opens applications
- Screen Navigation → My Applications: routes to
- My Applications → Application State: reads applications
- My Applications → Status Badge: shows status
- My Applications → Screen Navigation: opens admit card
- Screen Navigation → QR Admit Card: routes to
- Express API → Server Drive Data: reads drives
