Files
dwroller/docs/PROJECT_STRUCTURE.md
alex a4cabbd2b8 Clean rules database and add documentation
- Remove OCR noise, credits, and duplicates from rules-database.json (288→255 rules)
- Add clean_rules.py script for rule cleanup
- Add CLAUDE.md, docs/, and update README with documentation links

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 17:35:36 +02:00

122 lines
5.2 KiB
Markdown

# Project Structure
## Directory Layout
```
dwroller/
├── backend/ # Backend API server
│ ├── src/
│ │ ├── routes/ # API route handlers
│ │ ├── controllers/ # Route controllers
│ │ ├── middleware/ # Auth, validation middleware
│ │ ├── models/ # Data models
│ │ └── utils/ # Helper functions
│ ├── server.js # Express server entry point
│ └── package.json
├── frontend/ # React frontend application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Route pages
│ │ ├── hooks/ # Custom React hooks
│ │ └── store/ # State management
│ ├── public/ # Static assets
│ ├── package.json
│ └── vite.config.js
├── data/ # Static data files
│ ├── gamemasters_kit/ # GM tools
│ ├── ocr_rules_*.txt # OCR extracted rules
│ ├── rules_page.png # Rules images
│ └── dwback.png # Background images
├── database/ # Database files
│ ├── backups/ # Database backups
│ ├── MIGRATION_*.md # Migration documentation
│ └── alexei-*.json # Canonical data
├── docs/ # This documentation
│ ├── SUMMARY.md # Table of contents
│ ├── api.md # API documentation
│ ├── developer-guide.md
│ ├── user-guide.md
│ └── ...
├── .env.example # Environment template
├── package.json # Root package.json
└── README.md # Project overview
```
## Feature Architecture
```
┌─────────────────────────────────────────────────────────┐
│ Deathwatch Roller │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Frontend │───▶│ API │───▶│ Database │ │
│ │ (React) │ │ (Express) │ │ (SQLite) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ - Shop - Auth - Players │
│ - Bestiary - Sessions - Inventory │
│ - Rules - Files - Webhooks │
│ - Sessions - Validation - Backups │
└─────────────────────────────────────────────────────────┘
```
## Data Flow
```
User Request
┌───────────┐
│ Frontend │
│ (React) │
└───────────┘
├──────────────┬──────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Shop │ │ Bestiary│ │ Sessions│
│ API │ │ API │ │ API │
└─────────┘ └─────────┘ └─────────┘
│ │ │
└──────────────┴──────────────┘
┌───────────┐
│ Backend │
│ (Express) │
└───────────┘
┌───────────┐
│ Database │
│ (SQLite) │
└───────────┘
```
## File Organization by Feature
### Shop/Inventory
- `backend/src/routes/shop/` - Shop API routes
- `backend/src/models/Item/` - Item model
- `backend/src/controllers/shop/` - Shop controller
- `frontend/src/components/Shop/` - Shop UI components
### Bestiary
- `backend/src/routes/bestiary/` - Bestiary routes
- `backend/src/models/Creature/` - Creature model
- `backend/src/controllers/bestiary/` - Bestiary controller
- `frontend/src/components/Bestiary/` - Bestiary UI
### Players
- `backend/src/routes/players/` - Player routes
- `backend/src/models/Player/` - Player model
- `backend/src/controllers/players/` - Player controller
- `frontend/src/components/Players/` - Player UI (GM only)