Files
websitedev/knowledge.md
T

75 lines
2.7 KiB
Markdown
Executable File

# 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