尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Earnings Tracker for Agency Employees
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Live: https://payweek.app · Privacy policy: https://payweek.app/privacy.html
Hours & earnings tracker for agency workers paid weekly. Know what's in your packet.
An Android app (Capacitor-wrapped web app) that logs shifts across multiple agencies, calculates expected gross pay with flexible rate rules, and diffs expected pay against actual payslips to catch underpayment. See PROJECT_BRIEF.md for the full spec.
Vite · React 18 · TypeScript (strict) · Tailwind 4 · Capacitor 6 (Android) · Supabase (auth + Postgres + RLS) · TanStack Query · date-fns. All money is integer pence — no floats, ever.
Picking this up? docs/LAUNCH_DAY.md is the current to-do list, in order, from where the project actually stands. docs/START_HERE.md is the from-scratch version.
The live project is payweek (jcwxxtimhrlzaojadmhx, eu-west-2) with both
migrations in supabase/migrations/ already applied and the security/performance
advisors clean. For a fresh project, apply the migrations in order via the SQL
editor or supabase db push.
The delete-account Edge Function in supabase/functions/ is deployed
separately (supabase functions deploy delete-account); Settings → Delete my
account depends on it.
Manual dashboard steps (not scriptable via migrations):
http://localhost:5173) and add payweek://auth-callback to Redirect URLs (needed for Android).After schema changes, regenerate src/lib/database.types.ts (supabase gen types typescript).
cp .env.example .env
For the live project:
VITE_SUPABASE_URL=https://jcwxxtimhrlzaojadmhx.supabase.co
VITE_SUPABASE_ANON_KEY=sb_publishable_PXDZo1oea43av5x4lIj3lg_1vGP_8AI
(The publishable key is client-side by design; RLS is what protects the data.)
npm install
npm run dev
npm run build
npx cap sync android
npx cap run android # or open android/ in Android Studio
Magic links and Google OAuth on Android return to the app via the payweek://auth-callback deep link (registered in AndroidManifest.xml, handled in src/auth/redirects.ts). Open the magic-link email on the same device that requested it — the PKCE flow requires it.
See docs/RELEASE.md for the signed-AAB build and Play
Console closed-testing runbook, docs/DATA_SAFETY.md for
the Data safety form answers, and docs/STORE_LISTING.md
for listing copy, docs/GOOGLE_VERIFICATION.md for
Google's identity/developer verification rules, and
docs/DEPLOY_VERCEL.md to
host the web app + privacy policy on Vercel. The privacy policy is served from
public/privacy.html.
npm run typecheck # tsc, strict
npm test # vitest
npm run lint # oxlint