Skip to content
osmanevskiPublic

About

Kaydırma animasyonlarıyla gezilen kitap tanıtım sitesi, yönetim paneli ve n8n destekli kitap ekleme otomasyonu.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Kitap Rafı

Kaydırma animasyonlarıyla gezilen kitap tanıtım sitesi, yönetim paneli ve n8n destekli kitap ekleme otomasyonu.

Teknoloji

  • Node.js + Express
  • Multer ile kapak yükleme
  • Vanilla HTML, CSS ve JavaScript
  • Kitap ve yazar verileri için JSON dosyaları

Yerel kurulum

npm install
ADMIN_KEY=guclu-bir-sifre npm start

ADMIN_KEY zorunludur. Ayarlanmazsa site açılır ancak yönetim işlemleri güvenlik için devre dışı kalır. Kod içinde varsayılan veya gömülü admin şifresi yoktur.

İsteğe bağlı GOOGLE_BOOKS_KEY, Google Books'un anahtarsız kota sınırına takılmasını önler. Anahtar yoksa veya Google sonuç vermezse kapak araması Open Library'ye düşer.

Windows CMD:

set "ADMIN_KEY=guclu-bir-sifre"
npm start

Doğrulama

npm test

npm test deterministik kontrolleri tek komutta çalıştırır: node --check server.js, node scripts/test-parse.js, bash scripts/orchestration-check.sh ve bash scripts/agent-protocol-check.sh. İlk başarısız kontrolde durur ve sıfırdan farklı çıkış kodu döner. Sunucu başlatmaz, ağ erişimi istemez.

Yönetim paneli

  • + Yeni Kitap ile kitap eklenir; mevcut kitaplar düzenlenebilir, silinebilir ve sıralanabilir.
  • Yazar bilgileri Yazarlar sekmesinden ortak bir dosya olarak yönetilir.
  • Kapak görseli yüklenebilir veya Google Books/Open Library üzerinden aranabilir.
  • Kapak yoksa renk paleti ve yazı dizilimiyle tipografik CSS kapak gösterilir.
  • Metinde *vurgu* kullanımı güvenli biçimde <em> vurgusuna dönüştürülür.
  • Özet ve biyografi paragrafları boş satırlarla ayrılır.
  • Künye ve eser satırları Değer|Etiket biçimindedir.

Veri ve dosyalar

  • Kitaplar: data/books.json
  • Yazarlar: data/authors.json
  • Yüklenen kapaklar: uploads/
  • Kullanıcı arayüzü: public/index.html
  • Yönetim paneli: public/admin.html
  • Sunucu/API: server.js

Canlı sunucudaki data/ ve uploads/ üretim verisidir. Yerel kopyalar yalnız geliştirme verisi sayılır ve canlıyla eşit olmak zorunda değildir. Kod dağıtırken bu iki klasörü sunucuya kopyalama; canlı kitap, yazar ve kapak verilerini ezme.

Canlı ortam

Windows sunucuda ilk PM2 kurulumu:

set "ADMIN_KEY=guclu-bir-sifre"
pm2 start server.js --name kitaprafi
pm2 save

Ortam değişkeni kalıcı olarak değiştirildikten sonra:

pm2 restart kitaprafi --update-env
pm2 save

Kod güncellemesinde yalnız değişen kod/statik dosyaları gönder ve ardından gerekirse pm2 restart kitaprafi çalıştır.

Otomasyon

n8n-workflow.json, OpenRouter üzerinden google/gemini-3-flash-preview modelini kullanır ve üretilen kitabı korumalı /api/books/ingest endpoint'ine gönderir. Kurulum ve kullanım ayrıntıları için OTOMASYON.md dosyasına bak.

Terminal liste kataloğu (26 Eylül 2026)

Kaynak public/vt/; canlı ana adres https://osmanevski.com/kitaprafi/. /kitaprafi/vt/ aynı görünümü açar. Klasik liste /kitaprafi/klasik/, eski sergi /kitaprafi/sergi altında korunur. Liste public/books.json verisini kullanır; serginin data/books.json veya /api/books verisi değildir.

Canlı Caddy terminal dosyalarını /opt/kitaprafi/public/vt/ içinden doğrudan sunar. Yalnız değişen public/vt/ dosyalarını aynı sunucu dizinine kopyala; konteyneri ve canlı veri dosyalarını değiştirme. Ana site deposundaki katalog dosyaları artık kaynak değildir. Ortak fontlar, favicon ve duvar kâğıdı ana siteden yüklenir. Yerel önizlemede /kitaprafi/vt/* yollarını bu dizine, /kitaprafi/books.json yolunu public/books.json dosyasına yönlendir. Normal sergi geliştirme akışı aynıdır. Kontrol: node scripts/test-terminal-catalog.mjs, node --check public/vt/app.js, npm test.

About

Kaydırma animasyonlarıyla gezilen kitap tanıtım sitesi, yönetim paneli ve n8n destekli kitap ekleme otomasyonu.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages