尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A direct carer–client marketplace: verified, self-employed carers, families who choose them, and simulated escrow payments. Built with Next.js 16, Supabase and Tailwind, the same stack as MatchKits.
One web app with three areas:
/client, /carers): search, carer profiles, messaging, booking, confirming visits, disputes, reviews./carer): onboarding, documents, requests, check-in and check-out, earnings. Designed for phones first./admin): verification queue, disputes, safeguarding, payment ledger, users, audit log.Payments are simulated (PRD 8.6). Bookings move through the real states (pending, held, then released, refunded or partially refunded), with fees, cancellations, the 48-hour auto-release and dispute outcomes all calculated in the database. A "Test mode" banner is shown wherever money appears. Identity checks and the DBS Update Service check are also simulated: an admin approves the DBS document, which records the check.
eu-west-2).pg_cron, and run the schema again. It then runs auto-release and no-shows every 10 minutes. Without it, the same rules run whenever a dashboard loads.http://localhost:3000, then your Vercel URL). Add <site>/auth/callback under Redirect URLs for each site.https://<project-ref>.supabase.co/auth/v1/callback./welcome..env.example to .env.local and fill in your values from Project Settings, then API.npm install
npm run dev
update public.profiles set role = 'admin' where id = (select id from auth.users where email = '[email protected]');
The location box suggests UK towns, cities and postcodes using postcodes.io (free, open data, no key), plus a bundled list of major places in src/lib/major-places.ts for instant prefix matches. Carers save a location and how far they'll travel. Clients see carers who travel to them, nearest first (carers_near in the schema). Distances are rounded to the half mile. A carer's postcode and coordinates are only readable by that carer and by admins, through carer_private(). If postcodes.io is unreachable, typed text is still accepted and looked up when the form is submitted.
All booking, payment, cancellation and dispute logic is in Postgres functions in supabase/schema.sql, so the web app can't bypass it. Writes go through those functions. Row Level Security plus column grants stop users from editing their own role, approval status or payment fields.
The fee percentages and time windows are in the settings table (PRD section 16 open decisions):
update public.settings set client_fee_bps = 500, carer_commission_bps = 1000, auto_release_hours = 48;
BookingForm shows a 5% fee estimate. Update CLIENT_FEE in src/components/BookingForm.tsx if you change client_fee_bps.
settle_booking function is the one place to swap in)