Anı Kutusu
Etkinlik fotoğraf platformu
Misafirlerin QR kodla fotoğraf yüklediği, etkinlik sahibinin tüm fotoğrafları ortak bir galeride topladığı web uygulaması.

- Kimler için?
- Etkinlik sahipleri ve fotoğraf paylaşan misafirler
- Katkım
- Bağımsız proje · Full-stack geliştirme
- Dönem
- İlk sürüm: 2025 · Sonrasında ortak Go backend
Çözülmesi gereken ihtiyaç
Etkinlik fotoğrafları farklı misafirlerde dağınık kalıyor. Katılım kolay olurken yükleme ve görüntüleme izinlerinin etkinlik kapsamıyla sınırlanması gerekiyor.
Ortaya çıkan işlevler
Etkinlik için QR bağlantısı paylaşma, misafirlerden fotoğraf toplama ve fotoğrafları etkinliğe özel erişim izinleriyle bir galeride görüntüleme.
Ben ne yaptım?
QR kodla misafirlerin fotoğraf yüklemesini ve etkinlik galerisini geliştirdim. Ortak sunucu altyapısında fotoğraflara yalnız ilgili etkinliğin izinleriyle erişilmesini sağlayan kuralları uyguladım.
Uygulama ekranları
Bir ekran seçin; QR kodla başlayan mobil misafir deneyiminden salon yönetimine, işletim sistemine göre uyarlanan yükleme formlarından merkezi düğün galerisine kadar tüm akışı inceleyin.
Geliştirme ayrıntılarını incele
Teknik yaklaşımla ilgilenenler için: çalışma akışı, kullandığım teknolojiler ve uygulama kararları.
Süreç nasıl işliyor?
Misafir için QR ile başlayan basit deneyimin arkasında etkinlik kapsamı, doğrudan nesne yükleme, tamamlama doğrulaması ve temizlik bulunuyor.
Ana akış
Etkinliği ve galeriyi hazırla
Etkinliğe bağlı galeri ve QR paylaşım bağlantısı oluşturulur.
QR ile etkinliğe katıl
Misafirin etkinlik token’ı yükleme ve galeri erişiminin kapsamını belirler.
Yükleme niyetini doğrula
Upload intent için dosya türü, boyut ve etkinlik kapsamı kontrol edilir.
Dosyayı doğrudan yükle
Presigned URL ile dosya uygulama sunucusundan geçirilmeden private MinIO’ya gönderilir.
Yüklemeyi tamamla ve bağla
Tamamlama isteğinde nesne ve sahiplik doğrulanır; medya etkinlik galerisine bağlanır.
Galeriyi yetkili erişimle aç
Misafir token’ı veya yetkili kullanıcı oturumu kapsamında medya bağlantıları sunulur.
Alternatif ve destek süreçleri
Yükleme yarım kalırsa
- Niyetin süresini sonlandır
Süresi dolan veya tamamlanmayan upload intent kayıtları temizliğe alınır.
- Sahipsiz nesneyi temizle
Galeriye bağlanmamış nesneler orphan-cleanup süreciyle kaldırılır.
Etkinlik sahibi erişirken
- Oturumu doğrula
Etkinlik sahibinin JWT / OTP oturumu doğrulanır.
- Yetki kapsamını uygula
Paylaşılan backend medya ve galeri erişimini kullanıcının yetkileriyle sınırlar.
Çözüm yaklaşımı
- Etkinlik ve galeri yönetimi ile QR bağlantısı üzerinden misafir medya yükleme akışlarını geliştirdim; etkinlik token'ı ile erişim kapsamını belirledim.
- Upload intent, presigned URL ile private MinIO'ya doğrudan yükleme ve completion doğrulaması uyguladım; dosya türü/boyutu ve medya sahipliği kontrolleri geliştirdim.
- Mezuniyet Yıllığım ile ortak backend'de OTP/JWT oturumları ve yetkili medya erişimini uyguladım; süresi dolan upload intent ve orphan object temizleme süreçleri geliştirdim.
Teknolojiler
- Next.js
- Go
- TypeScript
- PostgreSQL
- Redis
- MinIO
- Docker Compose
