Skip to content

cesarnml/coding-stats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

482 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WakaStats

wakatime

Personal coding dashboard built with SvelteKit. Pulls WakaTime activity data, stores it in Supabase, and visualizes it as a portfolio/client-facing tool — "Apple Health for coders." Live at codingstats.vercel.app.

Coverage

codecov CodeFactor

wakastats coverage

Development

# Full local dev setup (pulls remote data, resets local DB, seeds, gen types, starts vite)
pnpm dev:fresh

# Resume dev without re-pulling remote data
pnpm dev:resume

# Type check
pnpm check

# Lint / format
pnpm lint
pnpm format

# Unit tests
pnpm test:unit

# E2E tests
pnpm test

Auth (GitHub + Supabase)

Sign-in uses Supabase Auth with GitHub OAuth. New users get a public.profiles row automatically via the on_auth_user_created trigger (see supabase/migrations/*_on_auth_user_created.sql).

Environment GitHub OAuth app Supabase GitHub callback (set in GitHub app) App redirect allow-list
Production CodingStats https://rzrykoldaspzesdlfkgy.supabase.co/auth/v1/callback https://codingstats.vercel.app/login-redirect (and https://coding-stats.vercel.app/login-redirect if that hostname is still in use)
Local CodingStatsDev http://localhost:54321/auth/v1/callback http://localhost:5173/login-redirect

Production setup: Supabase dashboard → Authentication → Providers → GitHub (enabled, CodingStats client ID/secret). Authentication → URL configuration → add the production login-redirect URLs above.

Local setup: Copy supabase/config.toml.example to supabase/config.toml (gitignored). Set GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET from CodingStatsDev, then supabase start (or pnpm dev:fresh / pnpm dev:resume).

Apply DB migrations to hosted Supabase: from a linked project, supabase db push --linked (after P5.01 migration is merged).

Existing user without a profile row (one-off, no backfill script):

INSERT INTO public.profiles (id, email, name)
VALUES ('<your-auth-users-uuid>', '<email>', '<display-name>');

Find <your-auth-users-uuid> in Supabase → Authentication → Users.

About

Visualize coding metrics. Measure, Improve, and Succeed.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors