Inspiration

Students already trade time, skills, and stuff—but discovery and trust are messy.

Club events and tutoring offers get lost across chats, flyers, and DMs.

We wanted a simple, safe, .edu-verified hub to connect students and faculty in minutes, not weeks.

What it does

edu One-Click Sign-In: Only a campus email unlocks “College Zone.”

Marketplace of Services: List gigs (tutoring, design, delivery, events) with price and category; public can browse.

Instant Collaboration Chat: Real-time room with presence and typing indicators.

Role-aware UI: Admin panel hidden from non-admins; students can publish and manage their own listings.

Bookings: One-tap booking creates a timestamped record.

How we built it

🎓 AI-verified .edu Access — Secure onboarding for campus users.

🤖 Gemini-powered Match Agent — Suggests relevant services (e.g., tutoring, delivery, event help).

💬 Collaboration Agent — Handles chat moderation and auto-summaries.

⚡ Serverless Deployment on Cloud Run — Scales instantly per request.

🗄️ Firestore Integration — Stores user data, services, and chat history securely.

🔗 Cloud Storage & Pub/Sub Hooks — Ready for async image and data pipelines.

Challenges we ran into

Environment wrangling: Python versions, venvs, and dependency glitches (bcrypt, jose) on macOS.

Auth flows: Making .edu verification feel “one click” while preserving JWT security.

WebSocket edge cases: Keeping typing/presence accurate with connect/disconnect churn.

CORS and ports: Smooth local testing for both API (5050) and static UI (8082).Integrating ADK multi-agent flow seamlessly into FastAPI architecture.

Managing WebSockets in Cloud Run without persistent connections (solved via Pub/Sub + WebSocket Gateway).

Authentication consistency between agents and JWT tokens.

Cold-start latency optimization for small student-scale requests.

Accomplishments that we're proud of

A fully working MVP you can run in under 2 minutes.

Clean UI that’s public-browsable but gates publishing to .edu users.

RFully serverless dual-agent platform that auto-matches and moderates user interactions.

Real-time collaboration with AI-driven suggestions powered by Gemini.

Deployed to Cloud Run in under 5 minutes using a single build command.

Seamless .edu verification workflow and production-ready design.

What we learned

Keep the stack boringly reliable for hackathons; avoid heavy front-end builds when not needed.

JWT + WebSockets + SQLModel is a sweet spot for speed and clarity. Fully serverless dual-agent platform that auto-matches and moderates user interactions.

Real-time collaboration with AI-driven suggestions powered by Gemini.

Deployed to Cloud Run in under 5 minutes using a single build command.

Seamless .edu verification workflow and production-ready design.

What's next for OnTap SPU-AI Powered Campus Marketplace & Collaboration Hub

Ratings & Reviews and moderation queue for services.

Stripe/Pay test mode for escrow-like booking.

Org spaces (departments/clubs) and event RSVPs.

Mobile app (Expo RN) pointing to the same API.

Multi-university rollout with domain-based tenanting.We built OnTap SPU to make campus micro-economies visible and safe. With a .edu sign-in, any student can publish services—tutoring, design, delivery, event support—instantly visible to the public. A real-time chat channel enables quick Q&A and coordination with presence and typing signals. Under the hood, a tiny but robust stack (FastAPI + SQLModel + WebSockets) keeps complexity down and iteration fast. Our biggest wins were: a truly two-minute demo setup, minimal UI friction, and a feature set that maps directly to student needs.

We also explored lightweight heuristics for trust (e.g., verified domain, owner-only deletes, future ratings). In future sprints, we’ll add moderation, payment flows, and per-university tenanting to go from MVP to multi-campus network.

(Optional math formatting example: the booking price summary

𝑇

∑ 𝑖 𝑝 𝑖 T=∑ i ​

p i ​

can apply dynamic discounts; we chose fixed prices for demo clarity.)

Built With

  • css
  • curl
  • expo.io
  • html
  • http.server
  • javascript-backend:-fastapi
  • languages:-python
  • later:
  • mobile
  • optional)
  • passlib[bcrypt]-realtime:-websockets-db:-sqlite-(swap-to-postgres-easily)-dx/dev:-venv
  • react
  • sqlmodel/sqlalchemy
  • uvicorn-auth:-jwt-(python-jose)
Share this project:

Updates