feat: Add automated Bygma installation manual scraper with AI analysis
Features: - Automated login and PDF download from Bygma - GPT-4o AI analysis of installation manuals - Extracts: steps, time estimates, tools, safety, materials, skill level - Direct database storage (installation_manuals table) - Auto-cleanup: deletes PDFs after analysis to save space - Node.js integration for quote generation New files: - scrape_and_analyze_bygma.py - Main automated scraper - scrape_bygma_with_login.py - Simple download script - analyze_manual_pdfs.py - Standalone PDF analyzer - get_installation_tasks.js - Node.js quote integration - demo_tilbud_opgave.js - Working demo - BYGMA_AUTOMATION_README.md - Complete documentation Database: - installation_manuals table with JSON fields - Sample data: 1 manual analyzed (Cembrit Bølgeplader) Integration: - getInstallationTask(productName, quantity) function - Returns formatted task descriptions for quotes - Time calculations: 2.5 hours/m² example Cleanup: - Removed old test scripts and debug files - Removed downloaded PDFs (saved to database) - Organized documentation files
This commit is contained in:
46
installation_data/installation_manuals_migration.sql
Normal file
46
installation_data/installation_manuals_migration.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
-- Installation Manual Data Migration
|
||||
-- Generated: 2025-10-20T09:37:23.583623
|
||||
|
||||
CREATE TABLE IF NOT EXISTS installation_manuals (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
product_name VARCHAR(255),
|
||||
manufacturer VARCHAR(255),
|
||||
manual_url TEXT,
|
||||
manual_filename VARCHAR(255),
|
||||
manual_type ENUM('installation', 'manual', 'safety') DEFAULT 'installation',
|
||||
installation_steps JSON,
|
||||
time_estimate_per_unit DECIMAL(5,2),
|
||||
time_unit ENUM('per_sqm', 'per_piece', 'per_project') DEFAULT 'per_sqm',
|
||||
required_tools JSON,
|
||||
safety_requirements JSON,
|
||||
material_requirements JSON,
|
||||
skill_level ENUM('let', 'medium', 'svær') DEFAULT 'medium',
|
||||
weather_conditions TEXT,
|
||||
key_points JSON,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
INDEX idx_product (product_name)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 280_Montagevejledning_Boelgepladetag.pdf
|
||||
INSERT INTO installation_manuals (
|
||||
product_name, manufacturer, manual_url, manual_filename, manual_type,
|
||||
installation_steps, time_estimate_per_unit, time_unit,
|
||||
required_tools, safety_requirements, material_requirements,
|
||||
skill_level, weather_conditions, key_points
|
||||
) VALUES (
|
||||
'280 Montagevejledning Boelgepladetag',
|
||||
'Cembrit',
|
||||
NULL,
|
||||
'280_Montagevejledning_Boelgepladetag.pdf',
|
||||
'installation',
|
||||
'["Kontroller rethed på lægter og spær med retholt eller snor", "Monter Cembrit Plastudhængsklodser med ventilation ved tagfod", "Fastgør lægter i henhold til gældende anvisninger", "Placer Cembrit Bølgeplader på lægterne", "Monter 2 tagskruer i hver bølgeplade", "Sørg for korrekt overlæg på 110 mm", "Anvend PVC skumstrimmel for at sikre tætheden", "Ventiler ved rygning med Cembrit rygningselement", "Fjern bore- og skærestøv straks efter bearbejdning", "Afslut ved vindskede med Cembrit Vindskedeprofil", "Kontroller montagebredde ved prøveoplægning", "Sørg for minimum 14˚ taghældning", "Opbevar plader på tørt og plant underlag", "Brug Cembrit Fuglegitter ved tagfod", "Sørg for korrekt ventilation ved tagfod og kip"]',
|
||||
2.5,
|
||||
'per_sqm',
|
||||
'["Håndværktøj", "Langsomtgående el-værktøj", "Hurtiggående el-værktøj", "Vinkelsliber med diamantklinge", "Rundsav med hårdmetalklinge", "Boremaskine med ø9 bor"]',
|
||||
'["Fjern bore- og skærestøv straks", "Brug støvafsugning ved hurtigtgående værktøj", "Følg gældende regler vedr. sikkerhed og beskyttelse"]',
|
||||
'{"Cembrit Bølgeplader": "1,03 stk/m²", "Cembrit Tagskruer": "2,1 stk/m²", "Cembrit PVC-skumstrimler": "1,2 m/m²", "Cembrit Stålnet": "1,1 m²/m²", "Lægter": "2,81 stk/m²"}',
|
||||
'medium',
|
||||
'Tørt vejr anbefales for at undgå kalkudfældninger',
|
||||
'["Korrekt opbevaring og håndtering er afgørende", "Ventilation ved tagfod og kip er nødvendig", "Minimum 14˚ taghældning skal overholdes", "Fjern bore- og skærestøv straks for at undgå skader", "Brug af PVC skumstrimmel for at sikre tætheden", "Kontroller montagebredde ved prøveoplægning", "Sørg for korrekt fastgørelse med tagskruer"]'
|
||||
);
|
||||
Reference in New Issue
Block a user