EventDrop, bir etkinliğe katılan insanların kendi telefonlarıyla cektikleri fotograf ve videolari, QR kod ile ayni ortak albume yukleyebildigi hafif bir web uygulamasidir.
Uygulamanin temel amaci, dugun, dogum gunu, sirket etkinligi gibi gunubirlik organizasyonlarda katilimcilarin medya iceriklerini tek bir ortak noktada toplamasidir. Kullanici QR kodu okutur, ilgili etkinlik albumune gider, fotograflarini veya videolarini yukler ve ortak galeride diger icerikleri goruntuleyebilir.
- Dugun davetlileri
- Dogum gunu katilimcilari
- Sirket etkinligi ziyaretcileri
- Kisa sureli topluluk bulusmalarina gelen misafirler
- Etkinlik icin ozel bir QR kod uretilir.
- Katilimci QR kodu telefonuyla okutur.
- Acilan giris ekraninda e-posta adresini ve event code bilgisini girer.
- Sistem kullaniciyi sadece o etkinlige ait album sayfasina yonlendirir.
- Katilimci ortak albume fotograf ve/veya video yukler.
- Yuklenen icerikler ortak galeride goruntulenir.
- Katilimcilar istedikleri icerikleri indirebilir ve kendi aralarinda paylasabilir.
- Her etkinlik kendi ozel albumu, linki ve event code bilgisi ile calisir.
- Public tarafta etkinlik listesi gosterilmez.
- Yuklenen medya dosyalari 48 saat sonra otomatik olarak silinmelidir.
- Album klasorleri tarih bazli isimlendirilmelidir.
- Dosya isimleri tarih bilgisini tasimalidir.
- Sistem mobil kullanim icin hizli ve sade olmalidir.
Album klasorleri icin temel format:
DD-MM-YYYY
Dosyalar icin yalnizca DD-MM-YYYY kullanmak tek basina yeterli olmayacagi icin cakisma riski olusur. Bu nedenle uygulama icin onerilen pratik format:
DD-MM-YYYY-HH-mm-ss-random
Bu sayede tarih kurali korunur ve ayni gun yuklenen birden fazla dosya benzersiz kalir.
Bu proje icin sade ve makul teknoloji yaklasimi:
- Next.js arayuzu
- Supabase Storage ile medya saklama
- Supabase Database ile etkinlik ve yukleme kayitlari
- Supabase Cron veya zamanlanmis bir cleanup gorevi ile 48 saat sonra otomatik silme
- Vercel veya benzeri basit bir hosting ortami
MVP icin en sade secenek:
- Uygulama: Vercel
- Veri ve dosyalar: Supabase
Bunun nedeni, mevcut projenin zaten Next.js tabanli olmasi ve Supabase ile dosya/veri mantigina uygun olmasidir.
Daha dusuk maliyetli alternatif olarak Cloudflare da dusunulebilir; ancak bu urunde dosya yukleme, veritabani, galeri, zamanlanmis silme ve basit yonetim akisinin bir arada kolay kurulmasi acisindan Vercel + Supabase kombinasyonu daha dogrudan bir ilk kurulum saglar.
Kaynaklar:
- Vercel plan docs
- Cloudflare Pages pricing docs
- Cloudflare Pages limits docs
- Supabase Cron docs
- Supabase scheduled Edge Functions docs
- Supabase Storage docs
- Her zaman yapilan degisiklik once
developbranch'ine pushlanmalidir. develop, preview veya staging ortami olarak kullanilmalidir.developbranch'ine giden her degisiklik preview ortaminda deploy edilmelidir.developuzerindeki testler ve kontroller basarili olduktan sonra degisiklikmainicin merge edilmelidir.mainicin pull request acilmali ve code review yapilmalidir.mainbranch'ine deploy olan her degisiklik production'a anlik olarak gitmelidir.
/: e-posta ve event code ile public misafir girisi/join/[id]: QR veya ozel linkten gelen misafir icin etkinlige ozel giris sayfasi/control-room-7x: gizli admin girisi ve etkinlik/album olusturma sayfasi/event/[id]: etkinlige medya yukleme sayfasi/event/[id]/gallery: ortak galeri ve indirme sayfasi
README sonrasi proje icin tutulan dokumanlar:
docs/PRODUCT.mddocs/SETUP.mddocs/ARCHITECTURE.mddocs/DB_SCHEMA.mddocs/DEPLOYMENT.mddocs/OPERATIONS.md
Bu README, mevcut proje yapisi ve urun hedefi baz alinarak hazirlanmistir. Dosya isimlendirme konusunda benzersizlik ihtiyaci nedeniyle uygulama seviyesinde DD-MM-YYYY formatinin zaman ve kisa rastgele ek ile genisletilecegi varsayilmistir.