Backend Development with Supabase
Бюджет: $200.0
FIXED /
⭐ 0.00 (0)
United States
php, mysql, javascript, html5
charlie-house-v2.html
Let me know if you have any questions.
What Needs to Be Built (Backend) & maybe a little front end as well.
1. Database & Data Migration
Set up Supabase (Postgres) — I will provide the project
Design and create tables matching the existing in-memory data structures: customers, jobs/visits, technicians, admin users, messages, SMS log, filter subscriptions, checklists, scheduling/booking blocks
Migrate all current hardcoded demo data into the new database as seed data
2. Authentication
Replace the current phone-number-only demo login with real Supabase Auth
Three user roles: Customer, Technician, Admin — each with appropriate Row Level Security (RLS) policies so users can only access their own data
Session persistence (stay logged in across visits)
3. Real-Time Data Operations
Rewire every place the app currently reads/writes local JavaScript variables (e.g. CUSTOMERS[id], jobs[]) to instead read/write to Supabase
This touches: customer profiles, job/visit records, scheduling and booking conflicts, messaging threads, SMS log, checklist data, filter subscriptions, plan change/cancellation requests, payroll/mileage records
Photo uploads (technician arrival photos, customer signatures) need to go to Supabase Storage instead of being held as base64 strings in memory
4. Payment Integration (Square)
I will provide a Square developer account
Real charge processing for: $100 initial consult fee, recurring monthly subscription billing (plan price + filter add-on)
Handle plan upgrades/downgrades (should take effect on the 1st of the following month, not immediately — this business rule is already designed in the UI, just needs real billing logic behind it)
Webhook handling for payment success/failure
5. SMS Integration (Twilio)
I will provide a Twilio account and phone number
Replace the current simulated "SMS log" with real text messages for: 24-hour appointment reminders, "technician on the way" alerts, arrival confirmations
This likely requires a small serverless function (Supabase Edge Function) to trigger sends server-side
6. Scheduled/Automated Logic
Monthly plan change execution (scheduled job that applies pending plan changes on the 1st of each month)
24-hour reminder automation (currently a manual "send now" button — ideally automated via a scheduled function)
Deliverables
Fully configured Supabase project (database schema, RLS policies, seed data)
Updated HTML/JS file with all data operations connected to Supabase instead of local variables
Square payment integration (consult fee + recurring billing)
Twilio SMS integration (reminders + arrival alerts)
Brief written documentation: how the schema is structured, how to access/edit data going forward, how to rotate API keys if needed
Confirmation that the app works end-to-end with multiple simultaneous test users (e.g. one customer + one tech + one admin all interacting with the same live data)
What I Will Provide
The complete current HTML file
A Supabase account (free tier to start)
A Square developer/business account
A Twilio account with a phone number
Hosting is already handled separately (Netlify) — not part of this job unless you want to advise on deployment
What I'm NOT Looking For
UI/UX redesign — the design is final
A rewrite into React/Vue/another framework — keep it as close to vanilla JS as reasonably possible unless you have a strong reason otherwise (open to discussing this)
New features — this is purely backend connection work for existing features
Ideal Candidate
Strong experience with Supabase (or willing to demonstrate equivalent Postgres + Auth + RLS experience with Firebase/similar)
Has integrated Stripe or Square payments before (recurring billing experience a strong plus)
Has integrated Twilio before
Comfortable working directly in vanilla JavaScript without insisting on a framework rewrite
Can communicate clearly in plain language — I am not a developer and will need explanations I can actually follow, not just code dumps
Отвори в Upwork