Files
musicCalendar/README.md
T
2026-09-17 22:42:50 +02:00

345 lines
11 KiB
Markdown
Raw 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.
# 🎸 Denní Hudební Doporučení: 365 Alb na Celý Rok 💿
> **Každý den jedno ikonické grunge nebo nu-metal album. Prozkoumejte historii rockové hudby!**
[![Live Demo](https://img.shields.io/badge/Live-Demo-red?style=for-the-badge&logo=google-chrome)](https://music.lukan.cz)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Codeberg](https://img.shields.io/badge/Codeberg-Repo-blue?style=for-the-badge)](https://codeberg.org/Kankys/musicCalendar)
---
## 🎵 O projektu
**Denní Hudební Doporučení** je webová aplikace, která každý den nabízí jedno vybrané album z žánrů **grunge** a **nu-metal**. Projekt vznikl jako alternativa k algoritmickým doporučením streamovacích služeb, která nás uzavírají do bubliny známých skladeb.
### 🎯 Hlavní cíle
- 🎶 **Každý den jedno album** - 365 alb na celý rok 2026
- 🔍 **Objevování hudby** - Méně známá, ale kvalitní alba
- 🎸 **Grunge & Nu-Metal** - Focus na ikonické žánry 90. let
- 💡 **Jednoduchost** - Žádné složité vyhledávání, jen čistý poslech
### 🌟 Proč tento projekt?
> "Všimli jste si, jak nás algoritmy Spotify a dalších služeb neustále točí v kruhu? Nabízejí nám pořád to samé, co už známe. Řekl jsem si: to není pro mne. Chtěl jsem se vrátit k poslechu – od první do poslední skladby."
---
## ✨ Funkce
### 🎨 Design & UX
- 🖤 **Temný metalový vzhled** - Inspirován grunge a nu-metal estetikou
- ✨ **Glitch animace** - Dynamické efekty na nadpisech
- 🎭 **Pulzující prvky** - Červená záře kolem alb a tlačítek
- 📱 **Responsive design** - Optimalizováno pro všechny zařízení
- 🎯 **Staggered animace** - Vlnový efekt při načítání archivu
### 🔧 Technické vlastnosti
- ⚡ **Rychlé načítání** - Žádné externí API, vše lokálně
- 🗓️ **Automatické datum** - Zobrazení alba pro aktuální den
- 📚 **Archiv alb** - Prohlížení minulých doporučení
- 🔗 **Streaming integrace** - Přímé odkazy na Tidal a Spotify
- 📊 **Vlastní analytics** - Bez externího trackingu
---
## 🚀 Rychlý start
### 🌐 Online verze
Aplikaci můžete vyzkoušet přímo online:
👉 [https://music.lukan.cz](https://music.lukan.cz)
### 💻 Lokální spuštění
#### Požadavky
- Moderní webový prohlížeč (Chrome, Firefox, Edge, Safari)
- Žádné další závislosti - aplikace běží čistě v prohlížeči
#### Spuštění
1. Naklonujte repozitář:
```bash
git clone https://codeberg.org/Kankys/musicCalendar.git
cd musicCalendar
```
2. Otevřete hlavní stránku ve svém prohlížeči:
```bash
# Na Linuxu/Macu
xdg-open web/index.html # nebo open web/index.html
# Na Windows
start web/index.html
```
3. Nebo spusťte jednoduchý server:
```bash
# Python 3
python3 -m http.server 8000 --directory web
# Node.js (npx)
npx serve web
```
Pak navštivte: [http://localhost:8000](http://localhost:8000)
---
## 📁 Struktura projektu
```
musicCalendar/
├── web/ # Hlavní webová aplikace
│ ├── index.html # Hlavní stránka
│ ├── about.html # O projektu
│ ├── gdpr.html # Ochrana soukromí
│ ├── script.js # Hlavní logika
│ ├── scriptabout.js # Logika pro about stránku
│ ├── musicData.js # Databáze 365 alb
│ ├── style.css # Hlavní styly
│ └── img/ # Obrázky
│ ├── 4525586.jpg # Pozadí
│ ├── electric-guitar_12494348.png # Favicon
│ └── vyzva-EDIT.jpg # Logo
├── test/ # Testy (Playwright)
│ ├── tests/
│ │ └── homePage.test.ts
│ ├── assets/pages/
│ │ └── HomePage.ts
│ └── package.json
├── .htaccess # HTTPS přesměrování
├── LICENSE # MIT License
├── README.md # Tento soubor
└── DOCUMENTATION.md # Komplexní dokumentace
```
---
## 🎵 Databáze alb
### 📊 Statistiky
- **Počet alb**: 365 (pro celý rok 2026)
- **Datumové rozpětí**: 1. ledna 2026 - 31. prosince 2026
- **Soubor**: `web/musicData.js` (4011 řádků)
### 🎯 Žánry a umělci
#### Grunge
Nirvana, Pearl Jam, Soundgarden, Alice in Chains, Stone Temple Pilots, Mudhoney, Temple of the Dog
#### Nu-Metal
Korn, Limp Bizkit, Linkin Park, Slipknot, System of a Down, Deftones, Papa Roach, Disturbed
#### Alternativní Metal
Tool, Primus, Helmet, Faith No More, Rage Against the Machine
#### Méně známé kapely
World Eaters, Relative Ash, Factory 81, Shuvel, NO One, Sw1tched, Twisted Method, Spike 1000, Boy Hits Car
### 📋 Struktura alba
```javascript
{
datum: "2026-01-01", // Datum ve formátu YYYY-MM-DD
umelec: "🎤 World Eaters", // Název kapely
nazev: "💿 Hounds of Blood", // Název alba
img: "URL k obálce", // Obrázek alba
vydano: "01.2025", // Datum vydání
recenze: "Popis alba...", // Recenze/doporučení
tidal: "URL na Tidal", // Odkaz na Tidal
spotify: "URL na Spotify" // Odkaz na Spotify
}
```
---
## 🔧 Technické detaily
### 🌐 Technologický stack
- **Frontend**: HTML5, CSS3, JavaScript (ES6+)
- **Design**: Responsive CSS, CSS Animations
- **Testování**: Playwright + TypeScript
- **Hosting**: VPS (VPSfree.cz)
- **Doména**: music.lukan.cz
### 🎨 Designové prvky
#### Barevná paleta
| Barva | Hex | Použití |
|-------|-----|---------|
| Tmavě červená | #8b0000 | Primární barva, bordery |
| Jasně červená | #cc0000 | Akcenty, hover efekty |
| Tmavě fialová | #2a0033 | Footer, sekundární prvky |
| Světle šedá | #e0e0e0 | Text, nadpisy |
| Středně šedá | #b0b0b0 | Vedlejší text |
#### Animace
- **Glitch efekt** na hlavním nadpise (každých 6 vteřin)
- **Pulzující border** na kartách alb
- **Staggered fade-up** pro archivní kartičky
- **Hover efekty** na všech interaktivních prvcích
- **Scanlines overlay** - starý TV efekt
---
## 🧪 Testování
### 🔧 Testovací framework
- **Playwright** - Moderní E2E testování
- **TypeScript** - Typová bezpečnost
- **Page Object Model** - Strukturovaný přístup
### 🚀 Spuštění testů
#### Lokálně
```bash
cd test
npm install
npm test
```
#### Na produkci
```bash
cd test
BASE_URL=https://music.lukan.cz npm run test:prod
```
### 📋 Aktuální testy
- ✅ Test titulu hlavní stránky
- ✅ Test URL hlavní stránky
- 🔜 Plánované: Test archivu, about stránky, responsive designu
---
## 📦 Nasazení
### 🌐 Produkční prostředí
- **URL**: [https://music.lukan.cz](https://music.lukan.cz)
- **Hosting**: VPSfree.cz
- **Protokol**: HTTPS (vynuceno přes .htaccess)
- **Server**: Apache s mod_rewrite
### 🚀 Deploy proces
1. **Vývoj**: Lokální úpravy
2. **Testování**: Spuštění Playwright testů
3. **Commit**: Uložení změn do Git
4. **Push**: Odeslání na Codeberg
5. **Nasazení**: Ruční kopírování na VPS
### 🔄 Automatizace (plánované)
- CI/CD pipeline
- Automatické testování před deployem
- Monitorování dostupnosti
---
## 🔒 Bezpečnost & GDPR
### ✅ Bezpečnostní opatření
- **HTTPS** - Vynuceno pro všechny požadavky
- **Žádné cookies** - Aplikace neukládá žádná cookies
- **Žádný tracking** - Nepoužívá Google Analytics, Facebook Pixel
- **Lokální běh** - Všechny výpočty v prohlízeči
- **Minimální data** - Pouze základní serverové logy
### 📜 GDPR Compliance
- **Transparence** - Jasné informace o sběru dat
- **Minimalizace** - Sbírá se pouze nezbytná data
- **Žádný skrytý sběr** - Vše je jasně deklarováno
- **Právo na zapomenutí** - Uživatelé mohou požádat o smazání
### 🔗 Externí služby
- **Tidal** - Externí odkazy (data sbírána Tidalem)
- **Spotify** - Externí odkazy (data sbírána Spotify)
- **Analytics** - Vlastní systém (analytics.lukan.cz)
---
## 📈 Roadmap
### 🎯 Krátkodobé cíle (1-3 měsíce)
- [ ] Vylepšené E2E testy
- [ ] CI/CD pipeline
- [ ] Monitorování dostupnosti
- [ ] Optimalizace obrázků (lazy loading)
- [ ] PWA podpora (Progressive Web App)
### 🎯 Střednědobé cíle (3-6 měsíců)
- [ ] Uživatelské účty
- [ ] Systém hodnocení alb
- [ ] Vyhledávání v databázi
- [ ] Filtrování podle žánru/roku
- [ ] REST API pro přístup k datům
### 🎯 Dlouhodobé cíle (6-12 měsíců)
- [ ] Mobilní aplikace (iOS/Android)
- [ ] Integrace se streamovacími službami
- [ ] Komunitní funkce (fórum, sdílení)
- [ ] Mezinárodní verze (překlady)
- [ ] Rozšíření databáze (další žánry/roky)
---
## 🤝 Přispění
### 📝 Jak přispět
1. **Nahlásit chybu** - Vytvořte [Issue](https://codeberg.org/Kankys/musicCalendar/issues)
2. **Navrhnout vylepšení** - Vytvořte Feature Request
3. **Přispět kódem** - Fork → Změny → Pull Request
4. **Přidat album** - Navrhněte nové album do databáze
5. **Překlad** - Pomozte s překlady do dalších jazyků
### 🎯 Pravidla pro přispěvatele
- Dodržujte existující kódový styl
- Přidávejte testy pro nové funkce
- Aktualizujte dokumentaci
- Pište jasné commit zprávy
- Dělejte malé, zaměřené pull requesty
### 📦 Vývojové prostředí
```bash
# Klonování
git clone https://codeberg.org/Kankys/musicCalendar.git
cd musicCalendar
# Instalace závislostí (pro testování)
cd test
npm install
# Spuštění testů
npm test
```
---
## 📜 License
Projekt je licencován pod **MIT License** - podrobnosti viz [LICENSE](LICENSE) nebo [DOCUMENTATION.md](DOCUMENTATION.md#-license).
---
## 📞 Kontakt
### 👤 Autor
- **Jméno**: Lukáš Kaňka (Kankys)
- **Web**: [lukaskanka.cz](https://lukaskanka.cz)
- **Bluesky**: [@kankys.bsky.social](https://bsky.app/profile/kankys.bsky.social)
- **Codeberg**: [@Kankys](https://codeberg.org/Kankys)
- **Email**: [Kontaktní formulář](https://lukaskanka.cz/index/about/index.html)
### 🌐 Projekt
- **Live Demo**: [music.lukan.cz](https://music.lukan.cz)
- **Repozitář**: [codeberg.org/Kankys/musicCalendar](https://codeberg.org/Kankys/musicCalendar)
- **Dokumentace**: [DOCUMENTATION.md](DOCUMENTATION.md)
- **Issues**: [codeberg.org/Kankys/musicCalendar/issues](https://codeberg.org/Kankys/musicCalendar/issues)
---
## 🏆 Poděkování
- ✅ Všem kapelám, které inspirovaly tento projekt
- ✅ Uživatelům, kteří podporují nezávislé projekty
- ✅ [VPSfree.cz](https://vpsfree.cz) za bezplatné hostování
- ✅ [Codeberg](https://codeberg.org) za open-source platformu
---
> **"Hudba je jazyk duše. A grunge s nu-metalem jsou její nejupřímnější dialekty."** 🎸
*Poslední aktualizace: 5. srpna 2026*