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 @@
- Sample GTM Process Diagram +
graph TD + subgraph "GTM Strategy Workflow" + A[Start] --> B[Input Market & Product Data]; + B --> C{Generate GTM Strategy}; + C --> D[Review Generated Plan]; + D --> E{Is the Plan Approved?}; + E -- Yes --> F[Launch GTM Campaign]; + E -- No --> G[Refine Inputs & Regenerate]; + G --> B; + F --> H[Monitor KPIs & Optimize]; + H --> F; + end
-
-
-

Track Your Progress

-

A centralized dashboard to monitor your key metrics and GTM goals.

-
-
-
- Sample GTM Dashboard +
+
+
+

Track Your Progress

+

A fully customizable dashboard to monitor your key metrics and GTM goals

-
-

Unified Dashboard

-

Monitor customer acquisition cost, lifetime value, conversion rates, and other critical KPIs in real-time. Align your team around a single source of truth.

+
+
+
+
+
Revenue
+

$250,000

+

Target: $300,000

+
+
+
+
+
+
+
Revenue Growth (MoM)
+

15%

+

Target: 20%

+
+
+
+
+
+
+
Gross Profit Margin
+

60%

+

Target: 65%

+
+
+
+
+
+
+
Customer Acquisition Cost (CAC)
+

$120

+

Target: $100

+
+
+
+
+
+
+
Operating Expenses
+

$50,000

+

Target: $45,000

+
+
+
+
+
+
+
Net Operating Income
+

$100,000

+

Target: $120,000

+
+
+
+
+
+
+
New Customers Added
+

50

+

Target: 60

+
+
+
+
+
+
+
Total Customers
+

500

+

Target: 550

+
+
+
+
+
+
+
Annual Recurring Revenue (ARR)
+

$3,000,000

+

Target: $3,500,000

+
+
+
diff --git a/profile.php b/profile.php index 4a30e6b..66dc287 100644 --- a/profile.php +++ b/profile.php @@ -31,6 +31,7 @@ if ($profile_id) { +

TEST

Set and refine KPIs, and track them with an auto-generated dashboard.

-
+
+ +
@@ -114,7 +117,9 @@ if ($profile_id) { -
+
+ +