- Clone the repo with
git clone https://github.com/ucsdds3/main-site.git - Open the repo in your preferred code editor (For VSCode, use the command
code main-site) - Run
npm installto install dependencies - Run
npm run devto start the development server
To make contributions to the DS3 Main Site, please follow these guidelines:
- (Infra members with write access can skip this step) Fork the repository to your own GitHub account and clone it.
- Create a new branch for your changes using the command
git checkout -b <branch-name>. - Make your changes and push them to your branch.
- Create a pull request from your branch to the main branch. Write a summary of your changes in the pull request description.
- Once the pull request is merged, you can safely delete your branch using the command
git branch -d <branch-name>.
Stick to the project structure shown below to keep things organized:
main-site/
├── node_modules/ # Installed dependencies
├── public/ # Public assets
├── src/ # Source code files
│ ├── Assets/ # Project assets
│ │ ├── Data/ # Data files
│ │ └── Images/ # Image assets
│ ├── Components/ # General components
│ ├── Hooks/ # Custom hooks
│ ├── Pages/ # Pages
│ │ └── Example/ # Page-specific components
│ ├── Styles/ # Custom styles
│ ├── Utils/ # Utilities
│ │ ├── functions.ts # Utility functions
│ │ └── types.ts # Utility types
Check the depencencies listed below for this project before starting. Use these to your advantage so you don't have to do more work! There are more dependencies that you can find in the package.json file, but these are the ones you should be familiar with.
- Vite - Build Tool ⚡
- React - Frontend Framework ⚛️
- React Router - Routing 🛣️
- Tailwind CSS - CSS Framework 🎨
- React Icons - Icon Library 🖼️
- Daisy UI - Tailwind CSS Component Library 🎯
- Framer Motion - Animation Library ✨
Start here: sibling repo Talentlens_V2/README.md — product overview, local dev, and doc map.
The /talentlens page uses the TalentLens V2 FastAPI service. Configure its base URL:
VITE_TALENTLENS_V2_API_URL=http://localhost:8001From the sibling Talentlens_V2 repository, run python scripts/run_api.py --port 8001.
Once deployed, replace the local URL with the V2 Cloud Run service endpoint.
Code: src/Sites/Main/Pages/TalentLens/
Beta feedback: After a search, use Report an issue (orange button in the results toolbar). Submissions go to Supabase TalentLensFeedback with the query and top-10 debug snapshot attached. One-time Supabase setup: run Talentlens_V2/sql/talentlens_feedback.sql. Triage guide: Talentlens_V2/docs/FEEDBACK_TRIAGE.md. Agent skill: .cursor/skills/talentlens-feedback-triage/.
UI (2026-09): Results are card-only (no detail popup). Single feedback entry point — no per-candidate report icon.
The members subdomain (?subdomain=members) is where members set resume_link and opt into the talent pool (/profile, signup). Those writes go to Supabase Members; a database trigger enqueues ingest jobs — the portal does not parse resumes itself.
| Surface | Route / access | Role |
|---|---|---|
| Members portal | ?subdomain=members |
Profile, events, resume URL |
| TalentLens search | /talentlens |
Recruiter search (TalentLensUsers allowlist + auth gate) |
Ingest worker (GCP): currently OFF — portal still enqueues jobs in Supabase; a Cloud Run Job (every 30 min when enabled) or local worker processes them. See sibling doc for costs and deploy.
Full integration architecture (Supabase tables, worker, RLS, costs, roadmap):
../Talentlens_V2/docs/DS3_INTEGRATION.md (sibling repo in DS3_new workspace)
Supabase env (portal): VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY in .env