OpenChart
Free Desktop charting with Claude or Codex. Describe alerts, research chart moves, and choose your data providers.
Log agency shifts, see your expected pay, and catch an underpaid payslip.
FinanceGitHub @patrykwrldOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Earnings Tracker for Agency Employees
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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