v2
This commit is contained in:
parent
d47e350516
commit
a29976994c
@ -3,5 +3,5 @@ CREATE TABLE IF NOT EXISTS feedback_submissions (
|
||||
name VARCHAR(255) NOT NULL,
|
||||
email VARCHAR(255) NOT NULL,
|
||||
message TEXT NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
submitted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
@ -1,6 +1,6 @@
|
||||
CREATE TABLE IF NOT EXISTS `surveys` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`title` VARCHAR(255) NOT NULL,
|
||||
`description` TEXT,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE IF NOT EXISTS surveys (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
description TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
CREATE TABLE IF NOT EXISTS `survey_questions` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`survey_id` INT NOT NULL,
|
||||
`question_text` TEXT NOT NULL,
|
||||
`question_type` VARCHAR(50) NOT NULL, -- e.g., 'text', 'textarea', 'rating', 'multiple-choice'
|
||||
`options` TEXT, -- For multiple-choice questions, store options as a JSON array or comma-separated values
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`survey_id`) REFERENCES `surveys`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE IF NOT EXISTS survey_questions (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
survey_id INT NOT NULL,
|
||||
question_text TEXT NOT NULL,
|
||||
question_type VARCHAR(50) NOT NULL, -- e.g., 'text', 'multiple-choice', 'rating'
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (survey_id) REFERENCES surveys(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
CREATE TABLE IF NOT EXISTS `survey_answers` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`submission_id` INT NOT NULL,
|
||||
`question_id` INT NOT NULL,
|
||||
`answer_text` TEXT,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`submission_id`) REFERENCES `feedback_submissions`(`id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`question_id`) REFERENCES `survey_questions`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE IF NOT EXISTS survey_answers (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
submission_id INT NOT NULL,
|
||||
question_id INT NOT NULL,
|
||||
answer_text TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (submission_id) REFERENCES feedback_submissions(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (question_id) REFERENCES survey_questions(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`username` VARCHAR(50) NOT NULL UNIQUE,
|
||||
`email` VARCHAR(100) NOT NULL UNIQUE,
|
||||
`password` VARCHAR(255) NOT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
username VARCHAR(255) NOT NULL UNIQUE,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
email VARCHAR(255) NOT NULL UNIQUE,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
CREATE TABLE IF NOT EXISTS `roles` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`role_name` VARCHAR(50) NOT NULL UNIQUE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE IF NOT EXISTS roles (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
role_name VARCHAR(50) NOT NULL UNIQUE
|
||||
);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
CREATE TABLE IF NOT EXISTS `user_roles` (
|
||||
`user_id` INT NOT NULL,
|
||||
`role_id` INT NOT NULL,
|
||||
PRIMARY KEY (`user_id`, `role_id`),
|
||||
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`role_id`) REFERENCES `roles`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE IF NOT EXISTS user_roles (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id INT NOT NULL,
|
||||
role_id INT NOT NULL,
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
@ -1 +1 @@
|
||||
INSERT INTO `roles` (`role_name`) VALUES ('Admin'), ('Respondent');
|
||||
INSERT IGNORE INTO `roles` (`role_name`) VALUES ('Admin'), ('Respondent');
|
||||
@ -1,10 +1,11 @@
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<p>© <?php echo date('Y'); ?> Your Real Feedback. All Rights Reserved.</p>
|
||||
<p><a href="/privacy.php">Privacy Policy</a></p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
|
||||
<footer class="footer mt-auto py-3 bg-light">
|
||||
<div class="container text-center">
|
||||
<span class="text-muted">© <?= date('Y') ?> Your Real Feedback. All rights reserved. | <a href="privacy.php">Privacy Policy</a></span>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script>
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,47 +1,31 @@
|
||||
<?php
|
||||
$pageTitle = isset($pageTitle) ? $pageTitle : "Your Real Feedback";
|
||||
$description = isset($description) ? $description : "Provide your feedback to help us improve.";
|
||||
$keywords = isset($keywords) ? $keywords : "feedback, survey, customer feedback, product feedback, flatlogic, user survey, feedback app";
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title><?php echo htmlspecialchars($pageTitle); ?></title>
|
||||
<meta name="description" content="<?php echo htmlspecialchars($description); ?>">
|
||||
<meta name="keywords" content="<?php echo htmlspecialchars($keywords); ?>">
|
||||
|
||||
<!-- Open Graph / Facebook -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="<?php echo htmlspecialchars($pageTitle); ?>">
|
||||
<meta property="og:description" content="<?php echo htmlspecialchars($description); ?>">
|
||||
<meta property="og:image" content="<?php echo isset($_SERVER['PROJECT_IMAGE_URL']) ? htmlspecialchars($_SERVER['PROJECT_IMAGE_URL']) : ''; ?>">
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta property="twitter:card" content="summary_large_image">
|
||||
<meta property="twitter:title" content="<?php echo htmlspecialchars($pageTitle); ?>">
|
||||
<meta property="twitter:description" content="<?php echo htmlspecialchars($description); ?>">
|
||||
<meta property="twitter:image" content="<?php echo isset($_SERVER['PROJECT_IMAGE_URL']) ? htmlspecialchars($_SERVER['PROJECT_IMAGE_URL']) : ''; ?>">
|
||||
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
<title><?= isset($pageTitle) ? htmlspecialchars($pageTitle) : 'Your Real Feedback' ?></title>
|
||||
<meta name="description" content="<?= isset($description) ? htmlspecialchars($description) : 'Provide your valuable feedback to help us improve.' ?>">
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class="header">
|
||||
<div class="container d-flex justify-content-between align-items-center">
|
||||
<a href="/" class="logo">Your Real Feedback</a>
|
||||
<nav>
|
||||
<?php if (isset($_SESSION['user_id'])): ?>
|
||||
<?php if (in_array('Admin', $_SESSION['user_roles'])):
|
||||
<a href="admin.php" class="btn btn-sm btn-outline-secondary">Admin</a>
|
||||
<?php endif; ?>
|
||||
<a href="logout.php" class="btn btn-sm btn-outline-secondary">Logout</a>
|
||||
<?php else: ?>
|
||||
<a href="login.php" class="btn btn-sm btn-outline-secondary">Login</a>
|
||||
<a href="register.php" class="btn btn-sm btn-primary">Register</a>
|
||||
<?php endif; ?>
|
||||
</nav>
|
||||
<header class="header">
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="index.php">Your Real Feedback</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="index.php">Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="admin.php">Admin</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</nav>
|
||||
</header>
|
||||
Loading…
x
Reference in New Issue
Block a user