HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/kw-schueler.bak.21032025/create_gamification_tables.sql
-- Tabelle für Schülerprofile
CREATE TABLE IF NOT EXISTS student_profiles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_name VARCHAR(255),
    xp_points INT DEFAULT 0,
    current_level INT DEFAULT 1,
    current_streak INT DEFAULT 0,
    last_submission_date DATE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Tabelle für erworbene Badges
CREATE TABLE IF NOT EXISTS student_badges (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_profile_id INT,
    badge_type VARCHAR(50),
    badge_name VARCHAR(100),
    badge_description TEXT,
    badge_icon VARCHAR(255),
    awarded_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (student_profile_id) REFERENCES student_profiles(id)
);

-- Tabelle für Kompetenzradar-Daten
CREATE TABLE IF NOT EXISTS competency_ratings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_profile_id INT,
    language_rating INT DEFAULT 0,
    argumentation_rating INT DEFAULT 0,
    content_rating INT DEFAULT 0,
    structure_rating INT DEFAULT 0,
    creativity_rating INT DEFAULT 0,
    submission_id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (student_profile_id) REFERENCES student_profiles(id),
    FOREIGN KEY (submission_id) REFERENCES student_solutions(id)
);

-- Tabelle mit vorgefertigten Badge-Definitionen
CREATE TABLE IF NOT EXISTS badge_definitions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    badge_type VARCHAR(50) NOT NULL,
    badge_name VARCHAR(100) NOT NULL,
    badge_description TEXT,
    badge_icon VARCHAR(255),
    xp_reward INT DEFAULT 0,
    keywords TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Einfügen einiger vorgefertigter Badges
INSERT INTO badge_definitions (badge_type, badge_name, badge_description, badge_icon, xp_reward, keywords)
VALUES 
('feedback', 'Sprachvirtuose', 'Ausgezeichnete sprachliche Gestaltung', 'language_badge.svg', 100, 'sprachlich,ausdrucksstark,formuliert,Ausdruck,Sprache,Wortwahl'),
('feedback', 'Logiker', 'Hervorragende Argumentationsstruktur', 'logic_badge.svg', 100, 'logisch,schlüssig,Argument,nachvollziehbar,begründet,Argumentation'),
('feedback', 'Kreativkünstler', 'Besonders originelle und kreative Ansätze', 'creativity_badge.svg', 100, 'kreativ,originell,einfallsreich,innovativ,neuartig,ideenreich'),
('feedback', 'Faktenfuchs', 'Hervorragende Recherche und detaillierte Fakten', 'facts_badge.svg', 100, 'Fakt,detailliert,recherchiert,belegt,Quelle,Beispiel,Beleg'),
('feedback', 'Strukturmeister', 'Perfekt strukturierte Arbeit', 'structure_badge.svg', 100, 'Struktur,Gliederung,Aufbau,gegliedert,übersichtlich,Abschnitt'),
('activity', 'Einsteiger', 'Erste eingereichte Arbeit', 'beginner_badge.svg', 50, NULL),
('activity', 'Fleißige Biene', 'Fünf eingereichte Arbeiten', 'busy_bee_badge.svg', 100, NULL),
('activity', 'Stammkunde', 'Zehn eingereichte Arbeiten', 'regular_badge.svg', 200, NULL),
('activity', 'Meisterschüler', '25 eingereichte Arbeiten', 'master_badge.svg', 300, NULL),
('streak', 'Zuverlässig', 'Drei Wochen in Folge mindestens eine Einreichung', 'reliable_badge.svg', 150, NULL),
('streak', 'Unermüdlich', 'Fünf Wochen in Folge mindestens eine Einreichung', 'tireless_badge.svg', 250, NULL),
('streak', 'Ausdauernd', 'Zehn Wochen in Folge mindestens eine Einreichung', 'endurance_badge.svg', 400, NULL);