💼 SideWork — Devpost Submission

Inspiration

Millions of teenagers want to earn their first money — mowing lawns, tutoring, helping at events — but today’s gig economy wasn’t built for them. Platforms are designed for adults, with no safeguards for minors, and parents are left completely out of the loop.

We asked a simple question: What if a student could find a job — but nothing could happen until their parent approved it?

That idea became SideWork.

We believe a student’s first job should build confidence and responsibility — not introduce risk or uncertainty. SideWork reimagines the gig economy with safety at its core, giving students independence while keeping parents actively involved.


What it does

SideWork is a parent-approved job marketplace connecting students (14–17) with local employers offering small, real-world tasks.

The experience is built around a strict safety loop:

  • Employers post jobs with full transparency: description, pay, location (map + photo), and verified identity. Every listing is automatically screened by AI for safety before going live.
  • Students explore opportunities via a clean card interface or interactive map, with clear employer details and market-rate pay comparisons to evaluate fairness.
  • When a student clicks Apply, the application enters a locked pending_parent state — nothing moves forward yet.
  • Parents review everything from their dashboard: job details, employer info, and an AI-generated risk assessment.
  • Only after approval does the system unlock:

    • Real-time notifications are sent
    • A private chat opens between student and employer
    • AI moderation ensures conversations stay safe

Additional features:

  • AI-generated job descriptions for employers
  • Simplified, student-friendly job summaries
  • Pay benchmarking across 50+ job categories
  • Mandatory employer Code of Conduct
  • Installable PWA for a mobile-like experience

How we built it

We intentionally chose a zero-build-step architecture — no frameworks, no tooling overhead — to keep the platform fast, accessible, and easy to deploy.

  • Frontend: Pure HTML, CSS, and vanilla JavaScript with a custom design system using CSS variables
  • Backend: Firebase (Authentication + Firestore) with real-time listeners for chat and notifications
  • AI Layer: Groq API (Llama 3.3 70B) powering:

    • Safety checks
    • Risk analysis
    • Content simplification
    • Smart replies
    • Toxicity detection
  • Maps: Leaflet.js + OpenStreetMap

  • Performance: In-memory caching + parallel data fetching

The codebase is modular and simple:

  • firebase.js → data, auth, caching
  • script.js → shared logic + AI integration
  • Role-based HTML pages → isolated, focused logic

Challenges we ran into

1. Parent approval workflow Designing a real-time, multi-user approval system without race conditions or duplicate notifications required careful state modeling and listener control.

2. Firestore query limitations We avoided managing complex indexes by simplifying queries and handling sorting client-side — trading scalability for speed during development.

3. AI reliability LLM outputs weren’t always clean JSON. We built fallback parsing to handle inconsistencies and ensure stability.

4. Image handling without storage services We stored Base64-encoded images directly in Firestore with strict size limits to avoid adding infrastructure complexity.

5. Real-time chat lifecycle Managing listeners in a multi-page (non-SPA) app required careful cleanup to avoid memory leaks and redundant subscriptions.


Accomplishments we're proud of

  • Real safety, not just UX: Parent approval is a hard system constraint — not optional
  • AI deeply integrated: 6 meaningful AI features across safety, communication, and usability
  • Zero build tools: Runs entirely from static files — no setup required
  • Consistent design system: Scalable, polished UI across all pages
  • Fair pay transparency: Students instantly understand if an offer is fair
  • True real-time experience: Chat, notifications, and updates without refresh

What we learned

  • Clear state machines > scattered logic
  • AI requires defensive engineering, not blind trust
  • Vanilla JS is powerful enough for complex apps
  • Early caching decisions matter for performance
  • Good design systems accelerate development, not slow it down

What’s next

  • Push notifications for instant parent approvals
  • Job completion flow with ratings and trust profiles
  • Student earnings dashboard (real-world portfolio)
  • Location-based job alerts
  • Parent-to-parent trust network
  • School partnerships for verified ecosystems
  • Escrow payments for secure transactions

Share this project:

Updates