diff --git a/db/migrations/002_add_roles_and_details_to_users.sql b/db/migrations/002_add_roles_and_details_to_users.sql new file mode 100644 index 0000000..65bda51 --- /dev/null +++ b/db/migrations/002_add_roles_and_details_to_users.sql @@ -0,0 +1,10 @@ +ALTER TABLE `users` +ADD COLUMN `role` VARCHAR(50) NOT NULL AFTER `password`, +ADD COLUMN `name` VARCHAR(255) NOT NULL AFTER `role`, +ADD COLUMN `address` TEXT NULL AFTER `name`, +ADD COLUMN `contact_person` VARCHAR(255) NULL AFTER `address`, +ADD COLUMN `license_number` VARCHAR(255) NULL AFTER `contact_person`, +ADD COLUMN `registration_number` VARCHAR(255) NULL AFTER `license_number`, +ADD COLUMN `areas_served` TEXT NULL AFTER `registration_number`, +ADD COLUMN `is_verified` BOOLEAN NOT NULL DEFAULT FALSE AFTER `areas_served`, +ADD COLUMN `first_login` BOOLEAN NOT NULL DEFAULT TRUE AFTER `is_verified`; \ No newline at end of file diff --git a/listings.php b/listings.php new file mode 100644 index 0000000..98372c8 --- /dev/null +++ b/listings.php @@ -0,0 +1,19 @@ + + + +
+

Restaurant Dashboard

+

Welcome, !

+

This is where you will manage your food listings.

+
+ + \ No newline at end of file diff --git a/login.php b/login.php index c6f9dec..d8c98a4 100644 --- a/login.php +++ b/login.php @@ -1,6 +1,11 @@ fetch(); if ($user && password_verify($password, $user['password'])) { - session_start(); $_SESSION['user_id'] = $user['id']; $_SESSION['user_email'] = $user['email']; - header("Location: dashboard.php"); - exit; + $_SESSION['user_role'] = $user['role']; + + if ($user['first_login']) { + $updateStmt = $pdo->prepare("UPDATE users SET first_login = 0 WHERE id = ?"); + $updateStmt->execute([$user['id']]); + // Here you could redirect to a welcome page, e.g., header("Location: welcome.php"); + } + + // Role-based redirection + switch ($user['role']) { + case 'ngo': + header("Location: dashboard.php"); + exit; + case 'restaurant': + header("Location: listings.php"); + exit; + default: + // Default redirect for any other roles + header("Location: dashboard.php"); + exit; + } } else { $errors[] = 'Invalid email or password'; } diff --git a/signup-ngo.php b/signup-ngo.php new file mode 100644 index 0000000..45e75e4 --- /dev/null +++ b/signup-ngo.php @@ -0,0 +1,109 @@ +prepare("SELECT id FROM users WHERE email = ?"); + $stmt->execute([$email]); + if ($stmt->fetch()) { + $errors[] = 'Email address is already registered'; + } + } catch (PDOException $e) { + $errors[] = "Database error: " . $e->getMessage(); + } + } + + if (empty($errors)) { + try { + $hashed_password = password_hash($password, PASSWORD_DEFAULT); + $pdo = db(); + $stmt = $pdo->prepare( + "INSERT INTO users (email, password, role, name, address, contact_person, registration_number, areas_served) VALUES (?, ?, 'ngo', ?, ?, ?, ?, ?)" + ); + $stmt->execute([$email, $hashed_password, $name, $address, $contact_person, $registration_number, $areas_served]); + + // Redirect to login page on success + header("Location: login.php?registration=success"); + exit; + } catch (PDOException $e) { + $errors[] = "Database error on registration: " . $e->getMessage(); + } + } +} +?> + + +
+
+
+

NGO Registration

+ + +
+ +

+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + \ No newline at end of file diff --git a/signup-restaurant.php b/signup-restaurant.php new file mode 100644 index 0000000..5a331d8 --- /dev/null +++ b/signup-restaurant.php @@ -0,0 +1,103 @@ +prepare("SELECT id FROM users WHERE email = ?"); + $stmt->execute([$email]); + if ($stmt->fetch()) { + $errors[] = 'Email address is already registered'; + } + } catch (PDOException $e) { + $errors[] = "Database error: " . $e->getMessage(); + } + } + + if (empty($errors)) { + try { + $hashed_password = password_hash($password, PASSWORD_DEFAULT); + $pdo = db(); + $stmt = $pdo->prepare( + "INSERT INTO users (email, password, role, name, address, contact_person, license_number) VALUES (?, ?, 'restaurant', ?, ?, ?, ?)" + ); + $stmt->execute([$email, $hashed_password, $name, $address, $contact_person, $license_number]); + + // Redirect to login page on success + header("Location: login.php?registration=success"); + exit; + } catch (PDOException $e) { + $errors[] = "Database error on registration: " . $e->getMessage(); + } + } +} +?> + + +
+
+
+

Restaurant Registration

+ + +
+ +

+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + \ No newline at end of file diff --git a/signup.php b/signup.php index 2be4b90..0fb59e5 100644 --- a/signup.php +++ b/signup.php @@ -1,87 +1,15 @@ -prepare("SELECT id FROM users WHERE email = ?"); - $stmt->execute([$email]); - if ($stmt->fetch()) { - $errors[] = 'Email already exists'; - } else { - $hashed_password = password_hash($password, PASSWORD_DEFAULT); - - $stmt = $pdo->prepare("INSERT INTO users (email, password) VALUES (?, ?)"); - $stmt->execute([$email, $hashed_password]); - - $success = 'Registration successful! You can now login.'; - } - } catch (PDOException $e) { - $errors[] = "Database error: " . $e->getMessage(); - } - } -} -?>
-
-

Sign Up

- - -
- -

- -
- - - -
-

-
- -
-
- - -
-
- - -
-
- - -
- -
- +
+

Join FoodBridge

+

Are you a restaurant wanting to donate surplus food, or an NGO ready to distribute it to those in need? Choose your path below to get started.

+ +