- login and authentication with HCA
- connection to hackatime
- submit projects
- explore others' projects
- purchase accessories and other goodies from a shop
- customize your macropad - coming soon!
for admins:
- view user data
- view and manage orders for fulfillment
- create shop categories and items
- review projects
- sveltekit 5 for frontend, routing, and SSR
- drizzle ORM + postgreSQL for the database
- encrypted session tokens stored server-side
you need bun, docker, and a .env file with your credentials.
bun install
bun run db:start # spins up postgres via docker compose
bun run db:push # applies the schema
bun run dev # starts the dev serverto inspect the database:
bun run db:studiothis app builds to a plain node server.
bun run build
node buildset all env vars from .env.example in your .env file before running. key ones for prod:
DATABASE_URL- your postgres connection stringHCA_CLIENT_ID/HCA_CLIENT_SECRET/HCA_REDIRECT_URI- hack club oauth appHACKATIME_CLIENT_ID/HACKATIME_CLIENT_SECRET- hackatime oauth appTOKEN_ENCRYPTION_KEY- generate withopenssl rand -hex 32ADMIN_IDS/REVIEWER_IDS- space-separated HCA user IDs
run schema migrations against the prod database before starting:
bun run db:pushthe server listens on port 3000 by default. set PORT to override.
pull requests are welcome! poke me (@maxstellar) in #onekey or dm me on slack if you have questions!