Skip to content

Latest commit

 

History

History
203 lines (147 loc) · 3.1 KB

File metadata and controls

203 lines (147 loc) · 3.1 KB

Development Guide

Prerequisites

  • Node.js 22+
  • pnpm
  • Docker and Docker Compose
  • Git

Setup

  1. Clone the repository
git clone https://github.com/doomedramen/crackhouse.git
cd crackhouse
  1. Install dependencies
pnpm install
  1. Start services
docker compose up -d
  1. Run database migrations
cd apps/api
pnpm db:push
  1. Start development servers
# Terminal 1 - API
cd apps/api && pnpm dev

# Terminal 2 - Web
cd apps/web && pnpm dev

# Terminal 3 - Worker
cd apps/api && pnpm worker

Access the application at http://localhost:3000

Project Structure

crackhouse/
├── apps/
│   ├── api/
│   │   ├── src/
│   │   │   ├── routes/       # API endpoints
│   │   │   ├── workers/      # Background jobs
│   │   │   ├── db/           # Database schema & migrations
│   │   │   └── lib/          # Utilities
│   │   └── __tests__/        # API tests
│   └── web/
│       ├── app/              # Next.js app router
│       ├── components/       # React components
│       └── tests/            # E2E tests
├── packages/
│   ├── ui/                   # Shared UI components
│   ├── typescript-config/
│   └── eslint-config/
└── docs/

Tech Stack

Frontend

  • Next.js 16 (App Router)
  • React 19
  • Tailwind CSS
  • shadcn/ui components
  • TanStack Query
  • React Hook Form + Zod

Backend

  • Hono (HTTP framework)
  • PostgreSQL 16
  • Drizzle ORM
  • Redis + BullMQ
  • Better Auth
  • Hashcat integration

Development Workflow

Making Changes

  1. Create a branch
git checkout -b feature/your-feature-name
  1. Make your changes

  2. Run tests and checks

pnpm lint
pnpm typecheck
pnpm test
  1. Commit following conventional commits
git commit -m "feat: add new feature"
git commit -m "fix: resolve bug"
  1. Push and create PR
git push origin feature/your-feature-name

Testing

API Tests

cd apps/api
pnpm test              # Run with watch
pnpm test:run          # Run once
pnpm test:coverage     # Coverage report

E2E Tests

# From repo root
pnpm test:e2e          # Run E2E tests in Docker

See testing/README.md for more details.

Code Standards

  • Use TypeScript strict mode
  • Follow ESLint rules
  • Write tests for new features
  • Use functional React components
  • Prefer Server Components in Next.js
  • Use Zod for validation

Database

Migrations

cd apps/api
pnpm db:generate       # Generate migration
pnpm db:push           # Apply schema changes

Reset database

docker compose down -v
docker compose up -d
pnpm db:push

Troubleshooting

Port conflicts

lsof -i :3000
kill -9 <PID>

Clear caches

rm -rf node_modules .next dist
pnpm install

Database issues

docker compose restart db
pnpm db:push

Resources