# Project export: TransferMap

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: CruzHacks 2026
- Tagline: TransferMap automatically verifies your UC transfer eligibility by cross-referencing your coursework with official ASSIST.org and UC requirements, giving you a clear, source roadmap to your campus.
- Devpost: https://devpost.com/software/bridge-mapper
- GitHub: https://github.com/rgupta-07/cruzHacks
- Video: https://www.youtube.com/embed/DcbnaGhErwE?enablejsapi=1&hl=en_US&rel=0&start=&version=3&wmode=transparent
- Team: 3 GitHub contributor(s) — Rishit Gupta (19 commits), QuyenTan (4 commits), etnguyen14 (4 commits)

## Devpost submission (written by the team)

### Inspiration

As California community college and UC students who are actively navigating the transfer path into UCs, we’ve experienced firsthand how confusing and stressful the UC transfer process can be. Different counselors often provide conflicting guidance, university websites are labyrinthine and sometimes misleading, and critical information is scattered across dozens of disconnected sources. Even widely used tools like Assist.org only solve part of the problem by showing course equivalencies, without presenting the full picture. Students are left to piece together GPA requirements, unit minimums and caps, major preparation pathways by campus, and timing constraints on their own. We’ve watched classmates miss transfer opportunities simply because they didn’t realize they were missing a single required course or took the wrong articulated class. The problem is real: recent data show that only about 30% of California community college students who intend to transfer actually do so within six years. Additionally, UC-to-UC transfer is even harder as there's limited information out there. From what a UC Admissions officer mentioned UC to UC lower div course generally transfers, but this tool makes it easier to articulate and track courses completed and required.

### What it does

We believe better information accessibility is part of the solution. We wanted to build something that gives students a single source of truth - an AI-powered tool that automatically cross-references official requirements and provides clear, actionable guidance with direct source links.

### How we built it

Frontend (React.js + Tailwind CSS) Built a clean, intuitive UI with a multi-step workflow: profile setup → UC selection → transcript entry → eligibility results Implemented a glassmorphic design system inspired by UCSC's branding Created an interactive dashboard showing transfer readiness, GPA, units, and course completion status Used Firebase Authentication for Google OAuth sign-in Frontend (React.js + Tailwind CSS) Built a clean, intuitive UI with a multi-step workflow: profile setup → UC selection → transcript entry → eligibility results Implemented a glassmorphic design system inspired by UCSC's branding Created an interactive dashboard showing transfer readiness, GPA, units, and course completion status Used Firebase Authentication for Google OAuth sign-in Backend (Node.js + Firebase) Set up Firebase Firestore for real-time user data storage (profile, transcript, verification results) Designed API endpoints to handle course additions, deletions, and verification requests Integrated with Python AI service for intelligent requirement matching Backend (Node.js + Firebase) Set up Firebase Firestore for real-time user data storage (profile, transcript, verification results) Designed API endpoints to handle course additions, deletions, and verification requests Integrated with Python AI service for intelligent requirement matching AI Service (Python + Claude API) Developed a Python microservice that processes user transcripts and queries ASSIST.org Used Claude Anthropic 4.5 model to parse complex articulation agreements and match courses intelligently Implemented NLP to understand course equivalencies (e.g., "MATH 1A" at De Anza = "MATH 19A" at UCSC) Built risk detection algorithms to flag unit caps, GPA requirements, and missing prerequisites AI Service (Python + Claude API) Developed a Python microservice that processes user transcripts and queries ASSIST.org Used Claude Anthropic 4.5 model to parse complex articulation agreements and match courses intelligently Implemented NLP to understand course equivalencies (e.g., "MATH 1A" at De Anza = "MATH 19A" at UCSC) Built risk detection algorithms to flag unit caps, GPA requirements, and missing prerequisites Data Integration Scraped and structured data from ASSIST.org and official UC transfer pages Created a comprehensive database of major requirements for all UC campuses Implemented caching to reduce API calls and improve response times Data Integration Scraped and structured data from ASSIST.org and official UC transfer pages Created a comprehensive database of major requirements for all UC campuses Implemented caching to reduce API calls and improve response times Collaboration (GitHub) Used feature branches for parallel development by all 4 team members Implemented CI/CD pipelines for automated testing and deployment Collaboration (GitHub) Used feature branches for parallel development by all 4 team members Implemented CI/CD pipelines for automated testing and deployment

