From 2369b242ea77ec12367928901f586567b3f98854 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 9 Jan 2026 01:34:44 +0000 Subject: [PATCH] enviroment --- assets/css/custom.css | 108 +++++++++ assets/js/main.js | 1 + db/migrations/001_create_events_and_seed.php | 37 +++ index.php | 243 ++++++++----------- 4 files changed, 244 insertions(+), 145 deletions(-) create mode 100644 assets/css/custom.css create mode 100644 assets/js/main.js create mode 100644 db/migrations/001_create_events_and_seed.php diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..af88572 --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,108 @@ +:root { + --primary-color: #4F46E5; + --secondary-color: #10B981; + --bg-light: #F9FAFB; + --surface-white: #FFFFFF; + --text-dark: #111827; + --text-muted: #6B7280; +} + +body { + background-color: var(--bg-light); + font-family: 'Inter', sans-serif; + color: var(--text-dark); +} + +.navbar-brand { + font-weight: 700; +} + +.hero-section { + background: linear-gradient(120deg, var(--primary-color) 0%, #7c3aed 100%); + padding: 6rem 0; + color: white; +} + +.hero-section h1 { + font-size: 3.5rem; + font-weight: 800; +} + +.hero-section p { + font-size: 1.25rem; + max-width: 600px; + margin: 1rem auto 2rem; +} + +.btn-primary { + background-color: var(--primary-color); + border-color: var(--primary-color); + font-weight: 600; + padding: 0.75rem 1.5rem; + border-radius: 0.5rem; + transition: background-color 0.2s ease-in-out; +} + +.btn-primary:hover { + background-color: #4338ca; + border-color: #4338ca; +} + +.event-section { + padding: 5rem 0; +} + +.event-card { + border: none; + border-radius: 0.75rem; + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; + height: 100%; +} + +.event-card:hover { + transform: translateY(-5px); + box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); +} + +.event-card .card-body { + padding: 1.75rem; +} + +.event-card .card-title { + font-size: 1.25rem; + font-weight: 600; + color: var(--text-dark); +} + +.event-card .card-subtitle { + color: var(--primary-color); + font-weight: 500; +} + +.event-card .card-text { + color: var(--text-muted); +} + +.price-tag { + background-color: var(--secondary-color); + color: white; + font-weight: 700; + font-size: 1.1rem; + padding: 0.5rem 1rem; + border-radius: 0.5rem; + position: absolute; + top: 1.5rem; + right: 1.5rem; +} + +.price-tag.free { + background-color: var(--primary-color); +} + + +.footer { + background-color: var(--surface-white); + padding: 2rem 0; + border-top: 1px solid #e5e7eb; +} diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..a57081d --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1 @@ +// Future JavaScript enhancements will go here. diff --git a/db/migrations/001_create_events_and_seed.php b/db/migrations/001_create_events_and_seed.php new file mode 100644 index 0000000..e809e75 --- /dev/null +++ b/db/migrations/001_create_events_and_seed.php @@ -0,0 +1,37 @@ +exec("CREATE TABLE IF NOT EXISTS events ( + id INT AUTO_INCREMENT PRIMARY KEY, + title VARCHAR(255) NOT NULL, + description TEXT, + event_date DATETIME NOT NULL, + location VARCHAR(255), + price DECIMAL(10, 2) DEFAULT 0.00, + status ENUM('pending', 'accepted', 'rejected') NOT NULL DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + );"); + + // Check if table is empty before seeding + $stmt = $pdo->query("SELECT COUNT(*) FROM events"); + if ($stmt->fetchColumn() == 0) { + // Seed data + $pdo->exec("INSERT INTO events (title, event_date, location, status, price) VALUES + ('Community Tech Conference 2026', '2026-03-15 09:00:00', 'City Convention Center', 'accepted', 49.99), + ('Local Music Festival', '2026-04-22 18:00:00', 'Downtown Park', 'accepted', 25.00), + ('Art & Design Expo', '2026-05-10 11:00:00', 'Grand Exhibition Hall', 'pending', 15.00), + ('Startup Pitch Night', '2026-05-20 19:00:00', 'Innovation Hub', 'accepted', 0.00), + ('Health & Wellness Retreat', '2026-06-05 10:00:00', 'Serenity Resort', 'rejected', 350.00); + "); + echo "Database table 'events' created and seeded successfully." . PHP_EOL; + } else { + echo "Database table 'events' already exists and contains data. Seeding skipped." . PHP_EOL; + } + +} catch (PDOException $e) { + die("Database migration failed: " . $e->getMessage()); +} diff --git a/index.php b/index.php index 7205f3d..9bb1731 100644 --- a/index.php +++ b/index.php @@ -1,150 +1,103 @@ - - + - - - New Style - - - - - - - - - - - - - - - - - - - + + + EventJet - Your Gateway to Exclusive Events + + + + + + + + + + + -
-
-

Analyzing your requirements and generating your website…

-
- Loading… -
-

AI is collecting your requirements and applying the first changes.

-

This page will update automatically as the plan is implemented.

-

Runtime: PHP — UTC

-
-
- + + + +
+
+
+

Discover Your Next Great Event

+

From tech conferences to music festivals, find and book your ticket to the most exciting events happening near you.

+ Browse Events +
+
+ +
+
+

Upcoming Events

+
+ prepare("SELECT * FROM events WHERE status = 'accepted' ORDER BY event_date ASC"); + $stmt->execute(); + $events = $stmt->fetchAll(PDO::FETCH_ASSOC); + + if (empty($events)) { + echo "

No upcoming events found. Please check back later!

"; + } else { + foreach ($events as $event) { + $event_date = new DateTime($event['event_date']); + $price = floatval($event['price']); + $price_display = $price > 0 ? '$' . number_format($price, 2) : 'FREE'; + $price_class = $price > 0 ? '' : 'free'; + + echo '
+
+
+
' . $price_display . '
+
' . $event_date->format('M d, Y \a\t h:i A') . '
+

' . htmlspecialchars($event['title']) . '

+

' . htmlspecialchars($event['location']) . '

+ View Details +
+
+
'; + } + } + } catch (Exception $e) { + error_log("Event Fetch Error: " . $e->getMessage()); + echo "

We're sorry, but there was an error fetching events. Please try again later.

"; + } + ?> +
+
+
+
+ + + + + - + \ No newline at end of file