← Back to projects

2026 · Next.js · Python · Gemini · Retrieval · Qualtrics API

UA Parking Intelligence

Survey analysis, source-linked answers, and a data-backed parking proposal.

I built the data pipeline, analysis, and dashboard for a collaborative SGA parking initiative, then co-presented the findings and a college-based permit proposal to UA Parking in April 2026.

Survey responses
1,766
Original retrieval documents
~2,191
Findings presented
Apr 2026
Actual UA Parking public demo showing synthetic summary metrics and parking challenge rankings
Actual public demo, using 420 fabricated example records. Displayed numbers are synthetic fixtures, not findings from the 1,766-response survey. Select the image to inspect it at full size.

How the system works

  1. 1. CollectExport survey responses through the Qualtrics API.
  2. 2. PrepareRedact identifiers and structure the responses for analysis.
  3. 3. AnalyzeCompute survey metrics, identify themes, and index free text.
  4. 4. InspectExplore the dashboard and retrieve answers linked to supporting sources.

The problem

The student-government team wanted to understand parking needs and test proposed changes against student feedback. The survey created a common evidence base for discussing allocation and pricing with the administration.

My contribution

I built Python/Qualtrics ETL, identifier redaction, Gemini-based thematic analysis, and a Next.js dashboard around 1,766 survey responses, including approximately 1,400 free-text responses. Collaborators contributed to survey planning, distribution, graphics, and presentation.

Semantic search over free text

The retrieval corpus contained approximately 2,191 documents, distinct from the number of respondents. I used 768-dimensional embeddings, cosine-ranked retrieval, and source-linked answers so readers could inspect the survey evidence behind a response. The public demo uses synthetic data.

Findings and outcome

The team initially expected stronger support for pay-to-park, but the survey narrowly opposed it. We co-presented the findings and proposed college-based permit allocation for UA Parking’s consideration in April 2026.

A decision: make the evidence inspectable

The application pairs generated answers with source material so a reader can examine what supports the response. In the public implementation, retrieval uses vector similarity rather than the earlier prototype’s literal word overlap, then passes the highest-ranked examples to the generation step. This gives related wording a route into the answer without making the generated text the only evidence available.

Scope and limitations

Survey respondents are not application users. The documented outcome is a presentation and proposal for consideration, not an implemented parking policy or a measured improvement in parking. Source links support inspection, but do not guarantee that every generated answer is correct. The public demo separates the interface from private responses by using fabricated records and a smaller synthetic retrieval corpus.

Inspect the implementation

The public repository includes synthetic dashboard fixtures and the application code. Run the dashboard locally with Node.js 20.9 or later. Live AI chat requires your own Gemini API key; the dashboard uses the committed fixtures.

git clone https://github.com/Karthikgaur8/ua-parking-platform.git
cd ua-parking-platform
npm ci
npm run dev -- --port 3001
Read the retrieval and chat implementation ↗
← All projectsDiscuss the work →