פלטפורמת ווב מקצועית לעיצוב, הדמיה ותכנון פריסת אולמות אירועים — עם תצוגה דו-ממדית ותלת-ממדית מסונכרנות.
Hanan היא אפליקציית ווב המאפשרת ללקוחות לתכנן ולהדמות פריסת אולמות אירועים בצורה אינטראקטיבית.
- עורך 2D — גרירה ושחרור של שולחנות, כסאות ואלמנטי עיצוב על גבי תוכנית הקומה
- הדמיה תלת-ממדית — תצוגת Three.js מסונכרנת עם העורך הדו-ממדי בזמן אמת
- מנגנון מגבלות — מניעת חפיפות, שמירה על מסלולי הליכה, הגדרת אזורים קבועים
- ניהול פריסות — שמירה, טעינה ושיתוף תצורות עם קישורי snapshot
- תמיכה במספר אולמות — תצורות שונות עם ממדים ואזורים מוגדרים מראש
- הגדרות חומרים — בחירת מפות שולחן, מפות כסאות ועיצובי עיצוב
| שכבה | טכנולוגיה |
|---|---|
| Frontend | React 19, TypeScript, Vite |
| עורך 2D | Konva.js, react-konva |
| הדמיה 3D | Three.js |
| ניהול State | Zustand (Immer) |
| Backend | NestJS, TypeORM |
| מסד נתונים | PostgreSQL 16 |
| אחסון קבצים | MinIO (S3-compatible) |
| אינפרה | Docker, Docker Compose, Nginx |
HANAN/
├── frontend/ # אפליקציית React + Vite
│ ├── src/
│ │ ├── components/ # רכיבי UI
│ │ ├── stores/ # Zustand state management
│ │ ├── types/ # הגדרות TypeScript
│ │ └── lib/ # ספריות עזר
├── backend/ # NestJS REST API
│ ├── src/
│ │ ├── halls/ # ניהול אולמות
│ │ ├── layouts/ # שמירת פריסות
│ │ └── database/ # הגדרות DB וseeding
├── assets/ # קבצי GLB ל-3D
├── presets/ # הגדרות פריסה מוכנות
├── architecture/ # תיעוד ארכיטקטוני
├── docker-compose.yml # הגדרות Docker
└── claude.md # חוקת הפרוייקט
- Node.js גרסה 20 ומעלה
- Docker Desktop
- npm גרסה 10 ומעלה
git clone https://github.com/MSA-I/Hanan.git
cd Hanandocker-compose up -dוודא שהשירותים עלו:
docker-compose pscd backend
npm installצור קובץ .env בתוך תיקיית backend/:
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=hanan
DB_PASSWORD=hanan
DB_DATABASE=hanan_dev
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_ACCESS_KEY=hanan
MINIO_SECRET_KEY=hanan_minio_dev
PORT=3000הרץ seeding למסד הנתונים (נדרש בהרצה ראשונה):
npm run seedהפעל את השרת:
# מצב פיתוח (עם hot-reload)
npm run start:dev
# מצב ייצור
npm run build
npm run start:prodהשרת יעלה על: http://localhost:3000
פתח טרמינל חדש:
cd frontend
npm install
npm run devהאפליקציה תפתח על: http://localhost:5173
ניתן להריץ את כל המערכת עם Docker Compose מלא (כולל frontend מ-build):
docker-compose up --build# Backend unit tests
cd backend
npm run test
# Backend e2e tests
npm run test:e2e
# Coverage report
npm run test:cov| Method | URL | תיאור |
|---|---|---|
| GET | /halls |
רשימת כל האולמות |
| GET | /halls/:id |
פרטי אולם ספציפי |
| GET | /layouts |
רשימת פריסות שמורות |
| POST | /layouts |
שמירת פריסה חדשה |
| GET | /layouts/:id |
טעינת פריסה לפי ID |
| PUT | /layouts/:id |
עדכון פריסה קיימת |
| כלי | URL | פרטי גישה |
|---|---|---|
| MinIO Console | http://localhost:9001 |
user: hanan / pass: hanan_minio_dev |
| PostgreSQL | localhost:5432 |
user: hanan / pass: hanan / db: hanan_dev |
- Single Source of Truth — כל ה-state מנוהל ב-
sceneStore(Zustand) - 2D ↔ 3D סינכרון — שני התצוגות קוראות מה-store בלבד, ללא תקשורת ישירה
- מנגנון מגבלות — constraint engine הוא ליבת המערכת, לא AI
- Client-side rendering — כל הרינדור מבוצע על ה-GPU של המשתמש
- WebGL2 נדרש
- iPad Safari 15+ ומעלה
- יעד: 60 FPS במחשב, 30 FPS ב-iPad
פרוייקט פרטי — כל הזכויות שמורות.