DigyNotes
Film, dizi, oyun ve kitap notlarını takip etmek için kişisel dijital not defteri. Her içerik için puan, yönetmen/yazar/geliştirici, yıl, kapak görseli, etiket ve zengin metin incelemesi kaydedebilirsin. Sosyal takip sistemi, kişiselleştirilmiş akış ve keşif sayfasıyla topluluğa bağlan.
Tech Stack
| Katman | Teknoloji |
|---|
| Framework | Next.js 16 (App Router) · React 19 |
| Dil | TypeScript |
| Stil | Tailwind CSS v4 |
| Veritabanı | PostgreSQL (Neon — serverless) |
| ORM | Prisma v7 |
| DB Driver | @prisma/adapter-pg |
| Auth | NextAuth v4 (Credentials + JWT) |
| Rich Text | react-quill-new (Quill 2) |
| Toast | react-hot-toast |
| Film/Dizi API | TMDB (The Movie Database) |
| Oyun API | RAWG Video Games Database |
Özellikler
Temel
- Kullanıcı Hesabı — Kayıt ol, giriş yap; her kullanıcı yalnızca kendi notlarını görür
- Not Oluştur — Başlık, kategori, yönetmen/yazar/geliştirici, yıl, kapak görseli, izleme durumu ve zengin metin içeriği
- Puan Sistemi — 0–5 arası, 0.5 hassasiyetinde yıldız puanı
- Dinamik Kategoriler — Kategori ekle, filtrele ve sil (kullanıcıya özel)
- Durum Etiketi — İzlendi / İzleniyor / İzlenecek / Bırakıldı gibi durum takibi
- Not Düzenle / Sil — Tam CRUD desteği
- Dark Premium UI — Mavi tonlu koyu tema, gold aksan
Medya Kategorileri
- Film — TMDB entegrasyonuyla otomatik poster, yönetmen, yıl ve TMDB puanı doldurma
- Dizi — TMDB ile dizi arama ve bilgi doldurma
- Oyun — RAWG veritabanıyla oyun arama, kapak ve geliştirici doldurma
- Kitap — Manuel kitap kaydı
Sosyal & Keşif
- Sosyal Takip — Diğer kullanıcıları takip et / takibi bırak
- Akış (Feed) — Takip ettiğin kullanıcıların son notlarını gör
- Öneriler — Etiket geçmişine dayalı kişiselleştirilmiş not önerileri
- Keşfet — Trend etiketler, popüler notlar ve kullanıcı keşfi
- Herkese Açık Profil —
username, biyografi ve avatar ile profil sayfası
- Topluluk İstatistikleri — Aynı içeriği kaç kişinin kaydettiğini gör
Organizasyon
- Global Tag Sistemi — Notlara etiket ekle, etikete göre filtrele;
/tag/[name] sayfaları
- Arama & Sıralama — Notlarda arama, tarihe/puana göre sıralama
- Taslak & Arşiv — Notları taslak olarak kaydet, tamamlanmış notları arşivle; ayrı sekmelerden yönet
- Sabitleme — Önemli notları listenin üstüne sabitle
- Koleksiyonlar — Notları tematik koleksiyonlarda grupla
- Kaydetme (Bookmark) — Başkalarının notlarını hızlı erişim için kaydet
- İstek Listesi (Watchlist) — İzlemek/okumak/oynamak istediğin içerikleri listele
- Otomatik Kaydetme — Yeni not formunda localStorage tabanlı taslak kurtarma
Güvenlik & Altyapı
- Rate Limiting — Hassas endpoint'lerde (login, register, şifre değiştirme, profil güncelleme) istek sınırlaması
- Soft Delete — Notlar kalıcı silinmez, geri getirilebilir
- Erişilebilirlik — Modal focus trap, skip-to-content link, aria etiketleri
- Hata Sınırları — Sayfa bazlı error boundary'ler; tek sayfa hatası tüm uygulamayı çökertmez
- Şifre Değiştirme — Profil ayarlarından güvenli şifre güncelleme
Landing Page
- Giriş yapmamış kullanıcılar için animasyonlu tanıtım sayfası
Kurulum (Lokal)
Gereksinimler
- Node.js 18+
- Neon hesabı (veya herhangi bir PostgreSQL instance)
- TMDB API anahtarı (film/dizi araması için)
- RAWG API anahtarı (oyun araması için)
1. Bağımlılıkları kur
npm install
2. Ortam değişkenlerini ayarla
.env.local dosyası oluştur:
DATABASE_URL="postgresql://USER:PASSWORD@HOST/DBNAME?sslmode=require"
NEXTAUTH_SECRET="güçlü-bir-secret-üret"
NEXTAUTH_URL="http://localhost:3000"
# Medya arama (isteğe bağlı — olmadan form çalışır ama arama devre dışı)
NEXT_PUBLIC_TMDB_API_KEY="tmdb-api-anahtarin"
NEXT_PUBLIC_RAWG_API_KEY="rawg-api-anahtarin"
# Şifre sıfırlama e-postası (isteğe bağlı — lokalde yoksa bağlantı sunucu konsoluna yazılır)
RESEND_API_KEY="resend-api-anahtarin"
EMAIL_FROM="DigyNotes <[email protected]>"
NEXTAUTH_SECRET için: openssl rand -base64 32
TMDB anahtarı için: themoviedb.org/settings/api
RAWG anahtarı için: rawg.io/apidocs
3. Prisma migration'ı uygula
npm run db:migrate
4. Geliştirme sunucusunu başlat
npm run dev
http://localhost:3000 adresinden erişebilirsin.
Neon DB Kurulumu
- neon.tech üzerinde ücretsiz hesap aç
- Yeni proje oluştur
- Connection Details → Connection string'i kopyala
.env.local dosyasındaki DATABASE_URL'e yapıştır
Kullanışlı Komutlar
npm run dev # Geliştirme sunucusu
npm run build # Production build (prisma generate dahil)
npm run db:migrate # Yeni migration oluştur ve uygula
npm run db:studio # Prisma Studio (veritabanı arayüzü)
npm run db:generate # Prisma client yeniden oluştur
This is the beginning of the README. Read the rest at the original. Read the full README ↗