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…
-
-
= ($_SERVER['HTTP_HOST'] ?? '') === 'appwizzy.com' ? 'AppWizzy' : 'Flatlogic' ?> AI is collecting your requirements and applying the first changes.
-
This page will update automatically as the plan is implemented.
-
Runtime: PHP = htmlspecialchars($phpVersion) ?> — UTC = htmlspecialchars($now) ?>
-
-
-
- Page updated: = htmlspecialchars($now) ?> (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.
";
+ }
+ ?>
+
+
+
+
+
+
+
+
+
-
+