### Challenges we ran into

1) ASSIST.org data structure: The articulation data is complex and inconsistent between colleges. We had to write custom parsers for different college formats 2) AI accuracy vs. speed tradeoff: Making the verification fast enough for a good UX while still being thorough required optimization 3) Course equivalency logic: Determining if "CIS 22A" is truly equivalent to "CMPS 5J" across different schools was harder than expected 4) Firebase real-time syncing: Managing race conditions when multiple users update their transcripts simultaneously Time constraints: Building a full-stack app with AI integration in 36 hours meant prioritizing features and accepting "good enough" over perfect

### Accomplishments we're proud of

Building TransferMap in 36 hours, we're proud of: our AI transcript reader that automatically parses course data from PDFs, a sleek glassmorphism interface that makes transfer planning intuitive, seamless Firebase integration for data persistence, and most importantly, our AI-powered verification engine that analyzes official UC requirements to give students accurate, personalized transfer eligibility assessments. Most of all, we’re glad we could create a tool that empowers community college students with clarity and confidence in their transfer journey.

### What we learned

1) Data is messy: Articulation agreements aren't standardized - we had to build robust parsing logic to handle variations in how different colleges name courses 2) AI prompt engineering: Getting Claude to accurately match courses required careful prompt design and validation Real-time collaboration: Working asynchronously with Firebase required thoughtful data structure design to avoid conflicts 3)User experience matters: We iterated heavily on the UI after realizing our initial design was too technical—students need clarity, not complexity 4)Scope management: We learned to prioritize features ruthlessly—starting with UCSC-only for the demo, then planning expansion

### What's next

for Transfer Map 1) Add an AI chatbot suggestion. 2) Add CSU support for students considering California State Universities 3) GPA calculator that projects future grades needed to reach target GPA 4) Course planning assistant that suggests optimal course sequences 5) Counselor dashboard for academic advisors to track multiple students 6) Mobile app for on-the-go transcript management 7) Integration with official UC application to auto-populate transfer data

## README (from the GitHub repository)

# TransferMap - UC Transfer Path Verifier🎓

> A hackathon project for CruzHacks 2026 - Helping California community college students verify their UC transfer eligibility using official sources.

