Skip to content

CodeByPinar/pinardev

Repository files navigation

Portfolio & Admin Panel

Modern React + Vite + Firebase tabanlı portfolio ve minimal admin paneli.

Stack

  • React 18 + Vite + TypeScript
  • TailwindCSS + Radix UI primitives + custom UI kit
  • Firebase (Auth, Firestore, Storage)
  • Framer Motion, react-hook-form, zod, sonner (toast)

Özellikler

  • Public portfolio sayfaları (Hero, Projects, Experience, Contact, Collaboration /teklif)
  • Admin tek sayfa panel: projeler, mesajlar, ayarlar
  • Collaboration request form (/teklif) Firestore yazma + rate limit
  • Email whitelist ile admin erişimi
  • Theming: gradient + glassmorphism
  • Güvenli Firestore rules (public create, admin read)

Kurulum

npm install cp .env.example .env # Değerleri doldur npm run dev

Build

npm run build npm run preview

Firebase Hosting Deploy

# İlk kez firebase login firebase use --add # ya da .firebaserc içinde default project id ayarla npm run build firebase deploy --only hosting

Rules veya storage güncellemesi:

firebase deploy --only firestore:rules firebase deploy --only storage

Ortam Değişkenleri

.env.example dosyasına bak. Tümü VITE_ prefix ile client tarafında kullanılabilir. Gizli tutmak zorunda oldukların backend proxy yoksa burada zaten public kabul edilmelidir.

Firestore Koleksiyonları

  • projects
  • messages
  • settings (subdocs: general, admins)
  • collaborationRequests

Geliştirme Notları

  • Admin oturumu: email whitelist (VITE_ADMIN_EMAILS)
  • Undefined alan hatası için form submit sanitizasyonu eklendi
  • SPA route fallback: firebase.json rewrites -> index.html
  • Uzun süreli cache: JS/CSS immutable, görseller 7 gün

Yol Haritası

  • Admin panelde collaborationRequests görüntüleme & durum güncelleme
  • Görseller için WebP optimize
  • Lighthouse iyileştirmeleri (perf & a11y)
  • CI/CD (GitHub Actions) otomatik deploy

Lisans

Proprietary / All rights reserved (gerekirse güncelle).

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages