Songie je aplikace pro generování a přehrávání hudby ve formátu MusicXML. Umožňuje kreativní tvorbu hudebních partitur, jejich úpravu a export v jednom přehledném prostředí. Cílem aplikace je usnadnit proces kompozice a poskytovat moderní nástroje pro hudebníky i skladatele.
Generování a export do MusicXML Možnost přehrávání vytvořené hudby Editace a úpravy partitur Uživatelsky přívětivé rozhraní pro rychlou práci s notami Přihlašování pomocí Google účtu
React Tailwind CSS Vite
FastAPI (Python) OAuth2 pro autentizaci MusicXML jako výstupní formát
songie/
├── .env # Konfigurační soubor (CLIENT_ID, CLIENT_SECRET, ...)
├── client/ # React aplikace
└── server/ # FastAPI backend
├── auth/ # Autentizační logika
├── core/ # Základní konfigurace
└── main.py # Hlavní aplikační soubor
Naklonujte repozitář Vytvořte soubor .env v root složce s následujícími proměnnými:
CLIENT_ID=váš_google_client_id
CLIENT_SECRET=váš_google_client_secret
Otevřete PowerShell a přejděte do složky server:
cd path\to\project\songie\serverAktivujte virtuální prostředí:
venv\Scripts\activateNainstalujte závislosti:
pip install fastapi uvicorn python-dotenv authlib httpx starlette itsdangerousSpusťte server:
uvicorn main:app --reloadServer běží na: http://127.0.0.1:8000
Otevřete nový PowerShell a přejděte do složky client:
cd path\to\project\songie\clientNainstalujte závislosti:
npm installSpusťte vývojový server:
npm run devKlient běží na: http://127.0.0.1:5173
Pokud server nejde vypnout pomocí CTRL+C, použijte:
taskkill /IM python.exe /F/auth/login/google - přihlášení přes Google /auth/google/callback - callback po přihlášení /auth/logout - odhlášení /auth/me - info o přihlášeném uživateli /test - testovací endpoint
Přihlášení:
http://localhost:8000/auth/login/google
Získání informací o přihlášeném uživateli:
Test chráněného endpointu:
http://localhost:8000/auth/protected-test
Odhlášení (POST request):
http://localhost:8000/auth/logout
V produkci nastavit https_only=True pro SessionMiddleware Session vyprší po 24 hodinách Pro vývoj je CORS povoleno pro http://localhost:5173