![UC Transfer Verifier](https://img.shields.io/badge/cruzhacks-2025-FDC700?style=for-the-badge)
![React](https://img.shields.io/badge/React-18.2-61DAFB?style=flat-square&logo=react)
![FastAPI](https://img.shields.io/badge/FastAPI-0.128-009688?style=flat-square&logo=fastapi)
![Tailwind](https://img.shields.io/badge/Tailwind-3.4-38B2AC?style=flat-square&logo=tailwindcss)

## 🎯 The Problem

Transfer students often receive inconsistent advising - different counselors say different things, university websites are hard to navigate and sometimes misleading. This leads to costly mistakes, delayed graduations, and unnecessary stress.

## 💡 Our Solution

A tool where California community college students can:
1. Enter the classes they've taken and their target major
2. The tool checks Assist.org and official UC pages
3. See a clear checklist of what's completed, what's missing, and any risks
4. Get direct links to official sources

**This is NOT advice - it's a source-backed second opinion.**

## ✨ Features

- **Google Authentication** - Secure sign-in with your school email
- **Smart Course Entry** - Add your courses manually or load demo data
- **Real-time Verification** - Check eligibility against official requirements
- **Clear Results** - See exactly what's done, what's missing, and risks
- **Official Sources** - Every result links back to Assist.org and UC pages
- **Beautiful UI** - UCSC-themed design with smooth animations

## 🛠️ Tech Stack

### Frontend
- **React 18** - UI library
- **Vite** - Build tool
- **Tailwind CSS** - Styling
- **Lucide React** - Icons
- **Firebase Auth** - Google sign-in

### Backend
- **Python 3.11+** - Runtime
- **FastAPI** - API framework
- **SQLAlchemy** - ORM (optional)
- **Pydantic** - Data validation

### Data Sources
- Assist.org API (mock data for demo)
- UCSC Transfer Requirements

## 🚀 Quick Start

### Prerequisites
- Node.js 18+
- Python 3.11+
- npm or yarn

### Frontend Setup

```bash
cd frontend
npm install
npm run dev
```

The frontend will be available at `http://localhost:3000`

### Backend Setup

```bash
cd backend
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload
```

The API will be available at `http://localhost:8000`

### Firebase Setup (Optional for Demo)

1. Create a Firebase project at https://console.firebase.google.com
2. Enable Google Authentication
3. Create a `.env` file in the frontend folder:

```env
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
```

## 📁 Project Structure

```
cruzhacks-transfer-tool/
├── frontend/
│   ├── src/
│   │   ├── App.jsx           # Main app component
│   │   ├── main.jsx          # Entry point
│   │   ├── index.css         # Global styles
│   │   ├── firebase.js       # Firebase config
│   │   └── services/
│   │       └── api.js        # API service
│   ├── index.html
│   ├── package.json
│   ├── tailwind.config.js
│   └── vite.config.js
├── backend/
│   ├── app/
│   │   ├── main.py           # FastAPI app
│   │   ├── db/
│   │   │   └── database.py   # Database config
│   │   ├── models/
│   │   │   └── models.py     # SQLAlchemy models
│   │   └── services/
│   │       ├── eligibility.py # Verification logic
│   │       └── explainer.py   # AI explanations
│   └── requirements.txt
└── README.md
```

## 🎮 Demo Flow

1. **Welcome Screen** - Click "Sign in with Google"
2. **Profile Setup** - Enter name, major, and community college
3. **Choose UC** - Select UCSC (other UCs coming soon)
4. **Enter Courses** - Add your transcript manually or load demo data
5. **Verify** - Click "Verify My Eligibility"
6. **Results** - See your eligibility status, completed/missing requirements, and risks

## 📊 API Endpoints

| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/api/colleges` | Get list of community colleges |
| GET | `/api/majors` | Get supported majors |
| GET | `/api/uc-campuses` | Get UC campus list |
| POST | `/api/auth/register` | Register new user |
| POST | `/api/select-uc` | Select target UC |
| POST | `/api/transcript/upload` | Upload transcript courses |
| POST | `/api/verify/{email}` | Run eligibility verification |

## 🔮 Future Features

- [ ] PDF transcript parsing
- [ ] All UC campuses
- [ ] More majors
- [ ] Real Assist.org API integration
- [ ] AI-powered course recommendations
- [ ] Transfer application timeline
- [ ] Community college course search

## 👥 Team

Built with ❤️ at CruzHacks 2026

## 📜 Disclaimer

**This tool is for informational purposes only.** It does not provide official advice or guarantees. Always verify information with an academic counselor and official university sources before making any decisions about your education.

## 📄 License

MIT License - See LICENSE file for details


## Detected evidence (automated analysis)

Indexed codebase: 37 recognized source files, 134 KB.
- CSS (language) — detected in the code
- FastAPI (technology) — detected in the code
- Firebase (technology) — detected in the code
- HTML (language) — detected in the code
- JavaScript (language) — detected in the code
- Python (language) — detected in the code
- React (technology) — detected in the code
- Tailwind CSS (technology) — detected in the code

## Codebase structure (from repository index)

### Files (47 of 47)

```
.gitignore
app/db/database.py
app/main.py
app/models/models.py
app/services/eligibility.py
app/services/explainer.py
backend/.DS_Store
backend/app/__init__.py
backend/app/.DS_Store
backend/app/db/__init__.py
backend/app/db/database.py
backend/app/main.py
backend/app/models/__init__.py
backend/app/models/models.py
backend/app/prompting/prompt_builder.py
backend/app/prompting/prompt_data.py
backend/app/prompting/prompts.py
backend/app/services/__init__.py
backend/app/services/eligibility.py
backend/app/services/explainer.py
backend/app/services/llm.py
backend/requirements.txt
ca_community_colleges.json
frontend/.env.example
frontend/index.html
frontend/package.json
frontend/postcss.config.js
frontend/src/App.jsx
frontend/src/ca_community_colleges.json
frontend/src/ccc.py
frontend/src/cccList.jsx
frontend/src/config.js
frontend/src/Dashboard.jsx
frontend/src/firebase.js
frontend/src/fireData.js
frontend/src/index.css
frontend/src/main.jsx
frontend/src/services/api.js
frontend/src/signOut.js
frontend/src/transcriptUpload.js
frontend/src/useGoogleAuth.js
frontend/tailwind.config.js
frontend/vite.config.js
package.json
README.md
requirements.txt
test.py
```

### Dependencies

- backend/requirements.txt: annotated-types@==0.7.0, anyio@==4.12.1, certifi@==2026.1.4, charset-normalizer@==3.4.4, click@==8.1.8, exceptiongroup@==1.3.1, fastapi@==0.128.0, h11@==0.16.0, idna@==3.11, pydantic@==2.12.5, pydantic_core@==2.41.5, python-dotenv@==1.2.1, requests@==2.32.5, SQLAlchemy@==2.0.45, starlette@==0.49.3, typing_extensions@==4.15.0, typing-inspection@==0.4.2, urllib3@==2.6.3, uvicorn@==0.39.0
- frontend/package.json: @types/react@^18.2.56, @types/react-dom@^18.2.19, @vitejs/plugin-react@^4.2.1, autoprefixer@^10.4.18, axios@^1.6.0, eslint@^8.56.0, eslint-plugin-react@^7.33.2, eslint-plugin-react-hooks@^4.6.0, eslint-plugin-react-refresh@^0.4.5, firebase@^10.8.0, lucide-react@^0.263.1, postcss@^8.4.35, react@^18.2.0, react-dom@^18.2.0, react-router-dom@^6.22.0, tailwindcss@^3.4.1, vite@^5.1.4
- package.json: pdfjs-dist@^5.4.530
- requirements.txt: annotated-doc@==0.0.4, annotated-types@==0.7.0, anyio@==4.12.1, certifi@==2026.1.4, charset-normalizer@==3.4.4, click@==8.1.8, exceptiongroup@==1.3.1, fastapi, h11@==0.16.0, idna@==3.11, psycopg2-binary, pydantic@==2.12.5, pydantic_core@==2.41.5, python-dotenv, requests@==2.32.5, sqlalchemy, SQLAlchemy@==2.0.45, starlette@==0.49.3, typing_extensions@==4.15.0, typing-inspection@==0.4.2, urllib3@==2.6.3, uvicorn

### Recent commits (newest first)

- changes made
- changes made
- final changes
- bugs fixed & database
- Api hide
- AI
- ai
- ai
- AI improvement
- edit profile button
- backend
- changes made
- changes made
- added Dashboard lock functionality
- implemented Dashboard
- Update llm.py
- Update prompts.py
- Update prompt_data.py
- Update prompt_builder.py
- ai changes

## Key source files (fetched from GitHub, selected and truncated for size)

### package.json

```
{
  "dependencies": {
    "pdfjs-dist": "^5.4.530"
  }
}

```

### requirements.txt

```
annotated-doc==0.0.4
annotated-types==0.7.0
anyio==4.12.1
certifi==2026.1.4
charset-normalizer==3.4.4
click==8.1.8
exceptiongroup==1.3.1
fastapi==0.128.0
h11==0.16.0
idna==3.11
psycopg2-binary==2.9.11
pydantic==2.12.5
pydantic_core==2.41.5
python-dotenv==1.2.1
requests==2.32.5
SQLAlchemy==2.0.45
starlette==0.49.3
typing-inspection==0.4.2
typing_extensions==4.15.0
urllib3==2.6.3
uvicorn==0.39.0
fastapi
uvicorn
sqlalchemy
psycopg2-binary
python-dotenv


```

### backend/requirements.txt

```
annotated-types==0.7.0
anyio==4.12.1
certifi==2026.1.4
charset-normalizer==3.4.4
click==8.1.8
exceptiongroup==1.3.1
fastapi==0.128.0
h11==0.16.0
idna==3.11
pydantic==2.12.5
pydantic_core==2.41.5
python-dotenv==1.2.1
requests==2.32.5
SQLAlchemy==2.0.45
starlette==0.49.3
typing-inspection==0.4.2
typing_extensions==4.15.0
urllib3==2.6.3
uvicorn==0.39.0

```

### frontend/package.json

```
{
  "name": "uc-transfer-verifier",
  "version": "1.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview",
    "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0"
  },
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-router-dom": "^6.22.0",
    "axios": "^1.6.0",
    "lucide-react": "^0.263.1",
    "firebase": "^10.8.0"
  },
  "devDependencies": {
    "@types/react": "^18.2.56",
    "@types/react-dom": "^18.2.19",
    "@vitejs/plugin-react": "^4.2.1",
    "autoprefixer": "^10.4.18",
    "eslint": "^8.56.0",
    "eslint-plugin-react": "^7.33.2",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.4.5",
    "postcss": "^8.4.35",
    "tailwindcss": "^3.4.1",
    "vite": "^5.1.4"
  }
}

```

### frontend/src/main.jsx

```javascript
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.jsx'
import './index.css'

ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
)

```

### backend/app/main.py

```python
"""
UC Transfer Path Verifier - Main FastAPI Application
A tool to help California community college students verify their UC transfer eligibility
"""

from fastapi import FastAPI, HTTPException, Depends
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel, EmailStr
from typing import Optional, List, Dict, Any
from datetime import datetime
import json

import firebase_admin
from firebase_admin import credentials, firestore

# Initialize Firebase Admin if not already done
if not firebase_admin._apps:
    firebase_admin.initialize_app()

db = firestore.client()



app = FastAPI(
    title="UC Transfer Path Verifier",
    description="Verify your UC transfer eligibility using official sources",
    version="1.0.0"
)

# CORS middleware for React frontend
app.add_middleware(
    CORSMiddleware,
    allow_origins=["http://localhost:3000", "http://localhost:5173"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

# In-memory sessions (for demo, not used for persistent user data)
sessions_db: Dict[str, str] = {}


# ===================== MODELS =====================

class UserCreate(BaseModel):
    email: EmailStr
    name: str
    major: str
    community_college: str


class UserProfile(BaseModel):
    email: str
    name: str
    major: str
    community_college: str
    created_at: str


class TranscriptCourse(BaseModel):
    course_code: str
    course_name: str
    units: float
    grade: str
    semester: str


class TranscriptUpload(BaseModel):
    user_email: str
    courses: List[TranscriptCourse]


class UCSelection(BaseModel):
    user_email: str
    target_uc: str  # For demo, only "UCSC"
    target_major: str


# ===================== UCSC TRANSFER REQUIREMENTS DATA =====================
# This is mock data based on real UCSC requirements - in production, fetch from official sources

UCSC_REQUIREMENTS = {
    "Computer Science": {
        "required_courses": [
            {"name": "Calculus I", "equivalent_codes": ["MATH 1A", "MATH 3A", "MATH 181"]},
            {"name": "Calculus II", "equivalent_codes": ["MATH 1B", "MATH 3B", "MATH 182"]},
            {"name": "Linear Algebra", "equivalent_codes": ["MATH 21", "MATH 6", "MATH 250"]},
            {"name": "Introduction to Programming", "equivalent_codes": ["CS 1A", "CIS 22A", "COMSC 110"]},
            {"name": "Data Structures", "equivalent_codes": ["CS 1B", "CIS 22B", "COMSC 165"]},
            {"name": "Discrete Mathematics", "equivalent_codes": ["CS 18", "CIS 18", "MATH 55"]},
            {"name": "Physics I (Mechanics)", "equivalent_codes": ["PHYS 4A", "PHYS 1A", "PHYSIC 4A"]},
        ],
        "igetc_areas": {
            "1A": {"name": "English Composition", "required": True},
            "1B": {"name": "Critical Thinking", "required": True},
            "2": {"name": "Mathematical Concepts", "required": True},
            "3A": {"name": "Arts", "required": True},
            "3B": {"name": "Humanities", "required": True},
            "4": {"name": "Social Sciences", "required": True, "courses_needed": 3},
            "5A": {"name": "Physical Science", "required": True},
            "5B": {"name": "Biological Science", "required": True},
            "5C": {"name": "Lab Science", "required": True},
            "6A": {"name": "Language Other Than English", "required": True},
        },
        "min_gpa": 3.0,
        "min_units": 60,
        "max_units": 90,
        "notes": [
            "Selection to the major is highly competitive",
            "A GPA above 3.4 is recommended for competitive applicants",
            "All major prep courses should be completed with C or better",
        ],
        "source_url": "https://admissions.ucsc.edu/transfer/requirements"
    },
    "Biology": {
        "required_courses": [
            {"name": "General Chemistry I", "equivalent_codes": ["CHEM 1A", "CHEM 101"]},
            {"name": "General Chemistry II", "equivalent_codes": ["CHEM 1B", "CHEM 102"]},
            {"name": "Organic Chemistry I", "equivalent_codes": ["CHEM 12A", "CHEM 201"]},
            {"name": "Biology I", "equivalent_codes": ["BIOL 1A", "BIO 101", "BIOSCI 101"]},
            {"name": "Biology II", "equivalent_codes": ["BIOL 1B", "BIO 102", "BIOSCI 102"]},
            {"name": "Calculus I", "equivalent_codes": ["MATH 1A", "MATH 3A", "MATH 181"]},
            {"name": "Physics I", "equivalent_codes": ["PHYS 4A", "PHYS 1A", "PHYSIC 4A"]},
        ],
        "igetc_areas": {
            "1A": {"name": "English Composition", "required": True},
            "1B": {"name": "Critical Thinking", "required": True},
            "2": {"name": "Mathematical Concepts", "required": True},
            "3A": {"name": "Arts", "required": True},
            "3B": {"name": "Humanities", "required": True},
            "4": {"name": "Social Sciences", "required": True, "courses_needed": 3},
            "5A": {"name": "Physical Science", "required": True},
            "5B": {"name": "Biological Science", "required": True},
            "5C": {"name": "Lab Science", "required": True},
            "6A": {"name": "Language Other Than English", "required": True},
        },
        "min_gpa": 2.8,
        "min_units": 60,
        "max_units": 90,
        "notes": [
            "Strong performance in science courses is expected",
            "Research experience is recommended but not required",
        ],
        "source_url": "https://admissions.ucsc.edu/transfer/requirements"
    },
    "Psychology": {
        "required_courses": [
            {"name": "Introduction to Psychology", "equivalent_codes": ["PSYCH 1", "PSYCH 101", "PSY 1A"]},
            {"name": "Statistics", "equivalent_codes": ["STAT 1", "MATH 10", "PSYCH 7"]},
            {"name": "Research Methods", "equivalent_codes": ["PSYCH 2", "PSY 2"]},
        ],
        "igetc_areas": {
            "1A": {"name": "English Composition", "required": True},
            "1B": {"name": "Critical Thinking", "required": True},
 
[truncated — 14926 more characters]
```

### test.py

```python


```

### frontend/postcss.config.js

```javascript
export default {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  },
}

```

### frontend/vite.config.js

```javascript
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  server: {
    port: 3000,
    proxy: {
      '/api': {
        target: 'http://localhost:8000',
        changeOrigin: true,
      }
    }
  }
})

```

### frontend/index.html

```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/slug.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>UC Transfer Path Verifier | cruzhacks</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Outfit:wght@100..900&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.jsx"></script>
  </body>
</html>

```

[23 more indexed source files omitted to keep this export small. The full file list is in the Codebase structure section above.]