diff --git a/assets/css/custom.css b/assets/css/custom.css index 381aaf8..50c1076 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -1,4 +1,3 @@ - body { padding-top: 56px; /* Adjust for fixed-top navbar */ } @@ -59,3 +58,26 @@ h1, h2, h3, h4, h5, h6 { #outputs img, #dashboard img { border: 1px solid #dee2e6; } + +/* Dashboard Styles */ +#dashboard { + background-color: #1a1a1a !important; +} + +#dashboard .card { + background-color: #2a2a2a !important; + border: none; +} + +#dashboard .kpi-value { + font-size: 3rem; + font-weight: bold; +} + +#dashboard .trend-up { + color: #28a745; +} + +#dashboard .trend-down { + color: #dc3545; +} \ No newline at end of file diff --git a/assets/images/pexels_gtm_diagram_669610.jpg b/assets/images/pexels_gtm_diagram_669610.jpg new file mode 100644 index 0000000..ea52aa6 Binary files /dev/null and b/assets/images/pexels_gtm_diagram_669610.jpg differ diff --git a/assets/pasted-20251006-164429-f2a5211b.png b/assets/pasted-20251006-164429-f2a5211b.png new file mode 100644 index 0000000..43a1401 Binary files /dev/null and b/assets/pasted-20251006-164429-f2a5211b.png differ diff --git a/assets/pasted-20251006-165942-e40aece1.png b/assets/pasted-20251006-165942-e40aece1.png new file mode 100644 index 0000000..5704f97 Binary files /dev/null and b/assets/pasted-20251006-165942-e40aece1.png differ diff --git a/assets/pasted-20251006-170246-c39c6bc6.png b/assets/pasted-20251006-170246-c39c6bc6.png new file mode 100644 index 0000000..10a26a7 Binary files /dev/null and b/assets/pasted-20251006-170246-c39c6bc6.png differ diff --git a/assets/pasted-20251006-210028-b0cc286e.png b/assets/pasted-20251006-210028-b0cc286e.png new file mode 100644 index 0000000..10a26a7 Binary files /dev/null and b/assets/pasted-20251006-210028-b0cc286e.png differ diff --git a/assets/pasted-20251015-173324-71b99b3e.jpg b/assets/pasted-20251015-173324-71b99b3e.jpg new file mode 100644 index 0000000..d9b240c Binary files /dev/null and b/assets/pasted-20251015-173324-71b99b3e.jpg differ diff --git a/assets/vm-shot-2025-10-15T17-32-11-606Z.jpg b/assets/vm-shot-2025-10-15T17-32-11-606Z.jpg new file mode 100644 index 0000000..d9b240c Binary files /dev/null and b/assets/vm-shot-2025-10-15T17-32-11-606Z.jpg differ diff --git a/generate_diagram.php b/generate_diagram.php index 1b82f03..8ccdc9b 100644 --- a/generate_diagram.php +++ b/generate_diagram.php @@ -6,7 +6,7 @@ require_once 'db/config.php'; // IMPORTANT: Do not hardcode API keys in production. Use environment variables. // The key is temporarily used here for demonstration purposes as requested. // You should revoke this key and use getenv('OPENAI_API_KEY') instead. -$openai_api_key = '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'; +$openai_api_key = getenv('OPENAI_API_KEY'); $openai_api_url = 'https://api.openai.com/v1/chat/completions'; $profile_id = $_GET['id'] ?? null; @@ -86,12 +86,13 @@ curl_setopt($ch, CURLOPT_HTTPHEADER, [ $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); +$curl_error_message = curl_error($ch); curl_close($ch); // --- Process Response --- if ($http_code !== 200 || $response === false) { - error_log("OpenAI API Error: HTTP {$http_code} - " . $response); - echo json_encode(['error' => 'Failed to generate diagram from AI. The API returned an error.']); + error_log("OpenAI API Error: HTTP {$http_code} - " . $response . " - cURL Error: " . $curl_error_message); + echo json_encode(['error' => 'Failed to generate diagram from AI. The API returned an error: ' . $curl_error_message]); exit; } diff --git a/index.php b/index.php index 0fec9c8..3c981d1 100644 --- a/index.php +++ b/index.php @@ -17,6 +17,23 @@ + + +
@@ -29,7 +46,7 @@
+ A centralized dashboard to monitor your key metrics and GTM goals.
-
+ A fully customizable dashboard to monitor your key metrics and GTM goals
Monitor customer acquisition cost, lifetime value, conversion rates, and other critical KPIs in real-time. Align your team around a single source of truth.
+$250,000
+Target: $300,000 ▲
+15%
+Target: 20% ▲
+60%
+Target: 65% ▲
+$120
+Target: $100 ▼
+$50,000
+Target: $45,000 ▼
+$100,000
+Target: $120,000 ▲
+50
+Target: 60 ▲
+500
+Target: 550 ▲
+$3,000,000
+Target: $3,500,000 ▲
+Set and refine KPIs, and track them with an auto-generated dashboard.
- +