diff --git a/database.sql b/database.sql new file mode 100644 index 0000000..5bf3c32 --- /dev/null +++ b/database.sql @@ -0,0 +1,35 @@ +-- Create the database +CREATE DATABASE IF NOT EXISTS spik_en_span; +USE spik_en_span; + +-- Table for storing ticket information +CREATE TABLE tickets ( + id INT AUTO_INCREMENT PRIMARY KEY, + ticket_id VARCHAR(255) NOT NULL UNIQUE, + name VARCHAR(255) NOT NULL, + email VARCHAR(255) NOT NULL, + category ENUM('adult', 'child', 'group') NOT NULL, + quantity INT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- Table for storing employee login credentials +CREATE TABLE employees ( + id INT AUTO_INCREMENT PRIMARY KEY, + username VARCHAR(255) NOT NULL UNIQUE, + password_hash VARCHAR(255) NOT NULL, -- Store hashed passwords + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- Table for storing scanned ticket logs +CREATE TABLE scanned_tickets ( + id INT AUTO_INCREMENT PRIMARY KEY, + ticket_id VARCHAR(255) NOT NULL, + scanned_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + is_valid BOOLEAN NOT NULL DEFAULT TRUE, + UNIQUE (ticket_id) +); + +-- Insert a default employee account (username: admin, password: password) +INSERT INTO employees (username, password_hash) +VALUES ('admin', SHA2('password', 256)); -- Replace with a secure password hashing method diff --git a/employee-login.html b/employee-login.html new file mode 100644 index 0000000..9e92785 --- /dev/null +++ b/employee-login.html @@ -0,0 +1,44 @@ + + + + + + Medewerker Login + + + + + +
+

Medewerker Login

+
+
+ + +
+
+ + +
+ +
+
+ + + + diff --git a/index.html b/index.html index ebf5c9a..b94e194 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,33 @@ - +
+

Koop je tickets voor Spik en Span!

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
diff --git a/script.js b/script.js index e69de29..3cb3228 100644 --- a/script.js +++ b/script.js @@ -0,0 +1,25 @@ +document.getElementById('ticketForm').addEventListener('submit', function (e) { + e.preventDefault(); + + const name = document.getElementById('name').value; + const email = document.getElementById('email').value; + const category = document.getElementById('ticketCategory').value; + const quantity = document.getElementById('ticketQuantity').value; + + // Generate a unique ticket ID (for simplicity, using timestamp) + const ticketId = `TICKET-${Date.now()}`; + + // Generate QR code content + const qrContent = `Name: ${name}, Email: ${email}, Category: ${category}, Quantity: ${quantity}, Ticket ID: ${ticketId}`; + + // Display QR code (using a library like QRCode.js) + const qrCodeContainer = document.getElementById('qrCodeContainer'); + qrCodeContainer.innerHTML = ''; // Clear previous QR code + const qrCode = new QRCode(qrCodeContainer, { + text: qrContent, + width: 200, + height: 200, + }); + + alert('Ticket(s) successfully generated!'); +}); diff --git a/style.css b/style.css index e69de29..3a3ce43 100644 --- a/style.css +++ b/style.css @@ -0,0 +1,8 @@ +#ticketForm { + max-width: 500px; + margin: 0 auto; +} + +#qrCodeContainer { + margin-top: 20px; +}