Project Info
Inspiration
When one of our teammate's younger brother was diagnosed with Level 2 Autism Spectrum Disorder, the family expected answers — a plan, a next step, a direction. Instead, they were handed a diagnosis and left to figure out the rest alone. Appointments stretched weeks out. Resources were buried behind insurance jargon and specialist waitlists. Nobody guided them through what came next. That experience became the foundation for Compass. Millions of families face the same wall every year — not because the resources don't exist, but because navigating them is a full-time job nobody signed up for. Compass exists to change that. In under five minutes, it delivers a personalized care roadmap, actionable next steps, and real local provider connections — meeting families exactly where they are. What It Does Compass serves two users simultaneously. For parents, the flow is simple: complete a short intake describing their child's age, location, diagnosis status, and concerns — by typing or by voice. Compass returns: A prioritized care roadmap with urgency-labeled action steps Real local providers scraped live from the web, filtered by zip code and insurance Ready-to-send advocacy letters (IEP requests, referral letters, insurance appeals) A context-aware AI chat assistant that remembers the entire session — no re-explaining required For clinics and care providers, Compass offers a persistent case management dashboard. Practitioners manage multiple children, each with stored roadmaps, letters, provider results, and full chat history — all backed by a cloud database. How We Built It Every technology in our stack is load-bearing. Remove any one of them and a core feature disappears. Claude (Anthropic) is the AI backbone. A single, carefully engineered prompt generates the full care roadmap and all three advocacy letters in one API call — minimizing latency while maximizing coherence. The roadmap prompt injects the child's complete intake profile and instructs Claude to reason about age-appropriate services, California-specific programs like Early Start and regional centers, and insurance-specific guidance. The chat assistant runs on a scoped system prompt grounded in the child's context, with strict clinical guardrails — Claude navigates, never diagnoses. All calls use claude-sonnet-4-6. Browserbase + Stagehand handle live provider discovery. Rather than a static database, we deploy a headless browser agent that searches live directories — Psychology Today, Google Maps, and others — filtered by zip code and relevant specialty. Results are parsed, deduplicated, and cleaned before returning. A hardcoded fallback ensures the providers tab is never empty under network failure. Redis manages two data layers. Provider results are cached by zip code with a 24-hour TTL — repeated searches for the same area return instantly without re-scraping. Chat conversation history is stored per session, giving the assistant persistent memory across the full parent interaction without requiring a login. PostgreSQL via Supabase backs the clinic dashboard. All child records, roadmaps, letters, and provider results for clinic-mode users are stored as structured and JSONB data — designed for fast inserts and simple queries at hackathon scope. Flask serves as the backend, using ThreadPoolExecutor to run the Claude API call and the Browserbase scraper in parallel — cutting intake response time roughly in half. Routes are organized as registered blueprints. SQLAlchemy manages the clinic-facing data layer; a lightweight psycopg layer handles parent-mode persistence. React + Tailwind CSS power the frontend, with React Router for client-side navigation across four pages. The parent dashboard renders four tabs — Roadmap, Letters, Providers, and Chat. Session data lives in the browser for the parent flow; clinic data is fetched from the database on demand. Challenges We Ran Into For most of our team, this was a first hackathon. The transition from classroom projects to a live, high-stakes build environment was steep. Technically, Git conflicts were our most persistent friction — four people pushing code across the same codebase simultaneously taught us more about collaborative engineering in 30 hours than months of solo work. The hardest challenge, though, was the idea itself. Landing on something meaningful, feasible, and worth building — all in the first few hours — required more iteration than we anticipated. Several pivots cost us time we couldn't afford. But the exhaustion was part of it. We came out the other side with something we're proud of. Accomplishments We're Proud Of A fully integrated, end-to-end working product — intake through roadmap through providers through chat — in under 32 hours Every sponsor tool used meaningfully: remove any one and a core feature breaks A dual-mode architecture serving both individual parents and clinical teams from a single codebase The personal story behind the product, and what it could actually mean for families like ours What We Learned How to turn an idea into a working product under pressure. How to divide technical work across a team without stepping on each other. How to make real decisions fast — about scope, about pivots, about what actually matters to build. And how to ship something we're genuinely proud of. What's Next for Compass The core infrastructure is in place. The roadmap ahead is clear: Retention features — progress tracker, therapy journal, appointment prep, and an IEP hub where parents upload documents and Claude explains every section in plain language. Platform expansion — a verified provider directory with parent reviews, a provider portal where clinics list availability and accept referrals directly, and a parent community connecting families navigating the same diagnoses. B2B growth — employer benefit packages (1 in 36 children in the US is autistic; every large company has parents navigating this right now), a therapist co-pilot for clinical workflows, and school district API integrations for IEP process management. The market is real. The need is urgent. And we're just getting started.
🧭 Compass
AI-powered care navigation for families of children with developmental concerns. Built for the UC Berkeley AI Hackathon (June 20–21, 2026).
What It Does
Compass takes a 5-minute intake form and generates:
- Personalized action roadmap — prioritized next steps
- Ready-to-send letters — school, insurance, and regional center
- Local therapy providers — scraped by zip code
- AI chatbot — context-aware follow-up assistant
Two user modes: Parent (session-based, no login) and Clinic (persistent PostgreSQL storage).
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | React, React Router, Tailwind CSS, Vite |
| Backend | Flask (Python) |
| AI | Anthropic Claude (mock fallback included) |
| Scraping | Browserbase (mock fallback included) |
| Cache | Redis (in-memory fallback included) |
| Database | PostgreSQL |
Quick Start (Local Dev)
1. Backend
cd backend
pip install -r requirements.txt
flask run --port 5000
The backend starts on http://localhost:5000. init_db() runs automatically on startup.
2. Frontend
cd frontend
npm install
npm run dev
The frontend starts on http://localhost:3000. API calls are proxied to the Flask backend.
3. Optional Services
# Redis (for provider caching + chat history)
docker run -p 6379:6379 redis
# OR: redis-server
# PostgreSQL (for clinic persistence)
createdb compass
The app runs without Redis or PostgreSQL — in-memory fallbacks are built in.
Environment Variables
Copy .env.example to .env and fill in your keys. The app works with mock data when keys are absent.
ANTHROPIC_API_KEY=
BROWSERBASE_API_KEY=
BROWSERBASE_PROJECT_ID=
REDIS_URL=redis://localhost:6379
DATABASE_URL=postgresql://localhost:5432/compass
FLASK_SECRET_KEY=any-random-string-here
Project Structure
compass/
├── CLAUDE.md
├── .env.example
├── README.md
├── backend/
│ ├── app.py # Flask app + all routes
│ ├── requirements.txt
│ ├── models/
│ │ └── database.py # PostgreSQL schema + queries
│ ├── services/
│ │ ├── claude_service.py # Anthropic API (w/ mock)
│ │ ├── browserbase_service.py # Provider scraping (w/ mock)
│ │ └── redis_service.py # Caching + chat memory (w/ fallback)
│ └── prompts/
│ ├── roadmap_prompt.py # Roadmap + letters system prompt
│ └── letter_prompt.py # Chat system prompt
└── frontend/
├── package.json
├── index.html
├── vite.config.js
├── tailwind.config.js
└── src/
├── main.jsx
├── App.jsx # React Router (4 routes)
├── index.css # Tailwind + component classes
├── api/
│ └── compassApi.js # All fetch() calls
├── pages/
│ ├── LandingPage.jsx # Parent vs Clinic CTA
│ ├── IntakePage.jsx # Intake form
│ ├── DashboardPage.jsx # Parent dashboard (4 tabs)
│ └── ClinicPage.jsx # Clinic dashboard
└── components/
├── RoadmapTab.jsx
├── LettersTab.jsx
├── ProvidersTab.jsx
├── ChatTab.jsx
└── ChildRow.jsx
Analysis
View
Metric
- 9
- 3
- 1
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- CSSIn code
- FlaskIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- RedisIn code
- SQLIn code
- Tailwind CSSIn code
- Node.jsClaimed
- PostgreSQLClaimed
- SupabaseClaimed
10 of 13 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeConfig · Commits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
140 KB
Source files
37
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
abissi17/berkeley_hackathon_proj
45 files · 339 KB · @ 4569b1a
Structure
Interface
11 files · 24%Screens, components and styles rendered to the user.
API & routing
7 files · 16%Request entry points: routes, handlers and controllers.
Application logic
12 files · 27%Domain rules, services and shared utilities.
Data & schema
3 files · 7%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python42%
- JavaScript40%
- Markdown16%
- SQL1%
- CSS1%
- HTML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
backend/requirements.txt
pypi · 10- anthropic
- browserbase
- flask
- flask-cors
- flask-sqlalchemy
- gunicorn
- psycopg[binary]
- psycopg2-binary
- python-dotenv
- redis
frontend/package.json
npm · 8- react
- react-dom
- react-router-dom
- +5 more
package.json
npm · 2- @browserbasehq/stagehand
- zod
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.