README + SQL
This commit is contained in:
2025-09-03 19:53:16 +02:00
commit 2cee105670
3 changed files with 97 additions and 0 deletions

1
README.md Normal file
View File

@@ -0,0 +1 @@
Aplikace pro organizování šifrovací hry 13 klíčů.

57
create.sql Normal file
View File

@@ -0,0 +1,57 @@
DROP TABLE IF EXISTS TEAMS;
DROP TABLE IF EXISTS POSITIONS;
DROP TABLE IF EXISTS QR_CODES;
DROP INDEX IF EXISTS idx_qr_uid;
DROP TABLE IF EXISTS CIPHERS;
DROP TABLE IF EXISTS DIFFICULTY_LEVELS;
DROP TABLE IF EXISTS TASKS;
DROP TABLE IF EXISTS ADMINS;
CREATE TABLE TEAMS (
id INTEGER PRIMARY KEY,
name VARCHAR(100) NOT NULL,
city VARCHAR(100) NOT NULL,
difficulty_level INTEGER NOT NULL,
password VARCHAR(255) NOT NULL,
last_cipher INTEGER DEFAULT 0,
penalty INTEGER DEFAULT 0,
FOREIGN KEY (difficulty_level) REFERENCES DIFFICULTY_LEVELS(id)
);
CREATE TABLE POSITIONS (
id INTEGER PRIMARY KEY,
gps VARCHAR(100) NOT NULL,
clue TEXT NOT NULL
);
CREATE TABLE QR_CODES (
id INTEGER PRIMARY KEY,
position_id INTEGER NOT NULL,
uid VARCHAR(100) NOT NULL,
FOREIGN KEY (position_id) REFERENCES positions(id)
);
CREATE UNIQUE INDEX idx_qr_uid ON QR_codes(uid);
CREATE TABLE CIPHERS (
id INTEGER PRIMARY KEY,
assignment TEXT NOT NULL,
solution TEXT NOT NULL,
clue TEXT NOT NULL
);
CREATE TABLE DIFFICULTY_LEVELS (
id INTEGER PRIMARY KEY,
level_name VARCHAR(100) NOT NULL
);
CREATE TABLE TASKS (
id INTEGER PRIMARY KEY,
cipher_id INTEGER NOT NULL,
position_id INTEGER NOT NULL,
difficulty_level INTEGER NOT NULL,
order_num INTEGER NOT NULL,
end_clue TEXT NOT NULL,
FOREIGN KEY (cipher_id) REFERENCES CIPHERS(id),
FOREIGN KEY (position_id) REFERENCES POSITIONS(id),
FOREIGN KEY (difficulty_level) REFERENCES DIFFICULTY_LEVELS(id)
);
CREATE TABLE ADMINS (
id INTEGER PRIMARY KEY,
username VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL
);

39
insertTestData.sql Normal file
View File

@@ -0,0 +1,39 @@
-- Vložení úrovní obtížnosti
INSERT INTO DIFFICULTY_LEVELS (id, level_name) VALUES
(1, 'Lehká'),
(2, 'Střední'),
(3, 'Těžká');
-- Vložení týmů
INSERT INTO TEAMS (id, name, city, difficulty_level, password, last_cipher, penalty) VALUES
(1, 'Rychlé šípy', 'Praha', 1, 'heslo1', 0, 0),
(2, 'Vlčí smečka', 'Brno', 2, 'heslo2', 0, 10),
(3, 'Orli', 'Ostrava', 3, 'heslo3', 1, 5);
-- Vložení pozic
INSERT INTO POSITIONS (id, gps, clue) VALUES
(1, '50.087451,14.420671', 'Najdi sochu uprostřed náměstí.'),
(2, '49.195061,16.606836', 'Podívej se pod lavičku.'),
(3, '49.820923,18.262524', 'Hledej u velkého stromu.');
-- Vložení QR kódů
INSERT INTO QR_CODES (id, position_id, uid) VALUES
(1, 1, 'QR123ABC'),
(2, 2, 'QR456DEF'),
(3, 3, 'QR789GHI');
-- Vložení šifer
INSERT INTO CIPHERS (id, assignment, solution, clue) VALUES
(1, 'Rozlušti morseovku: ... --- ...', 'SOS', 'Použij tabulku morseovky.'),
(2, 'Najdi slovo v osmisměrce: KÓD', 'KÓD', 'Začni v levém horním rohu.'),
(3, 'Přelož do češtiny: HELLO', 'AHOJ', 'Použij slovník.');
-- Vložení úkolů
INSERT INTO TASKS (id, cipher_id, position_id, difficulty_level, order_num, end_clue) VALUES
(1, 1, 1, 1, 1, 'Pokračuj k dalšímu stanovišti.'),
(2, 2, 2, 2, 2, 'Hledej QR kód u stromu.'),
(3, 3, 3, 3, 3, 'Gratulujeme, jsi v cíli!');
-- Vložení admina
INSERT INTO ADMINS (id, username, password) VALUES
(1, 'admin', 'adminheslo');