Files
tilbudgivern/docs/archived/PROJECT_CREATION_DEBUG.md
alexpolo1 4a372d2e28 clean up
2025-10-30 18:28:58 +00:00

5.1 KiB

Debug Guide: Kunde Projekt Oprettelse

🔧 Ændringer Implementeret

Problem

Fejl ved oprettelse af kunde projekt - "⚠️ Fejl ved oprettelse af kunde projekt"

Root Cause Analysis

Der var field name mismatch mellem frontend og backend:

  • Frontend sender: projectAddress
  • Backend forventede: customerAddress

Løsning Implementeret

1. Backend Service Fix

File: backend/src/services/customerProjectService.js

// Nu accepterer begge field navne:
const {
  projectName,
  customerName,
  customerEmail,
  customerPhone,
  customerAddress,
  projectAddress,  // Frontend sender denne
  projectDescription
} = projectData;

// Bruger projectAddress hvis customerAddress mangler
const address = customerAddress || projectAddress;

2. Omfattende Logging

Frontend (frontend/src/components/ProjectCreation.js):

 Logger formData før send
 Logger API URL
 Logger response status og headers
 Tjekker Content-Type før JSON parsing
 Logger success/error responses
 Viser detaljeret fejlbesked

Backend Route (backend/src/routes/customerProjects.js):

 Logger incoming request data
 Logger validation status
 Logger success/error med detaljer
 Returnerer error.message i response

Backend Service (backend/src/services/customerProjectService.js):

 Logger data ved service start
 Logger prepared values før DB insert
 Logger inserted ID ved success
 Logger detailed error ved fejl

🐛 Hvordan Man Debugger

1. Åbn Browser Console (F12)

Gå til Console tab

2. Prøv at Oprette Projekt

  1. Vælg kunde: "Alexander Warme"
  2. Indtast projekt navn: "Test Projekt"
  3. Klik "Opret Projekt"

3. Tjek Console Logs

Success scenario:

📤 Sending project creation request: {
  projectName: "Test Projekt",
  customerName: "Alexander Warme",
  customerEmail: "alexander@warme.dk",
  customerPhone: "...",
  projectAddress: "...",
  projectDescription: ""
}
🌐 API URL: http://localhost:3010/api/customer-projects/projects
📡 Response status: 200
📦 Response data: { success: true, project: {...} }
✅ Project created successfully: {...}

Error scenario:

📤 Sending project creation request: {...}
📡 Response status: 500
❌ Server returned error: Fejl ved oprettelse af kunde projekt

4. Tjek Backend Logs

pm2 logs tilbudgivern-unified --lines 50

Success scenario:

📥 Create project request received: {
  projectName: 'Test Projekt',
  customerName: 'Alexander Warme',
  ...
}
✅ Validation passed, creating project...
🏗️ Creating project in service with data: {...}
📝 Prepared values for insertion: {...}
✅ Project inserted with ID: 123
✅ Project created successfully: {...}

Error scenario:

📥 Create project request received: {...}
⚠️ Validation failed: Missing required fields
eller
❌ Error in createProject service: [Error details]

🔍 Mulige Fejl og Løsninger

1. "Validation failed: Missing required fields"

Problem: projectName eller customerName mangler Løsning: Tjek at formData indeholder begge felter

2. "Database error: ER_NO_SUCH_TABLE"

Problem: customer_projects tabel findes ikke Løsning:

mysql -u tilbudgivern_service -p tilbudgivern
SHOW TABLES LIKE 'customer_projects';

3. "Database error: ER_DUP_FIELDNAME"

Problem: Duplikeret kolonne navn Løsning: Tjek database schema matcher query

4. "Response is not JSON"

Problem: Server crashede eller returnerer HTML Løsning: Tjek backend logs for crash reason

5. NULL constraint violation

Problem: Required field sendt som null Løsning: Service nu sender null for optional fields

📊 Database Schema

CREATE TABLE customer_projects (
  id INT AUTO_INCREMENT PRIMARY KEY,
  project_name VARCHAR(255) NOT NULL,
  customer_name VARCHAR(255) NOT NULL,
  customer_email VARCHAR(255),
  customer_phone VARCHAR(50),
  customer_address TEXT,
  project_description TEXT,
  project_status VARCHAR(50) DEFAULT 'draft',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

Test Checklist

  • Browser console åben (F12)
  • Backend logs kører: pm2 logs tilbudgivern-unified
  • Vælg kunde via Customer Search
  • Indtast projekt navn (min 3 tegn)
  • Tjek at customerName er auto-udfyldt
  • Klik "Opret Projekt"
  • Tjek console for success/error
  • Tjek backend logs for details
  • Verificer projekt blev oprettet (hvis success)

🎯 Næste Skridt

  1. Åbn applikationen i browser
  2. Åbn console (F12)
  3. Prøv at oprette projekt med data:
    • Projekt navn: "Debug Test Projekt"
    • Kunde: Vælg "Alexander Warme" fra søgning
  4. Del logs hvis der stadig er fejl:
    • Console logs fra browser
    • Backend logs fra pm2 logs

💡 Tips

  • Serveren er genstartet med nye ændringer
  • Frontend er rebuilt med debug logging
  • Alle logs er nu meget mere detaljerede
  • Check både browser console OG backend logs