Inspiration
Paid tutors are expensive, and YouTube tutorials are static — you can't ask a video a follow-up question. Meanwhile, almost everyone has a skill someone else wants to learn: a senior who codes, a friend who's fluent in Spanish, a classmate who edits video. We wanted to unlock that peer-to-peer knowledge instead of forcing people to choose between expensive 1-on-1 tutoring and passive, one-way video content. SwipEd turns "who do I know that's good at X" into a swipe.
What it does
SwipEd is a mobile-first, swipe-based platform that connects learners with peer teachers across any skill — coding, languages, music, design, cooking, public speaking, and more. Learners swipe through teacher profiles (Tinder-style, no backtracking); a right swipe sends an invite, and once the teacher accepts, an in-app chat unlocks. From there, learning happens live over an integrated in-app video call — no external links, no scheduling friction. Either party can end the session directly from the chat, which frees both users up for their next swipe.
Learning is free for everyone. We've also designed (not yet built) a multi-layered teacher verification system — certificate OCR, GitHub-based skill analysis, and an AI-generated assessment — plus a Skill Receipt: a co-signed micro-credential issued after each session as proof of what was learned. These are core to SwipEd's roadmap and detailed below.
How we built it
- Frontend: React 19 + Vite, Tailwind CSS, Framer Motion, and react-tinder-card for the swipe engine
- Backend: Firebase — Auth for onboarding, Firestore for our invite/session/message schema, Realtime Database and Storage for live data and media, Cloud Functions to proxy third-party API calls (e.g., email validation) so keys never touch the client
- Deployment: Vercel
We split ownership by workstream — swipe engine and Firestore schema, Firebase Auth/onboarding, real-time chat/sessions, and design/routing/deployment — with explicit dependency sequencing (e.g., core Firebase hooks shipped Day 1) so all four of us could build in parallel without blocking each other.
Challenges we ran into
Designing the invite-and-accept flow without creating dead ends was tricky — we initially considered requiring both parties to confirm before a session could end, but realized that if one person went unresponsive, the other would be stuck. We redesigned it so either party can unilaterally end a session. We also had to be careful with auth: distinguishing "no account exists" from "wrong password" during login, and building multi-step signup validation (format check → real mailbox verification → existing-account check) without exposing our email-verification API key on the client, which we solved by proxying calls through a Firebase Cloud Function.
Accomplishments that we're proud of
We're proud of shipping a real, working invite → accept → chat → live video → session-end flow, not just a swipe demo, within the hackathon timeframe. We also designed a full Firestore schema (invites, sessions, messages as subcollections) that supports our verification and Skill Receipt features from day one, so we can build V2 without reworking the data model.
What we learned
We learned how much upfront schema design matters when four people are touching the same Firestore paths — thinking through invites, sessions, and messages as separate subcollections early saved us from merge conflicts later. We also learned the value of designing for failure states (like an unresponsive user mid-session) before writing a single line of UI code.
What's next for SwipEd
Our immediate next steps are the features we scoped but couldn't fit in the hackathon window: the teacher verification pipeline (certificate OCR, GitHub skill analysis, AI assessment), the Skill Receipt issuance Cloud Function, and a post-session rating flow. Beyond that, we're planning skill match percentages on cards, 15-second video intros, an availability calendar, group sessions, and AI-driven skill gap analysis — followed by a full monetization layer (subscriptions, ads) as we work toward a wider public launch in September 2026.
Log in or sign up for Devpost to join the conversation.