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:
@@ -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
|
||||
Reference in New Issue
Block a user