2026-04-21 14:26:12 +02:00
|
|
|
|
# Shinkan Jinkendo (真観)
|
|
|
|
|
|
|
|
|
|
|
|
**Trainer- und Vereinsplattform für Kampfsport-Trainingsplanung**
|
|
|
|
|
|
|
|
|
|
|
|
Teil der Jinkendo-App-Familie (人拳道)
|
|
|
|
|
|
|
|
|
|
|
|
## Was ist Shinkan?
|
|
|
|
|
|
|
|
|
|
|
|
Shinkan ist eine moderne Web- und Mobile-App für Kampfsport-Trainer und Vereine. Im Fokus stehen:
|
|
|
|
|
|
|
|
|
|
|
|
- **Übungsverwaltung:** Zentrale Übungsbibliothek mit Suche und Filter
|
|
|
|
|
|
- **Trainingsplanung:** Effiziente Planung für Gruppen und Termine
|
|
|
|
|
|
- **Kataloge:** Fähigkeiten und Trainingsmethoden strukturiert verwalten
|
|
|
|
|
|
- **Standardisierung:** Vereinsstandards und wiederverwendbare Vorlagen
|
|
|
|
|
|
- **Freigabe:** Gesteuerte Veröffentlichung von Inhalten
|
2026-05-08 10:56:43 +02:00
|
|
|
|
- **Medien:** Zentrale **Medienbibliothek** (`/media`), Archiv mit Lifecycle/Papierkorb, Verknüpfung in Übungen — Norm: `.claude/docs/technical/MEDIA_ASSETS_AND_ARCHIVE_SPEC.md` · Einstieg: `docs/HANDOVER.md`
|
2026-04-21 14:26:12 +02:00
|
|
|
|
|
|
|
|
|
|
## Nicht in Shinkan
|
|
|
|
|
|
|
|
|
|
|
|
- Kein persönliches Sportler-Tracking (dafür: Mitai Jinkendo)
|
|
|
|
|
|
- Kein Gürtel-Tracking im MVP
|
|
|
|
|
|
- Keine individuellen Technik-Fortschritte im MVP
|
|
|
|
|
|
|
|
|
|
|
|
## Tech-Stack
|
|
|
|
|
|
|
|
|
|
|
|
- **Frontend:** React 18 + Vite + PWA
|
|
|
|
|
|
- **Backend:** FastAPI (Python 3.12)
|
|
|
|
|
|
- **Datenbank:** PostgreSQL 16
|
|
|
|
|
|
- **Container:** Docker + Docker Compose
|
|
|
|
|
|
- **Auth:** Token-basiert + bcrypt
|
|
|
|
|
|
|
|
|
|
|
|
## Installation (Lokal)
|
|
|
|
|
|
|
|
|
|
|
|
### Voraussetzungen
|
|
|
|
|
|
- Node 20+
|
|
|
|
|
|
- Python 3.12+
|
|
|
|
|
|
- PostgreSQL 16
|
|
|
|
|
|
- Docker + Docker Compose
|
|
|
|
|
|
|
|
|
|
|
|
### Setup
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Repository clonen
|
|
|
|
|
|
git clone http://192.168.2.144:3000/Lars/shinkan-jinkendo.git
|
|
|
|
|
|
cd shinkan-jinkendo
|
|
|
|
|
|
|
|
|
|
|
|
# Environment-Variablen
|
|
|
|
|
|
cp .env.example .env
|
|
|
|
|
|
# .env anpassen!
|
|
|
|
|
|
|
|
|
|
|
|
# Backend
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
python -m venv venv
|
|
|
|
|
|
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
|
|
|
|
|
|
# Frontend
|
|
|
|
|
|
cd ../frontend
|
|
|
|
|
|
npm install
|
|
|
|
|
|
|
|
|
|
|
|
# Datenbank
|
|
|
|
|
|
docker compose up -d postgres
|
|
|
|
|
|
|
|
|
|
|
|
# Migrations (automatisch beim Start)
|
|
|
|
|
|
cd ../backend
|
|
|
|
|
|
python main.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Development
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Backend (Terminal 1)
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
|
uvicorn main:app --reload --port 8098
|
|
|
|
|
|
|
|
|
|
|
|
# Frontend (Terminal 2)
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
npm run dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Frontend: http://localhost:3098
|
|
|
|
|
|
Backend: http://localhost:8098
|
|
|
|
|
|
|
|
|
|
|
|
### Docker (Empfohlen)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Development
|
|
|
|
|
|
docker compose -f docker-compose.dev-env.yml up --build
|
|
|
|
|
|
|
|
|
|
|
|
# Production
|
|
|
|
|
|
docker compose up --build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Deployment
|
|
|
|
|
|
|
|
|
|
|
|
**Production:** https://shinkan.jinkendo.de
|
|
|
|
|
|
**Development:** https://dev.shinkan.jinkendo.de
|
|
|
|
|
|
|
|
|
|
|
|
Auto-Deploy via Gitea Actions:
|
|
|
|
|
|
- `develop` → Dev-Umgebung
|
|
|
|
|
|
- `main` → Prod-Umgebung
|
|
|
|
|
|
|
|
|
|
|
|
## Dokumentation
|
|
|
|
|
|
|
|
|
|
|
|
- **Setup:** `.claude/docs/working/SHINKAN_PROJECT_SETUP.md`
|
|
|
|
|
|
- **Anforderungen:** `.claude/docs/functional/SHINKAN_REQUIREMENTS.md`
|
|
|
|
|
|
- **Architektur:** `.claude/rules/ARCHITECTURE.md`
|
|
|
|
|
|
|
|
|
|
|
|
## Lizenz
|
|
|
|
|
|
|
|
|
|
|
|
Proprietary – Lars Stommer
|
|
|
|
|
|
|
|
|
|
|
|
## Kontakt
|
|
|
|
|
|
|
|
|
|
|
|
- **Entwickler:** Lars Stommer
|
|
|
|
|
|
- **E-Mail:** stommer@gmail.com
|
|
|
|
|
|
- **Gitea:** http://192.168.2.144:3000/Lars/shinkan-jinkendo
|