Full-Stack Developer for Sports Coaching PWA
Бюджет: $6500.0
FIXED /
⭐ 0.00 (0)
United States
next.js, stripe
ABOUT THE PROJECT
Coach Command is a Progressive Web App that gives sports coaches a complete practice system: a drill library, practice-plan and skill-ladder builders, a hands-free "Live Mode" that runs a practice on a tablet on the field, an import tool that pulls drills in from links/photos/files, and the heart of the product, a development loop. A coach assigns work, an athlete does it and marks it done, the coach tracks each athlete's progress up a skill ladder, and the app uses that history to suggest the next step. It is built to be the coach's daily habit. The brand is the coach's; we power it invisibly.
The core of this build is that development loop and the data it generates. Every time an athlete completes a drill or advances a rung, the app captures that as clean event data. That data is the product's most valuable asset, so logging it correctly from day one is a first-class requirement, not an afterthought.
This is a founder-led product with a fully documented architecture. You are NOT designing the product or the database from scratch. There is a canonical schema, a design system, and detailed feature specs. Your job is to build it cleanly and to extend the existing structure without redesigning it. The founder is non-technical and maintains the code between sessions using AI tools (Cursor), so clear, plainly commented code is mandatory.
TECH STACK (confirmed, no substitutions)
- Frontend: Next.js (App Router) + React, built as an installable PWA, with Tailwind CSS
- Backend: Supabase (Postgres, Auth, Storage, Row-Level Security, Edge Functions)
- Payments: Stripe (subscriptions)
- Hosting: Vercel
- AI-assisted coding: Cursor (you use it daily)
WHAT ALREADY EXISTS (you build from these, you do not invent them)
- A canonical data-model / schema doc (tables, enums, RLS rules) and a controlled-vocabulary seed list
- Detailed feature specs for Live Mode, the skill-ladder system, homework, and the import system
- A locked design system (colors, fonts, icons), a finished home-screen mockup, and a working Live-- Mode timer mockup to match
- Pre-built, validated drill/plan/ladder content for the launch sport (loads as data)
WHAT YOU WILL BUILD (first-version scope)
1. Schema foundation: stand up the documented Postgres schema in Supabase (solo AND club accounts, controlled-vocabulary lookup tables, drills/plans/ladders, the resource library), with a multi-tenant organization_id layer, a version column, and an append-only events table, all from day one. RLS enforced at the database level.
2. Auth and account model: email/password signup, role/account types as data, RLS so a coach only ever sees their own (or their club's) content.
3. Drill entry plus AI auto-fill: an under-30-second capture form; AI fills structured tags constrained to lookup-table values (never free-text); blank beats wrong.
4. Drill and Resource Library: search, favorites, a unified media library (photos/video links/diagrams stored once and referenced). Log searches that return zero results (this is un-backfillable product data).
5. Practice-plan and skill-ladder builder: one object with a format flag; drag-to-order; per-plan duration overrides.
6. Live Mode: the hands-free practice runner. Must work offline (service-worker caching, screen wake-lock, background audio) and log run events (start/skip/extend/complete) to the events table, syncing on reconnect.
7. Player-development tracker: a per-player progress overlay on the skill ladder. Tap a rung to advance its state (not started, working, mastered), with a computed progress meter. This is the loop's payoff and a perfect example of the extend-don't-redesign work this role is about.
8. Import: bring drills in from a pasted link, a shared post, an uploaded photo/PDF/DOCX, or a fixed-column club CSV template, into a staging-then-confirm flow (nothing enters the library unconfirmed).
9. Homework: assign existing content to players, player taps done, coach taps a positive acknowledgment; parents see read-only.
10. Branded PDF export ("Powered by Coach Command") plus a home-screen launcher built to match the provided mockup.
11. Stripe subscription checkout that activates a paid account, plus cost/abuse guards (rate limits, spend caps, signed URLs for uploads, no unauthenticated AI endpoints).
DELIBERATELY NOT IN THIS BUILD (do not quote these): the marketplace buy/sell UI, full multi-coach club admin (seat-management UI), the COPPA parental-consent subsystem, and streaks/points/leaderboards. The schema reserves room for them; we are not building them now. One hard requirement that stays in from line one: no data is ever collected FROM a child. Coaches enter everything, there are no open free-text fields for minors, and under-13 routes through a parent. This privacy-by-design model is non-negotiable.
WHAT I NEED FROM YOU
- Proven Next.js App Router and Supabase experience, including Row-Level Security for multiple roles/tenants
- Comfortable designing a clean, append-only events/telemetry schema and capturing events without slowing the user down
- Comfortable building an offline-capable PWA (service workers, wake-lock, sync-on-reconnect)
Experience with document/image parsing pipelines and queue-based background workers (for import)
- You can take a finished mockup and reproduce it faithfully (spacing, color, behavior), not "your interpretation"
- You extend an existing schema and follow the spec's precedence rules when documents disagree
- Stripe subscription experience
- Active Cursor user who writes plain-English code comments
- Solo developer or very small team. No agencies, no subcontracting.
HOW YOU WORK (this matters as much as the skills)
- Plan before you code. For anything non-trivial, you write a short plan first and confirm it with me before building.
- Surgical, additive edits only. You change only what is necessary, you do not "improve" working code, and new features go on as additive migrations.
- Keep it simple. You prefer 100 clear lines to 1000 clever ones. Nothing speculative.
- Goal-driven. You work to clear success criteria and verify on a real phone before calling something done.
HOW WE WILL WORK TOGETHER
- Fixed price, paid by milestone through Upwork escrow. I fund one milestone at a time; payment releases when the milestone is delivered and accepted.
- We will start with a small paid first milestone before committing to the full scope.
- All accounts (Supabase, Stripe, GitHub repo, hosting) stay under my ownership. You work as an invited collaborator. I own all code; it transfers on request.
- Every file must include plain-English comments. Non-negotiable.
- I have already done all discovery, scoping, and design. I will not pay for planning or "scoping" time.
- Expect a short async update every couple of days and a brief weekly check-in. Please keep a few hours of timezone overlap with me.
TO APPLY: answer the screening questions below. Generic proposals that do not answer them will be declined without a reply.
Відкрити на Upwork