- TypeScript (using
swc
for fast compilation, andtsx
for development) - Env vars
- Fastify
- CI with github actions
- Docker image
- Linting
- Prisma for database
- ESM (can be opt out by changing the tsconfig: https://www.typescriptlang.org/docs/handbook/esm-node.html)
- Install the dependencies.
pnpm install
- Start the server in development mode.
pnpm dev
Loaded from .env
file, with schema validation through the plugin/config.ts
file
Command | Action |
---|---|
pnpm dev |
Run the server in dev mode, automatically restarts on file change |
pnpm build |
Compile TypeScript to JavaScript |
pnpm start |
Start JavaScript from 'build' directory |
pnpm test |
Run unit tests (run pnpm build before) |
pnpm test:watch |
Run backend tests in watch mode, running on changed test files |
pnpm lint |
Run eslint |
pnpm lint:fix |
Run eslint in fix mode |
Run tests on push/PR to 'main' branch
Check .github/workflows/CI.yml
- Adminstrator
- Search and filter hacker
- Update hacker info: Name, email, check-in status
- Discord
- Check-in anyone by email; return the role
- Registration page
- Add new hacker
- Verify email
- Email sending
- Send email to hacker; filter before send
- Judging
- Add new judge
- Add projects CSV
- Add/update project categories
- Change judge info: category, name
- Send email to judge: login link
- Distribute projects to judges
- Sponsor
- Add new sponsor