# sujal05091/hm26-02ae_power_rangers-p2-finalist-solution architecture

> Architecture diagram of the GitHub repository sujal05091/hm26-02ae_power_rangers-p2-finalist-solution, 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/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution
- Repository: https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution

## Overview

ProofArena is a proof-of-work hiring platform: companies publish challenges and openings; students submit work that moves through automated and AI-assisted review, human validation, live assessments and viva; recruiters then evaluate verified candidates and manage interviews. The README documents the broader assessment and hiring capabilities, while sampled API handlers confirm selected submission, challenge, quest, invite and notification flows. Some wiring for unsampled review, matching and quest-runtime stages is represented only where the README supports the capability; uncertain call relationships are omitted.

Main entry points: [`src/Mysuru_Hackathon/proofarena/lib/db.js`](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/db.js) (Platform State), [`src/Mysuru_Hackathon/proofarena/app/api/notify/route.js`](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/notify/route.js) (Quest Invitations), [`src/Mysuru_Hackathon/proofarena/app/api/ai/challenge/route.js`](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/ai/challenge/route.js) (AI Challenge Authoring), [`src/Mysuru_Hackathon/proofarena/app/api/submissions/route.js`](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/submissions/route.js) (Code Submission)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_company["Company Setup"]
  node_company_profile["Company Profile<br/>[route.js]"]
  node_challenge_library["Challenge Library<br/>[route.js]"]
  node_challenge_authoring["AI Challenge Authoring<br/>[route.js]"]
  node_openings["Job Openings<br/>[route.js]"]
end

subgraph group_assessment["Proof Assessment"]
  node_submission["Code Submission<br/>[route.js]"]
  node_review_pipeline["Automated Review<br/>[review.js]"]
  node_human_review["Human Review<br/>[route.js]"]
  node_live_round["Live Round<br/>[missions.js]"]
  node_quest_authoring["3D Quest Publishing<br/>[route.js]"]
  node_quest_world["3D Quest Engine<br/>[Arena.ts]"]
  node_viva["AI Viva<br/>[route.js]"]
end

subgraph group_hiring["Recruiter Hiring"]
  node_candidate_match["Candidate Matching<br/>[selectors.js]"]
  node_candidate_dossier["Candidate Dossier<br/>[page.js]"]
  node_interview_invites["Interview Pipeline<br/>[route.js]"]
  node_hr_connect["HR Connect<br/>[route.js]"]
  node_quest_notifications["Quest Invitations<br/>[route.js]"]
end

subgraph group_platform["Platform Services"]
  node_state_service["State Assembly<br/>[state.js]"]
  node_database[("Platform State<br/>[db.js]")]
end

node_company_actor(("Company"))
node_student_actor(("Student"))
node_engineer_actor(("Engineer"))
node_recruiter_actor(("Recruiter"))
node_ai_provider(("Groq AI"))
node_sms_provider(("Twilio SMS"))
node_email_provider(("Email"))

node_company_actor -->|"creates profile"| node_company_profile
node_company_actor -->|"drafts challenge"| node_challenge_authoring
node_challenge_authoring -.->|"generates text"| node_ai_provider
node_challenge_authoring -->|"publishes challenge"| node_challenge_library
node_company_actor -->|"posts opening"| node_openings
node_openings -->|"selects challenge"| node_challenge_library
node_student_actor -->|"submits work"| node_submission
node_submission -->|"stores submission"| node_database
node_submission -->|"starts checks"| node_review_pipeline
node_review_pipeline -.->|"requests review"| node_ai_provider
node_engineer_actor -->|"reviews findings"| node_human_review
node_human_review -->|"publishes review"| node_database
node_student_actor -->|"enters assessment"| node_live_round
node_live_round -->|"dispatches stages"| node_quest_world
node_company_actor -->|"publishes quest"| node_quest_authoring
node_quest_authoring -->|"stores quest"| node_database
node_quest_world -->|"starts viva"| node_viva
node_viva -.->|"generates questions"| node_ai_provider
node_recruiter_actor -->|"matches skills"| node_candidate_match
node_candidate_match -->|"reads platform state"| node_state_service
node_state_service -->|"reads records"| node_database
node_recruiter_actor -->|"inspects proof"| node_candidate_dossier
node_recruiter_actor -->|"sends invite"| node_interview_invites
node_interview_invites -->|"records status"| node_database
node_student_actor -->|"requests introduction"| node_hr_connect
node_hr_connect -->|"records conversation"| node_database
node_company_actor -->|"announces quest"| node_quest_notifications
node_quest_notifications -.->|"sends SMS"| node_sms_provider
node_quest_notifications -.->|"sends email"| node_email_provider
node_quest_notifications -->|"stores deliveries"| node_database

