diff --git a/api.php b/api.php
new file mode 100644
index 0000000..9d70da5
--- /dev/null
+++ b/api.php
@@ -0,0 +1,16 @@
+query('SELECT id, title, location, description, company, salary_range, created_at FROM jobs ORDER BY created_at DESC');
+ $jobs = $stmt->fetchAll(PDO::FETCH_ASSOC);
+ echo json_encode(['success' => true, 'data' => $jobs]);
+} catch (PDOException $e) {
+ http_response_code(500);
+ echo json_encode(['success' => false, 'error' => 'Database error: ' . $e->getMessage()]);
+}
+?>
\ No newline at end of file
diff --git a/assets/css/custom.css b/assets/css/custom.css
new file mode 100644
index 0000000..82de4fa
--- /dev/null
+++ b/assets/css/custom.css
@@ -0,0 +1,74 @@
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap');
+
+:root {
+ --primary: #3E66F8;
+ --secondary: #17A2B8;
+ --background: #F8F9FA;
+ --surface: #FFFFFF;
+ --text: #212529;
+ --radius: 0.5rem;
+}
+
+body {
+ font-family: 'Poppins', sans-serif;
+ background-color: var(--background);
+ color: var(--text);
+}
+
+.navbar {
+ background-color: var(--surface);
+ box-shadow: 0 2px 4px rgba(0,0,0,.05);
+}
+
+.hero {
+ background: linear-gradient(45deg, var(--primary), var(--secondary));
+ color: white;
+ padding: 4rem 1rem;
+ text-align: center;
+}
+
+.job-card {
+ background-color: var(--surface);
+ border: none;
+ border-radius: var(--radius);
+ box-shadow: 0 4px 12px rgba(0,0,0,.08);
+ transition: all 0.3s ease;
+}
+
+.job-card:hover {
+ transform: translateY(-5px);
+ box-shadow: 0 8px 20px rgba(0,0,0,.12);
+}
+
+.job-card .card-title {
+ color: var(--primary);
+}
+
+.job-card .badge {
+ background-color: rgba(62, 102, 248, 0.1);
+ color: var(--primary);
+ font-weight: 600;
+}
+
+.btn-primary {
+ background-color: var(--primary);
+ border-color: var(--primary);
+ border-radius: var(--radius);
+ padding: 0.75rem 1.5rem;
+ font-weight: 600;
+}
+
+.btn-primary:hover {
+ opacity: 0.9;
+}
+
+.form-control-lg {
+ border-radius: var(--radius);
+}
+
+.footer {
+ background-color: var(--surface);
+ padding: 2rem 0;
+ margin-top: 4rem;
+ border-top: 1px solid #e9ecef;
+}
diff --git a/assets/js/main.js b/assets/js/main.js
new file mode 100644
index 0000000..6130445
--- /dev/null
+++ b/assets/js/main.js
@@ -0,0 +1 @@
+// Custom JavaScript will go here
diff --git a/db/migrations/001_create_jobs_table.sql b/db/migrations/001_create_jobs_table.sql
new file mode 100644
index 0000000..6fd9a9a
--- /dev/null
+++ b/db/migrations/001_create_jobs_table.sql
@@ -0,0 +1,18 @@
+CREATE TABLE IF NOT EXISTS jobs (
+ id INT AUTO_INCREMENT PRIMARY KEY,
+ title VARCHAR(255) NOT NULL,
+ company VARCHAR(255) NOT NULL,
+ location VARCHAR(255) NOT NULL,
+ description TEXT,
+ salary VARCHAR(100),
+ job_type VARCHAR(50),
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+);
+
+-- Insert dummy data
+INSERT INTO jobs (title, company, location, description, salary, job_type) VALUES
+('Senior Frontend Developer', 'Innovate Inc.', 'San Francisco, CA', 'Join our team to build next-gen web applications with React and TypeScript.', '$120,000 - $150,000', 'Full-time'),
+('UX/UI Designer', 'Creative Solutions', 'New York, NY', 'Design beautiful and intuitive interfaces for our mobile and web products.', '$90,000 - $110,000', 'Full-time'),
+('Data Scientist', 'Analytics Co.', 'Remote', 'Analyze large datasets to extract meaningful insights and drive business decisions.', '$130,000 - $160,000', 'Remote'),
+('Product Manager', 'AppMakers LLC', 'Austin, TX', 'Lead the product lifecycle from conception to launch for our flagship mobile app.', '$115,000 - $140,000', 'Full-time'),
+('Backend Engineer (PHP)', 'Legacy Systems', 'Chicago, IL', 'Maintain and improve our existing PHP codebase, ensuring reliability and performance.', '$100,000 - $125,000', 'Contract');
diff --git a/db/setup.php b/db/setup.php
new file mode 100644
index 0000000..2866340
--- /dev/null
+++ b/db/setup.php
@@ -0,0 +1,28 @@
+ false, 'error' => 'Migration file not found.'];
+ }
+
+ $sql = file_get_contents($sql_file);
+ $pdo->exec($sql);
+
+ return ['success' => true, 'message' => 'Database setup and seeding completed successfully.'];
+ } catch (PDOException $e) {
+ return ['success' => false, 'error' => 'Database error: ' . $e->getMessage()];
+ }
+}
+
+// If this script is run directly from the command line, execute the migrations.
+if (php_sapi_name() === 'cli') {
+ $result = run_migrations();
+ echo $result['message'] ?? $result['error'];
+ echo "\n";
+}
+
diff --git a/index.php b/index.php
index 7205f3d..0f4129b 100644
--- a/index.php
+++ b/index.php
@@ -1,150 +1,124 @@
-
-
+
-
-
- New Style
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Connect - Find Your Next Opportunity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
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) ?>
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ query('SELECT * FROM jobs ORDER BY created_at DESC');
+ $jobs = $stmt->fetchAll();
+
+ if (empty($jobs)) {
+ echo "
No job listings found at the moment. Please check back later.
";
+ } else {
+ foreach ($jobs as $job) {
+ echo '
+
+
+
+
' . htmlspecialchars($job['title']) . '
+
' . htmlspecialchars($job['company']) . '
+
' . htmlspecialchars($job['location']) . '
+
' . substr(htmlspecialchars($job['description']), 0, 100) . '...
+
+ ' . htmlspecialchars($job['job_type']) . '
+ ' . htmlspecialchars($job['salary']) . '
+
+
+
+
+
';
+ }
+ }
+ } catch (PDOException $e) {
+ // In a real app, log this error. For now, show a friendly message.
+ echo "
Error: Could not connect to the database to fetch jobs.
";
+ }
+ ?>
+
+
+
+
+
+
+
+
+
+
+
-
+