Some checks failed
Deploy Development / deploy (push) Failing after 4s
Docker & Deployment: - docker-compose.yml (Prod: Port 3003/8003) - docker-compose.dev-env.yml (Dev: Port 3098/8098) - Backend Dockerfile (Python 3.12-slim) - Frontend Dockerfile (Node 20 + Nginx) - Gitea Actions (deploy-dev.yml, deploy-prod.yml) Frontend: - React 18 + Vite setup - package.json, vite.config.js, index.html - App.jsx (minimal with version display) - api.js (complete API client) - app.css + AuthContext from Mitai - main.jsx entry point Backend Migrations: - 001_auth_membership.sql (Auth + Features + Tier Limits) - 002_organization.sql (Clubs, Divisions, Training Groups) - 003_catalogs.sql (Skills + Methods with sample data) Documentation: - .claude/rules/ (ARCHITECTURE, CODING_RULES, etc.) - SHINKAN_PROJECT_SETUP.md (technical setup guide) Server: - Directories created on Pi: /home/lars/docker/shinkan[-dev] - Gitea Runner configured and running Ready for first deployment to dev.shinkan.jinkendo.de version: 0.1.0 date: 2026-04-21
65 lines
2.9 KiB
SQL
65 lines
2.9 KiB
SQL
-- Migration 003: Catalogs (Skills & Training Methods)
|
|
-- Erstellt: 2026-04-21
|
|
-- Beschreibung: Fähigkeiten- und Methodenkataloge
|
|
|
|
-- Skills (Fähigkeiten) - global
|
|
CREATE TABLE skills (
|
|
id SERIAL PRIMARY KEY,
|
|
name VARCHAR(200) NOT NULL,
|
|
category VARCHAR(100), -- kihon, kumite, kata, selbstverteidigung, fitness
|
|
description TEXT,
|
|
importance INT CHECK (importance BETWEEN 1 AND 5),
|
|
keywords JSONB,
|
|
status VARCHAR(50) DEFAULT 'active',
|
|
created_at TIMESTAMP DEFAULT NOW(),
|
|
updated_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_skills_category ON skills(category);
|
|
CREATE INDEX idx_skills_status ON skills(status);
|
|
|
|
-- Training Methods (Trainingsmethoden) - global
|
|
CREATE TABLE training_methods (
|
|
id SERIAL PRIMARY KEY,
|
|
name VARCHAR(200) NOT NULL,
|
|
abbreviation VARCHAR(20),
|
|
category VARCHAR(100), -- intervall, rollenspiel, zirkel, koordination, etc.
|
|
description TEXT,
|
|
typical_duration INT, -- in Minuten
|
|
typical_group_size VARCHAR(50),
|
|
related_skills JSONB, -- [skill_id, skill_id, ...]
|
|
keywords JSONB,
|
|
status VARCHAR(50) DEFAULT 'active',
|
|
created_at TIMESTAMP DEFAULT NOW(),
|
|
updated_at TIMESTAMP DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_methods_category ON training_methods(category);
|
|
CREATE INDEX idx_methods_status ON training_methods(status);
|
|
|
|
-- Insert Basis-Skills (Beispiele)
|
|
INSERT INTO skills (name, category, description, importance) VALUES
|
|
('Dachi Waza', 'kihon', 'Standtechniken und Körperhaltung', 5),
|
|
('Tsuki Waza', 'kihon', 'Fausttechniken', 5),
|
|
('Keri Waza', 'kihon', 'Fußtechniken', 5),
|
|
('Uke Waza', 'kihon', 'Abwehrtechniken', 5),
|
|
('Distanzkontrolle', 'kumite', 'Kontrolle der Kampfdistanz', 4),
|
|
('Beinarbeit', 'kumite', 'Fußarbeit und Bewegung', 4),
|
|
('Reaktionsfähigkeit', 'kumite', 'Schnelle Reaktion auf Angriffe', 4),
|
|
('Aufmerksamkeit', 'selbstverteidigung', 'Gefahrenbewusstsein und Aufmerksamkeit', 5),
|
|
('Selbstbehauptung', 'selbstverteidigung', 'Selbstsicheres Auftreten', 5),
|
|
('Ausdauer', 'fitness', 'Kardiovaskuläre Ausdauer', 3),
|
|
('Kraft', 'fitness', 'Muskelkraft', 3),
|
|
('Flexibilität', 'fitness', 'Beweglichkeit', 3);
|
|
|
|
-- Insert Basis-Methods (Beispiele)
|
|
INSERT INTO training_methods (name, abbreviation, category, description, typical_duration) VALUES
|
|
('Intervalltraining', 'INT', 'kondition', 'Wechsel zwischen Belastung und Erholung', 20),
|
|
('Zirkeltraining', 'ZIR', 'kondition', 'Mehrere Stationen mit verschiedenen Übungen', 30),
|
|
('Rollenspiel', 'ROL', 'didaktik', 'Szenario-basiertes Training', 15),
|
|
('Strukturierte Übung', 'STR', 'didaktik', 'Schrittweise Anleitung einer Technik', 10),
|
|
('Partnerübung', 'PAR', 'didaktik', 'Training zu zweit', 15),
|
|
('Koordinationstraining', 'KOO', 'koordination', 'Schulung von Koordination und Balance', 15),
|
|
('Dauermethode', 'DAU', 'kondition', 'Kontinuierliche Belastung ohne Pausen', 20),
|
|
('Plyometrisches Training', 'PLY', 'kraft', 'Explosivkraft durch Sprungübungen', 15);
|