shinkan-jinkendo/README.md
Lars b6de1f15ea
All checks were successful
Deploy Development / deploy (push) Successful in 34s
Test Suite / pytest-backend (push) Successful in 25s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 7s
Test Suite / playwright-tests (push) Successful in 23s
feat(media): implement centralized media archive and inline media linking
- Introduced a centralized media archive (`/media`) with lifecycle management, including soft delete and recovery options.
- Enhanced media upload functionality to support multiple files and automatic type inference.
- Updated documentation to reflect the new media architecture and inline media linking specifications.
- Version bump to 0.8.59 to accommodate changes in media handling and database schema.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-08 10:56:43 +02:00

119 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
- **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`
## 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