๐Ÿ’ก Inspiration

Every day at SUTD, the same scene plays out โ€” a student stuck in a lab at 2am needs food but can't leave, someone's parcel is sitting at Building 1 reception but they're in class across campus, a freshman is drowning in Python homework and just needs 30 minutes of help.

The campus is small. The community is tight. But there's no easy way to say: "Hey, I need a hand โ€” and I'll pay you for it."

WhatsApp groups get chaotic. Telegram chats scroll past. We wanted something purpose-built โ€” a marketplace where asking for help takes 10 seconds, not 10 messages.


๐Ÿš€ What it does

TaskHero is a real-time campus task marketplace where SUTD students post tasks and other students (Heroes) complete them for micro-compensation.

๐ŸŽค Speak or type your task โ†’ ๐Ÿค– AI instantly formats it with title, category, location, and fair pricing โ†’ ๐Ÿ“‹ It goes live for Heroes to grab โ†’ ๐Ÿƒ Real-time tracking shows both parties live progress โ†’ ๐Ÿ’ฐ Payment released on completion

The flow:

Step What Happens
1๏ธโƒฃ Poster describes a task (voice or text)
2๏ธโƒฃ GPT-4o-mini structures it โ€” title, category, location, suggested compensation
3๏ธโƒฃ Task goes live on the marketplace
4๏ธโƒฃ A Hero accepts โ†’ both see real-time progress updates
5๏ธโƒฃ Hero completes โ†’ Poster confirms โ†’ Payment released (95% to Hero)

Key features:

  • ๐ŸŽ™๏ธ Voice-to-Task โ€” Speak naturally, Deepgram transcribes, AI formats
  • ๐Ÿ“Š Live Dashboard โ€” Real-time stats, active missions, activity charts
  • ๐Ÿ” Smart Browse โ€” Filter by category, sort by price/urgency, keyword search
  • ๐Ÿ“ฑ Fully Responsive โ€” Mobile bottom-nav โ†” Desktop sidebar, works on any screen
  • โšก Instant Updates โ€” Firestore streams power every screen in real-time

Live demo: taskhero-sutd.web.app


๐Ÿ› ๏ธ How we built it

Flutter Web (Dart)  โ†’  UI & responsive layout
ShadCN UI           โ†’  Polished component library
Firebase Auth       โ†’  One-click Google Sign-In
Cloud Firestore     โ†’  Real-time database + streams
OpenAI GPT-4o-mini  โ†’  Task formatting AI
Deepgram Nova-2     โ†’  Speech-to-text engine
MediaRecorder API   โ†’  Browser mic capture (WebM/Opus)
Firebase Hosting    โ†’  Deployed & live

Architecture in 30 words: User speaks/types โ†’ Deepgram transcribes โ†’ GPT-4o-mini formats into structured JSON โ†’ Firestore stores it โ†’ Streams push updates to all connected clients in real-time. Zero polling.

We used Firestore transactions for task acceptance (no double-booking), FieldValue.increment for atomic counter updates, and 7 real-time streams powering the dashboard, browse screen, task detail, and profile.

Built in under 24 hours. ~3,500 lines of Dart across 14 files.


๐Ÿง— Challenges we ran into

  • Google Sign-In + Cross-Origin headers โ€” Firebase Auth popups break if Cross-Origin-Embedder-Policy is set to require-corp. Took us 2 hours to discover credentialless was the fix. One word. Two hours.

  • Firestore on Flutter Web โ€” The default gRPC transport doesn't work on web. Had to switch to long-polling, which isn't documented prominently.

  • Voice recording across browsers โ€” MediaRecorder API support varies wildly. We had to handle codec negotiation (WebM/Opus vs fallbacks) and deal with empty audio buffers on some browsers.

  • AI response consistency โ€” GPT-4o-mini occasionally returned creative field names instead of our exact schema. Solved with response_format: json_object and strict schema instructions.

  • Double-posting bug โ€” Users tapping "Post Task" fast enough would create duplicate Firestore documents. Fixed with an isPosting mutex guard and button disable state.


๐Ÿ† Accomplishments that we're proud of

  • โšก < 3 second task creation โ€” from voice to posted task on Firestore
  • ๐ŸŽค Voice-first UX โ€” most campus apps don't even have text input done right, we shipped speech-to-text
  • ๐Ÿ”„ True real-time โ€” both poster and hero see the same live-updating task detail screen, zero refresh needed
  • ๐Ÿค– AI that actually helps โ€” not a gimmick; GPT-4o-mini genuinely saves users from writing structured posts, suggests fair SUTD-context pricing ($3โ€“4 for canteen runs, $10โ€“20 for tutoring)
  • ๐Ÿ“ฑ Responsive from day one โ€” not "it works on mobile", but proper mobile-first bottom nav โ†” desktop sidebar transitions
  • ๐Ÿ”’ Production-grade security โ€” Firestore rules enforce user-level access, transactions prevent race conditions, API keys properly gitignored

๐Ÿ“š What we learned

  • Firebase on web is a different beast โ€” half the Flutter+Firebase docs assume mobile. Web has its own quirks (long-polling, CORS headers, popup auth vs redirect auth).
  • AI as a formatting layer, not a feature โ€” The best AI integrations are invisible. Users don't care that GPT-4o-mini is structuring their task โ€” they care that it takes 10 seconds instead of 2 minutes.
  • Real-time is addictive once you have it โ€” Once we wired up Firestore streams, we couldn't go back to fetch-and-refresh. Every screen became a live dashboard.
  • Voice UX requires patience โ€” Recording, transcribing, formatting is a 3-step async pipeline. Each step can fail. Error handling isn't optional โ€” it's the product.

๐Ÿ”ฎ What's next for TaskHero

  • ๐Ÿ“ฒ Push notifications โ€” Alert heroes when a new task matches their preferences
  • ๐Ÿ’ฌ In-app chat โ€” Let poster and hero coordinate without leaving the app
  • โญ Reputation system โ€” Build trust scores based on completion rate, ratings, response time
  • ๐Ÿซ Multi-campus expansion โ€” NUS, NTU, SMU โ€” same compact campus model, much larger user base
  • ๐Ÿ’ณ Real payments โ€” Integrate PayNow/Stripe for actual SGD transfers instead of honor-system tracking
  • ๐Ÿง  Smart matching โ€” AI recommends tasks to heroes based on location, skills, and availability

Built with ๐Ÿงก by SUTD students, for SUTD students.

๐Ÿ”— Live App ยท ๐Ÿ’ป GitHub

Built With

  • dart
  • deepgram-speechtotext
  • firebase
  • firestore
  • flutter
  • hosting
  • openai-gpt4o-mini
  • shadcn-ui
Share this project:

Updates