Tek sayfalık davetiye. Misafirleriniz adını ve kaç kişi geleceğini yazar, kayıt doğrudan Google E-Tablo'nuza düşer. Sunucu, veritabanı, API anahtarı yok.
index.html
assets/
css/styles.css
js/config.js ← düzenlemeniz gereken tek dosya
js/main.js
img/mandala.png ← tepsinin ortasındaki desen
apps-script/Code.gs ← E-Tablo'ya yapıştıracağınız kod
assets/js/config.js dosyasını herhangi bir metin düzenleyiciyle açın ve
tırnak içindeki değerleri değiştirin:
gelinAdi: "Maral",
tarih: "12 Eylül 2026, Cumartesi",
saat: "20:00",
mekanAdi: "MEKÂN ADI",
mekanAdres: "Mahalle, Sokak No, İlçe / İl",
haritaUrl: "https://www.google.com/maps/...",
sonBildirimTarihi: "1 Eylül",haritaUrl için Google Haritalar'da mekânı bulun, Paylaş → Bağlantıyı
kopyala deyin ve buraya yapıştırın. Bağlantı yoksa "Haritada aç" düğmesi
sayfada hiç görünmez.
İsmin "-in" hâli sayfada kendiliğinden üretilir: Maral → Maral'ın,
Ayşe → Ayşe'nin, Zeynep → Zeynep'in. Yani sadece ismi yazmanız yeterli.
Yabancı bir isimde sonuç kulağa yanlış gelirse gelinAdiIyelik alanına
doğrusunu yazın; o zaman otomatik biçimin yerine sizinki kullanılır.
Paylaşım önizlemesi: bağlantıyı WhatsApp'ta paylaştığınızda görünen
başlık index.html içindeki <title> ve og:title satırlarından okunur.
O robotlar JavaScript çalıştırmadığı için config.js'teki ismi göremezler —
ismin önizlemede de çıkmasını istiyorsanız bu iki satırı elle güncelleyin.
Yarım mandala görselinizi assets/img/mandala.png olarak kaydedin. Site
görseli aynalayarak tam daireye tamamlar, yani yarısı yeterli — düz kenar
solda kalmalı. Kırpma ve boyut ayrıntıları için
assets/img/README.md.
Dosyayı koymazsanız sayfa bozulmaz — tepsinin ortasında altın işlemeli yedek bir gül görünür.
-
Yeni bir Google E-Tablo açın.
-
Alttaki sayfa sekmesinin adını
RSVPyapın (büyük harflerle, birebir). -
İlk satıra başlıkları yazın:
A B C Zaman Ad Soyad Kişi Sayısı -
Tarayıcının adres çubuğundaki E-Tablo kimliğini kopyalayın —
/d/ile/editarasında kalan uzun karakter dizisi:https://docs.google.com/spreadsheets/d/1AbCdEf...XyZ/edit └── bu kısım ──┘
- E-Tablo'da Uzantılar → Apps Script.
- Açılan editördeki her şeyi silin,
apps-script/Code.gsdosyasının tamamını yapıştırın. - En üstteki
SHEET_IDsatırına 3. adımda kopyaladığınız kimliği yazın. - Kaydedin (Ctrl+S).
- İsteğe bağlı ama önerilir: üstteki listeden
testEtfonksiyonunu seçip Çalıştır deyin. Google izin isteyecek — Gelişmiş → …projesine git → İzin ver yolunu izleyin. E-Tablo'ya "Test Kaydı" satırı düşerse bağlantı çalışıyor demektir (o satırı sonra silin). - Sağ üstten Dağıt → Yeni dağıtım:
- Tür (dişli simgesi): Web uygulaması
- Çalıştıran: Ben
- Erişebilenler: Herkes ← misafirlerin Google hesabı olmadan gönderebilmesi için gerekli
- Dağıt → verilen adresi kopyalayın (
.../execile biter)
- Bu adresi
assets/js/config.jsiçindekiappsScriptUrlalanına yapıştırın.
Kodu sonradan değiştirirseniz yeni bir dağıtım oluşturmanız ya da mevcut dağıtımı Dağıtımları yönet → düzenle → Sürüm: Yeni ile güncellemeniz gerekir. Yoksa eski kod çalışmaya devam eder.
Dosyaları tarayıcıda açmak için küçük bir yerel sunucu yeterli:
npx serve .Formu doldurup gönderin, E-Tablo'da yeni satırın belirdiğini görün.
Derleme adımı yok — klasörün tamamını olduğu gibi yükleyin:
- En kolay: app.netlify.com/drop sayfasına klasörü sürükleyip bırakın, saniyeler içinde adres alırsınız.
- GitHub Pages: depoyu yükleyin, Settings → Pages → branch seçin.
- Vercel / Cloudflare Pages: klasörü statik site olarak bağlayın.
Hepsi E-Tablo'da, geldikleri sırayla. Toplam kişi sayısı için boş bir hücreye:
=TOPLA(C2:C)
Şu an bir davetli en fazla 3 kişi bildirebiliyor. Sınır iki yerde duruyor ve ikisi de aynı olmalı:
index.htmliçindeki#kisialanınınmaxdeğeri — sayfadaki sınır. Sayaç ve yazarak girilen değerler bu sayıya göre kısıtlanır.apps-script/Code.gsiçindekiEN_COK_KISI— E-Tablo tarafındaki sınır. Sayfayı atlayıp doğrudan gönderilen isteklere karşı asıl koruma budur.
Code.gs'i değiştirdikten sonra yeni bir dağıtım yayımlamayı unutmayın (Dağıt → Dağıtımları yönet → düzenle → Sürüm: Yeni). Yoksa Apps Script eski sınırla çalışmaya devam eder.
| Belirti | Sebep |
|---|---|
| "Bağlantı kurulamadı" | appsScriptUrl eksik/yanlış, ya da dağıtımda Erişebilenler: Herkes seçili değil |
| Satır düşmüyor | Sayfa sekmesinin adı RSVP değil, veya SHEET_ID yanlış |
| Kod değişikliği etkisiz | Yeni dağıtım oluşturulmamış (bkz. 4. adım notu) |
| Türkçe harfler bozuk | Dosyaları UTF-8 olarak kaydedin |
- Form gönderilirken düğme kilitlenir, aynı kayıt iki kez düşmez.
- Sayfada görünmeyen bir tuzak alan var; botların doldurduğu istekler E-Tablo'ya yazılmadan sessizce elenir.
=ile başlayan isimler E-Tablo'da formül olarak çalıştırılmaz, düz metin olarak saklanır.- Hareketi azaltılmış cihazlarda animasyonlar kapanır, sayfa sabit görünür.