Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
전기 설비자를 위한 DXF/DWG/PDF 자동 수량 산출·견적 생성, 60개 규격·80% 시간 절감
DXF/DWG/PDF tervrajzból automatikus mennyiségkimutatás és árajánlat generálás villamos kivitelezőknek. 60+ normaidő-tétel, 80% időmegtakarítás.
비즈니스JavaScript · PythonGitHub @hrvt7온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Magyar nyelvű webalkalmazás villanyszerelési tervrajzok feldolgozására: tervfeltöltés → elemfelismerés → mennyiségszámítás → kábelbecslés → árajánlat generálás. • Villanyszerelő vállalkozók, kalkulátorok akik DXF/DWG (vagy PDF) tervrajzból akarnak gyorsan mennyiségi kiírást és árajánlatot készíteni • Fő érték: terv-alapú felmérés gyorsítása — a tervrajzból kinyert blokkok és vonalhosszak alapján automatikus mennyiségszámítás, manuális felülvizsgálattal • Kimenet: formázott PDF árajánlat (tömör / összesített / részletes), CSV export, BOMREADME 전문 보기 ↗
Magyar nyelvű webalkalmazás villanyszerelési tervrajzok feldolgozására: tervfeltöltés → elemfelismerés → mennyiségszámítás → kábelbecslés → árajánlat generálás.
/api/parse-dwg), utána a standard DXF pipeline dolgozik1. Projekt létrehozása → ügyfél, projekt név, emelet/diszciplína
2. Tervrajz feltöltés → DXF / DWG / PDF fájl → planStore (IndexedDB)
3. Elemfelismerés → DXF parser (client-side JS + web worker) kinyeri:
blokkok (INSERT), vonalhosszak, rétegek, attribútumok
4. Felülvizsgálat → felismert blokkok → assembly hozzárendelés
(szabály-alapú + 3-tier recognition memory + manuális review)
5. Kalkuláció → anyagköltség + munkadíj + kábelbecslés → összesítés
6. Árajánlat kimenet → PDF generálás (3 részletességi szint) / CSV / nyomtatás
| Réteg | Technológia |
|---|---|
| Frontend | React 18 + Vite 4, egyetlen SPA |
| Viewer | dxf-viewer (WebGL, Three.js) DXF-hez, pdfjs-dist PDF-hez |
| Persistence | Local-first: localStorage + IndexedDB (localforage) |
| Cloud sync | Opcionális Supabase (auth, quotes, settings sync) |
| Serverless API | Vercel Python functions (DWG konverzió, PDF parse, AI meta-vision) |
| Tesztek | Vitest (1077 unit), Playwright (54 E2E) |
| Build | Vite, code-split: vendor-pdf, vendor-dxf, vendor-supabase |
├── api/ # Vercel serverless Python functions
│ ├── parse-dxf.py # DXF feldolgozás (ezdxf) — fallback, ritkán használt
│ ├── parse-dwg.py # DWG → DXF konverzió (ODA engine)
│ ├── parse-pdf.py # PDF raszterizálás + blokk-detekció
│ ├── parse-pdf-vectors.py # PDF vektor-alapú parse
│ ├── cable-agent.py # Kábel-agent (AI-asszisztált kábelbecslés)
│ ├── meta-vision.py # AI tervrajz metaadat-kinyerés
│ ├── convert-dwg.py # DWG → DXF batch konverzió
│ ├── ai.py # AI helper endpoint
│ ├── create-checkout.py # Stripe checkout
│ └── stripe-webhook.py # Stripe webhook handler
├── src/
│ ├── App.jsx # Fő alkalmazás shell (1733 sor): routing, quote szerkesztés, PDF output
│ ├── Landing.jsx # Landing page
│ ├── dxfParser.js # Client-side DXF parser (blokkok, vonalak, rétegek, attribútumok)
│ ├── pdfTakeoff.js # PDF marker-alapú felmérés + kábelbecslés (MST)
│ ├── cableAgent.js # AI kábel-agent kliens
│ ├── supabase.js # Supabase auth + sync kliens
│ ├── components/
│ │ ├── TakeoffWorkspace.jsx # Központi munkaterület (2954 sor): viewer + felismerés + review
│ │ ├── DxfViewer/ # WebGL DXF megjelenítő (Three.js OrthographicCamera)
│ │ ├── PdfViewer/ # PDF megjelenítő (pdf.js canvas)
│ │ ├── Sidebar.jsx # Navigáció
│ │ ├── DetectionReviewPanel.jsx # AI detekció felülvizsgálat
│ │ ├── LegendPanel.jsx # Jelmagyarázat kezelés
│ │ ├── PdfMergePanel.jsx # Több PDF terv összefésülése
│ │ ├── CableConfidenceCard.jsx # Kábelbecslés konfidencia megjelenítés
│ │ ├── ManualCableModePanel.jsx # Manuális kábelbecslés
│ │ ├── ErrorBoundary.jsx # Globális hibakezelés
│ │ └── ui.jsx # Közös UI komponensek (badge, toast, fmt)
│ ├── pages/
│ │ ├── Dashboard.jsx # Áttekintő dashboard
│ │ ├── Quotes.jsx # Árajánlat-lista
│ │ ├── Projektek.jsx # Projekt-kezelés
│ │ ├── Assemblies.jsx # Assembly katalógus szerkesztő
│ │ ├── WorkItems.jsx # Munkatétel katalógus
│ │ ├── Materials.jsx # Anyag katalógus
│ │ └── Settings.jsx # Beállítások (cég, logó, API kulcsok)
│ ├── data/
│ │ ├── store.js # localStorage persistence (settings, quotes, items)
│ │ ├── planStore.js # IndexedDB terv-fájl tárolás + metaadat
│ │ ├── projectStore.js # Projekt persistence
│ │ ├── recognitionMemory.js # 3-tier elemfelismerési memória (projekt → fiók → globális)
│ │ ├── evidenceExtractor.js # DXF evidence kinyerés (réteg, attrib, szöveg)
│ │ ├── workItemsDb.js # Beépített munkatétel-adatbázis + normaidők
│ │ ├── legendStore.js # Jelmagyarázat template tárolás
│ │ └── ... # schema versioning, concurrency guard, category map
│ ├── utils/
│ │ ├── pricing.js # Árazási motor (anyag + munka + overhead)
│ │ ├── generatePdf.js # HTML → PDF generálás (html2canvas + jsPDF)
│ │ ├── dxfParseContract.js # Parser output normalizálás (browser/worker parity)
│ │ ├── cableModel.js # Kábelbecslés modell
│ │ ├── reviewState.js # Review workflow állapotgép
│ │ ├── csvExport.js # CSV árajánlat export
│ │ ├── bomExport.js # BOM (Bill of Materials) export
│ │ └── ... # audit, merge, template matching, workflow
│ ├── workers/
│ │ ├── dxfParser.worker.js # Web Worker DXF parser (nagy fájlokhoz)
│ │ └── dxf-viewer.worker.js
│ └── __tests__/ # 39 test suite, 1077 teszt
├── e2e/ # 30 Playwright E2E spec (54 teszt)
├── vite.config.js
├── vercel.json
├── requirements.txt # Python dependencies (ezdxf, stripe, openai, stb.)
└── .env.example # Environment változók dokumentáció
npm install
npm run dev
Frontend: http://localhost:5173
cp .env.example .env
# Kitöltés: VITE_SUPABASE_URL, VITE_SUPABASE_ANON_KEY
# Supabase nélkül az app offline módban fut (localStorage-only)
| Parancs | Leírás |
|---|---|
npm run dev | Vite dev server (HMR) |
npm run build | Production build → dist/ |
npm run preview | Build előnézet |
npm run lint | ESLint (src/ — .js, .jsx) |
npm test | Vitest unit tesztek (1077) |
npm run test:watch | Vitest watch mód |
npm run test:e2e | Playwright E2E tesztek (54) |
npx playwright installnpm run build, Output: dist.env.example)requirements.txt Python dependency-ket a Vercel automatikusan telepítivercel.json tartalmazza az API route konfigurációt/api/parse-dwg endpoint-on (server-side ODA engine)A DXF fájlok általában mm-ben vannak. A UI automatikusan kezeli a mértékegységeket, de manuálisan is kalibrálható:
mm → m: 0.001 szorzó ← legtöbb esetben ezcm → m: 0.01 szorzóm → m: 1:1Ellenőrzés: mérd meg egy ismert falszakasz hosszát a DXF-ben a beépített mérőeszközzel.
dxfParser.js (main thread) és dxfParser.worker.js (web worker) — azonos logika, dxfParseContract.js normalizálja a kimenetet mindkét útvonalrólA workspace erős, de törékeny. Kis, célzott változtatásokat preferáld. Kerüld a széles refaktorokat a kritikus flow-kban (TakeoffWorkspace, App.jsx, generatePdf, dxfParser).
npm run build (zero error) + npm test (1077 pass) + npm run test:e2e (54 pass)dxfParser.js és dxfParser.worker.js mindig szinkronban kell legyen — a dxfParserConsistency.test.js ellenőrzisignalType nélkül block_name-ként kezelődnekgeneratePdf.js) html2canvas-alapú: CSS page-break szabályok nem érvényesülnek, spacer injection kezeli a tördelést