click node_company_profile "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/company/route.js"
click node_challenge_library "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/challenges/route.js"
click node_challenge_authoring "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/ai/challenge/route.js"
click node_openings "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/openings/route.js"
click node_submission "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/submissions/route.js"
click node_review_pipeline "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/review.js"
click node_human_review "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/submissions/%5Bid%5D/review/route.js"
click node_live_round "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/missions.js"
click node_quest_authoring "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/quests/route.js"
click node_quest_world "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/quest-world/src/quest/Arena.ts"
click node_viva "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/viva/%5Bid%5D/route.js"
click node_candidate_match "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/selectors.js"
click node_candidate_dossier "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/company/candidates/%5BstudentId%5D/page.js"
click node_interview_invites "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/invites/route.js"
click node_hr_connect "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/connect/route.js"
click node_quest_notifications "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/notify/route.js"
click node_state_service "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/state.js"
click node_database "https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/db.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_company_profile,node_challenge_library,node_challenge_authoring,node_openings toneBlue
class node_submission,node_review_pipeline,node_human_review,node_live_round,node_quest_authoring,node_quest_world,node_viva toneAmber
class node_candidate_match,node_candidate_dossier,node_interview_invites,node_hr_connect,node_quest_notifications toneMint
class node_state_service,node_database toneRose
class node_company_actor,node_student_actor,node_engineer_actor,node_recruiter_actor,node_ai_provider,node_sms_provider,node_email_provider toneIndigo
```

## Components

### Company Setup

- [Company Profile](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/company/route.js): `src/Mysuru_Hackathon/proofarena/app/api/company/route.js`
- [Challenge Library](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/challenges/route.js): `src/Mysuru_Hackathon/proofarena/app/api/challenges/route.js`
- [AI Challenge Authoring](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/ai/challenge/route.js): `src/Mysuru_Hackathon/proofarena/app/api/ai/challenge/route.js`
- [Job Openings](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/openings/route.js): `src/Mysuru_Hackathon/proofarena/app/api/openings/route.js`

### Proof Assessment

- [Code Submission](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/submissions/route.js): `src/Mysuru_Hackathon/proofarena/app/api/submissions/route.js`
- [Automated Review](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/review.js): `src/Mysuru_Hackathon/proofarena/lib/review.js`
- [Human Review](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/submissions/%5Bid%5D/review/route.js): `src/Mysuru_Hackathon/proofarena/app/api/submissions/[id]/review/route.js`
- [Live Round](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/missions.js): `src/Mysuru_Hackathon/proofarena/lib/missions.js`
- [3D Quest Publishing](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/quests/route.js): `src/Mysuru_Hackathon/proofarena/app/api/quests/route.js`
- [3D Quest Engine](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/quest-world/src/quest/Arena.ts): `src/Mysuru_Hackathon/quest-world/src/quest/Arena.ts`
- [AI Viva](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/viva/%5Bid%5D/route.js): `src/Mysuru_Hackathon/proofarena/app/api/viva/[id]/route.js`

### Recruiter Hiring

- [Candidate Matching](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/selectors.js): `src/Mysuru_Hackathon/proofarena/lib/selectors.js`
- [Candidate Dossier](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/company/candidates/%5BstudentId%5D/page.js): `src/Mysuru_Hackathon/proofarena/app/company/candidates/[studentId]/page.js`
- [Interview Pipeline](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/invites/route.js): `src/Mysuru_Hackathon/proofarena/app/api/invites/route.js`
- [HR Connect](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/connect/route.js): `src/Mysuru_Hackathon/proofarena/app/api/connect/route.js`
- [Quest Invitations](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/app/api/notify/route.js): `src/Mysuru_Hackathon/proofarena/app/api/notify/route.js`

### Platform Services

- [State Assembly](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/state.js): `src/Mysuru_Hackathon/proofarena/lib/state.js`
- [Platform State](https://github.com/sujal05091/hm26-02ae_power_rangers-p2-finalist-solution/blob/main/src/Mysuru_Hackathon/proofarena/lib/db.js): `src/Mysuru_Hackathon/proofarena/lib/db.js`

### Other components

- **Company**
- **Student**
- **Engineer**
- **Recruiter**
- **Groq AI**
- **Twilio SMS**
- **Email**

## Connections

- Company → Company Profile: creates profile
- Company → AI Challenge Authoring: drafts challenge
- AI Challenge Authoring → Groq AI: generates text
- AI Challenge Authoring → Challenge Library: publishes challenge
- Company → Job Openings: posts opening
- Job Openings → Challenge Library: selects challenge
- Student → Code Submission: submits work
- Code Submission → Platform State: stores submission
- Code Submission → Automated Review: starts checks
- Automated Review → Groq AI: requests review
- Engineer → Human Review: reviews findings
- Human Review → Platform State: publishes review
- Student → Live Round: enters assessment
- Live Round → 3D Quest Engine: dispatches stages
- Company → 3D Quest Publishing: publishes quest
- 3D Quest Publishing → Platform State: stores quest
- 3D Quest Engine → AI Viva: starts viva
- AI Viva → Groq AI: generates questions
- Recruiter → Candidate Matching: matches skills
- Candidate Matching → State Assembly: reads platform state
- State Assembly → Platform State: reads records
- Recruiter → Candidate Dossier: inspects proof
- Recruiter → Interview Pipeline: sends invite
- Interview Pipeline → Platform State: records status
- Student → HR Connect: requests introduction
- HR Connect → Platform State: records conversation
- Company → Quest Invitations: announces quest
- Quest Invitations → Twilio SMS: sends SMS
- Quest Invitations → Email: sends email
- Quest Invitations → Platform State: stores deliveries
