feat(ZEE-29): implement design system, dark mode, and JSON content management

- Add comprehensive design system with CSS variables, animations, and utility classes
- Implement dark mode with ThemeProvider (system preference + manual toggle)
- Create JSON-based content management system in src/content/
- Update all pages to use structured JSON content
- Add ThemeProvider component with theme toggle button
- Update Header with glass effect and animated mobile menu
- Update Footer with dark mode support
- Update documentation (README.md, CLAUDE.md, knowledge.md, proto/README.md)
- Sync with Linear (ZEE-29 completed)
This commit is contained in:
Do Siki
2026-01-24 02:30:27 +01:00
parent db464d1c48
commit d1213f9b3f
27 changed files with 3294 additions and 450 deletions
+74
View File
@@ -0,0 +1,74 @@
# Project Knowledge
mozdIT Bt. website - Next.js 14 app for a Hungarian IT services company (web hosting, email, DNS).
## Quickstart
```bash
# Setup
cd proto && npm install
# Dev server (with Turbopack)
cd proto && npm run dev
# Docker dev environment (includes MongoDB, Grafana, Loki)
docker-compose -f docker-compose.dev.yml up -d
# Tests
cd proto && npm test # Unit tests
cd proto && npm run test:all # All tests (unit + browser + docker)
```
## Architecture
- **proto/** - Main Next.js 14 application
- `src/app/` - App Router pages and API routes
- `src/components/` - React components (Header, Footer, ThemeProvider)
- `src/content/` - **JSON content management system**
- `types.ts` - Content TypeScript definitions
- `index.ts` - Content loader utility
- `common.json` - Shared texts (buttons, labels)
- `pages/*.json` - Page-specific content
- `src/lib/` - Utilities (MongoDB, Logger, Site Config)
- `src/config/` - Static site configuration
- `src/types/` - TypeScript definitions
- **docker/** - MongoDB initialization scripts
- **docs/** - Project documentation (Hungarian)
- **scripts/** - Test sync and reporting scripts
Path alias: `@/*``./src/*`
## Commands (run from proto/)
| Command | Description |
|---------|-------------|
| `npm run dev` | Dev server with Turbopack |
| `npm run build` | Production build |
| `npm run lint` | ESLint check |
| `npm test` | Unit tests |
| `npm run test:browser` | Browser integration tests |
| `npm run test:integration` | Docker integration tests |
| `npm run test:e2e` | End-to-end tests |
| `npm run test:all` | All test suites |
| `npm run docker:dev` | Start Docker stack |
## Conventions
- **Language**: Hungarian content, English code/comments
- **Stack**: Next.js 14 App Router, TypeScript, Tailwind CSS 4
- **Design System**: CSS variables, dark mode, animations in `globals.css`
- **Content**: JSON files in `src/content/` for all page texts
- **Database**: MongoDB with Mongoose
- **Logging**: Winston with Loki integration
- **Testing**: Jest + React Testing Library
- **ESLint**: next/core-web-vitals + next/typescript
## Gotchas
- **All commands run from `proto/`** - The main app lives in the proto subdirectory
- **Docker required for integration tests** - Start with `docker-compose -f docker-compose.dev.yml up -d`
- **Dual tracking**: Linear (ZEE-* tickets) + TODO.md for task management
- **Environment variables**: Need `MONGODB_URI`, `MONGODB_DB` for database connection
- **Path mapping**: Use `@/` imports (e.g., `@/lib/mongodb`, `@/content`)
- **Content changes**: Edit JSON files in `src/content/pages/` - rebuild container to see changes
- **Dark mode**: Uses `data-theme` attribute on `<html>`, managed by ThemeProvider