feat: complete Phase 1 - Technical Foundations for CS2.WTF rewrite

Initialize SvelteKit project with complete modern web development stack:

## Core Framework
- SvelteKit 2.0 with Svelte 5 and TypeScript strict mode
- Vite 5 for blazing fast dev server and builds
- Node.js 20 standardized via .nvmrc

## Styling & Theming
- Tailwind CSS 3.4 with utility-first approach
- DaisyUI 4.0 with custom CS2 themes (cs2dark/cs2light)
- CS2-branded color palette (T-side orange, CT-side blue)
- PostCSS for CSS processing

## Code Quality & Tooling
- ESLint 8 with TypeScript + Svelte plugins
- Prettier 3 with Svelte + Tailwind plugins
- Stylelint 16 for CSS linting
- Husky 9 + lint-staged for pre-commit hooks
- TypeScript 5.3 with all strict flags enabled

## Testing Infrastructure
- Vitest 1.0 for unit/component tests with jsdom
- Playwright 1.40 for E2E tests (3 browsers)
- Testing Library for component testing
- MSW 2.0 for API mocking
- Coverage thresholds set to 80%

## Project Structure
- Organized src/ with lib/, routes/, mocks/, tests/
- Component directories: layout, ui, charts, match, player
- Path aliases configured: $lib, $components, $stores, $types, $api
- Separate test directories: unit, integration, e2e

## CI/CD & Deployment
- Updated Woodpecker CI pipeline with quality gates
- Pipeline steps: install → lint → type-check → test → build
- Deploy targets: master (prod), dev (staging), cs2-port (preview)

## Documentation
- Comprehensive README.md with setup guide
- API.md with complete backend documentation (12 endpoints)
- TODO.md updated with Phase 0 & 1 completion
- Environment variables template (.env.example)

## Development Experience
- Hot module reloading configured
- Dev server running on port 5173
- All npm scripts defined for dev, test, build workflows
- Pre-commit hooks prevent broken code commits

Project is now ready for feature development (Phase 2+).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-04 19:54:35 +01:00
parent 0404188d4d
commit 288438a953
27 changed files with 10204 additions and 30 deletions

23
tests/e2e/home.test.ts Normal file
View File

@@ -0,0 +1,23 @@
import { expect, test } from '@playwright/test';
test('homepage loads successfully', async ({ page }) => {
await page.goto('/');
// Check that the page title contains CS2.WTF
await expect(page.locator('h1')).toContainText('CS2');
await expect(page.locator('h1')).toContainText('.WTF');
// Check that navigation buttons are present
await expect(page.locator('text=Browse Matches')).toBeVisible();
await expect(page.locator('text=View Demo Profile')).toBeVisible();
});
test('navigation to matches page works', async ({ page }) => {
await page.goto('/');
// Click on Browse Matches button
await page.locator('text=Browse Matches').click();
// URL should change to /matches
await expect(page).toHaveURL('/matches');
});