Inspiration

We wanted to make a lightweight, hackathon-ready Zillow-like app focused on a small college town (Blacksburg) so students and newcomers can quickly find and analyze housing options. The other spark was experimenting with LLMs (Gemini/PaLM) to add conversational schedule/availability analysis on top of listings.

What it does

Shows a searchable list of properties with filters (city, price range, beds). Each property has a detail view with a map image and a chat-style panel where you can paste a schedule or ask questions; the server currently returns mock/structured responses and stubs the Gemini integration for analysis.

How we built it

Frontend: React (Vite) components for listing, card, detail, and chat. Backend: Express server exposing /api endpoints and serving static map URLs built server-side. Data is mocked in properties.json. Environment-driven keys (Google/Gemini) live in .env. LLM calls are planned server-side to keep keys secret.

Challenges we ran into

Local dev CORS and client/server port mismatches caused the “Failed to contact server” symptom. Managing API keys safely in a small repo (lots of edge cases around .env usage). Designing a good server-side pattern for streaming/structured LLM responses while keeping the UI responsive.

Accomplishments that we're proud of

Complete end-to-end prototype with filterable property list and detail views. Working property chat UI and schedule-analysis pipeline (mocked) that proves the interaction model. Server-side generation of map image URLs and a clear pattern to plug-in Gemini/PaLM calls securely.

What we learned

Practical CORS and local-port pitfalls — small mismatches break the UX immediately. How to structure server-side LLM calls (keep keys server-side, return structured JSON or streamed tokens). Quick iteration with Vite + nodemon is great for UI/backend feedback loops.

What's next for Realiable

Replace mocks with real Gemini API calls (server-side), add streaming where useful. Add authentication and rate-limit/protect LLM endpoints. Improve UI polish, add pagination and more realistic dataset, and prepare a small deploy (Heroku/Render/Vercel + server).

Built With

Share this project:

Updates