A modern web application for technical certification exam preparation, built with TypeScript and emphasizing test-driven development. Supports various technical certifications including networking, security, and cloud computing exams.
# Prerequisites: Bun 1.0+, Docker, Git
# Clone and install
git clone <repository-url>
cd certquiz
bun install
# Start services
bun run docker:up # PostgreSQL + KeyCloak
bun run db:migrate # Run migrations
bun run dev # Start dev servers
API: http://localhost:4000/swagger
KeyCloak: http://localhost:8080
cert-quiz/
โโโ apps/
โ โโโ api/ # Hono backend API (VSA + DDD + Repository Pattern)
โโโ packages/
โ โโโ shared/ # Essential constants & utilities (QUIZ_SIZES, CONFIG)
โโโ docker/ # Docker configurations
โโโ docs/ # Documentation
Mandatory - Write tests first, then code:
bun run test --watch # Run tests in watch mode
bun run test --coverage # Check coverage (min 80%)
Database schemas drive development:
bun run db:generate # Generate migrations from schema changes
# Development
bun run dev # Start all services
bun run check # All quality checks (TypeScript + Biome + knip) with auto-fix
bun run ci # All quality checks (TypeScript + Biome + knip) without auto-fix
bun run typecheck # TypeScript checking only
bun run lint # Biome linter
bun run format # Biome formatter
# Database
bun run db:generate # Generate migrations
bun run db:migrate # Apply migrations
bun run db:studio # Drizzle Studio GUI
bun run db:test:migration # Test migrations locally (CI-like)
# Testing
bun run test # Run all tests
bun run test:unit # Unit tests only
bun run test:integration # Integration tests
# Docker
bun run docker:up # Start services
bun run docker:down # Stop services
# Code Quality
bun run knip # Check for unused exports
bun run knip:fix # Auto-fix some unused exports
[License type] - See LICENSE file for details
Built with โค๏ธ using modern TypeScript tooling