monorepo for hc's next YSWS: Hackanomous!
for quick frontend changes, a full setup is overkill. you're probably in codespaces, just use pnpm.
clone this repo! (if in a codespace, skip)
git clone https://github.com/SmartSparkCoding/hackanomous && cd hackanomousinstall frontend deps, incl development ones
pnpm installget to work!
pnpm dev
for anything involving backend! bun and uv strongly recommended.
clone this repo!
git clone https://github.com/SmartSparkCoding/hackanomous && cd hackanomousinstall frontend deps, incl development ones
bun installsetup venv using latest python
uv venv .venvactivate your venv (depending on platform)
windows:
.venv/Scripts/activatemacos/linux:
source .venv/bin/activate
install all backend deps, incl development ones
uv syncif you're a dev on the team, ask
technodotfor a development copy ofconfig.toml. otherwise, fill in the blanks as per below:base_url="http://localhost:8080" # change to prod url in prod bc duh [database] url="postgresql+asyncpg://username:password@point.at.your:5432/database" [oauth] [oauth.hackclub] client_id="hca_client_id" secret="hca_client_secret" # probably don't push [oauth.hackatime] client_id="hackatime_client_id" secret="hackatime_client_secret" # probably don't pushyou will need your own postgresql db.
your options:
use the bundled docker oneTODO- figure out hosting one yourself (glhf)
- create a database on some DBaaS like Supabase/Neon (higher latency & less control, but easier)
most likely, the url you are given will NOT include the
+asyncpg://part. INSERT IT IN. I PROMISE IT'S IMPORTANT.'
create an HCA OAuth app at https://auth.hackclub.com/developer/apps.
- select ALL the scopes.
- add your callback url as
http://localhost:8080/oauth/hackclub/callback. - fill in your client id and secret into
config.toml.
create a Hackatime OAuth app at https://hackatime.hackclub.com/oauth/applications.
- select ALL the scopes.
- add your callback url as
http://localhost:8080/oauth/hackatime/callback. - fill in your client id and secret into
config.toml.
generate a rsa keypair!
ssh-keygen -t rsa -b 4096skip everything with enter, it's not very important. it should save files to
~/.ssh/.get it up and running!
if you're just working on backend only, you can just build the frontend once
bun vite buildelse, if you're working on both at the same time, in a new terminal, run
bun vite build --watchfinally, run the server itself
uv run main.py --config ./config.toml --dev
pull up http://0.0.0.0:8080 and enjoy!
docker coming soon, i (don't) promise!
deployment is currently static through @SmartSparkCoding's personal vercel.
dm technodot on Slack for any questions!