mirror of
https://codeberg.org/Kankys/musicCalendar.git
synced 2026-11-11 05:54:36 +01:00
345 lines
11 KiB
Markdown
345 lines
11 KiB
Markdown
# 🎸 Denní Hudební Doporučení: 365 Alb na Celý Rok 💿
|
||
|
||
> **Každý den jedno ikonické grunge nebo nu-metal album. Prozkoumejte historii rockové hudby!**
|
||
|
||
[](https://music.lukan.cz)
|
||
[](https://opensource.org/licenses/MIT)
|
||
[](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* |