Ana içeriğe geç

El kitabı — Normal kullanıcı

1. Genel bakış

Normal kullanıcı olarak mekan ve etkinlik keşfedebilir, kaydedebilir, yorum yapabilir, etkinliklere katılabilir, diğer kullanıcılarla sohbet edebilir, koleksiyonlar oluşturabilir ve aktif oturum açmışken inceleme için yeni mekan, etkinlik veya topluluk önerebilirsin (asla anonim değil).

2. İlk adımlar

Kayıt ve giriş (şifresiz)

Giriş ve kayıt aynı sayfada: /tr/auth/signin. Şifre alanı yok ve ayrı kayıt yolu yok — henüz hesabı olmayan biri ilk Magic Link girişinde otomatik olarak hesap alır.

  1. Genel başlangıç sayfası /tr üzerinden: İki sütunlu düzen — solda marka, kısa açıklama ve dört teaser kutusu (Mekanlar · Etkinlikler · Topluluklar · Harita), sağda „Giriş yap“ kartı ve /tr/auth/signin sayfasına giden tek düğme (kayıt ve giriş aynı sayfayı kullanır; next Home’a işaret eder); altında Gizlilik, Kullanım koşulları ve Topluluk kuralları kısa linkleri. Üst başlık: yalnızca logo/marka ve dil değiştirici — arama yok, ana navigasyon yok, başlık çubuğunda ikinci giriş linki yok. Mobilde bu sayfada ek olarak alt tab çubuğu da yoktur. Güven bölümü bunun altında gelir. Girişten sonra uygulama üzerinden örneğin Mekanlar/tr/places, Etkinlikler/tr/events, Harita/tr/map; oturum yokken middleware önce /tr/auth/signin sayfasına yönlendirir — next parametresinde orijinal hedef yer alır. Yasal ve güven sayfaları (ör. Künye, Gizlilik) giriş olmadan erişilebilir kalır.
  2. /tr/auth/signin sayfasında mobil uygulamayla aynı üç seçenek vardır:
    • Google ile devam et — OAuth, en hızlı yol.
    • Apple ile devam et — OAuth, iOS tipik.
    • E-posta ile devam et — tek seferlik giriş linki (Magic Link) e-postayla gönderilir.
  3. E-posta girişi yalnızca e-posta adresini kabul eder (kullanıcı adı yolu yok — Magic Link postası için adrese ihtiyacımız var). Gönderimden önce Cloudflare Turnstile captcha görünmez biçimde kontrol edilir (gerekirse görünür uyarı).
  4. E-posta ile devam et tıklandıktan sonra: „Magic Link gönderildi — giriş yapmak için e-postadaki linke tıkla“ onayı. Başka e-postayla tekrar gönder ile girişi düzeltip yeni link isteyebilirsin.
  5. Postadaki Magic Link /api/auth/supabase/callback?via=email_link üzerinden geri döner. İlk seferde hesap oluşturulur, e-posta hemen doğrulanmış sayılır (linke tıklamak onaydır), onboarding’e yönlendirilirsin. Sonraki girişlerde doğrudan Home veya next yoluna gidersin.
  6. Yerel şifre yok: Giriş OAuth (Google/Apple) veya Magic Link ile yapılır. Eski şifre kurtarma sayfaları (/tr/auth/forgot-password, /tr/auth/reset-password) uygulamada artık yok; kayıp erişim yeni Magic Link veya ilgili OAuth sağlayıcısıyla çözülür.
  7. Ortamda hesap oluşturma devre dışıysa formun üstünde uyarı görünür. Davet kapısı: yalnızca AUTH_SIGNUP_INVITE_GATE=force (vb.) ile davet kodları birlikte ayarlandığında aktif — varsayılan olarak (int/app dahil) kod zorunluluğu yoktur.

Hoş geldin e-postası (hesap başına bir kez): E-postan onaylandığında kısa bir hoş geldin e-postası göndeririz; yardım, topluluk kuralları ve gizlilik linkleri içerir. Google/Apple girişi ve ilk Magic Link girişinde bu, başarılı girişten hemen sonra olur — harici sağlayıcılar veya Magic Link tıklaması adresini zaten doğrulamıştır.

Giriş başarısız olursa (ör. captcha hatası, posta geçici gönderilemiyor, hesap askıya alınmış, sağlayıcı henüz açılmamış) formun üstünde anlaşılır bir uyarı bandı görünür. Yasal linkler (Künye, Gizlilik) sayfa alt bilgisinde bulunur.

Onboarding (2 zorunlu adım, ardından 3 isteğe bağlı adım)

Uygulamada ilerleme Adım x / 5 olarak numaralandırılır (Adım 1–2 zorunlu, 3–5 isteğe bağlı).

  1. Temel bilgiler (/tr/onboarding): Dil, kullanıcı adı ve şehir seç
  2. Profil ve görünürlük (/tr/onboarding/visibility): Yalnızca genel karar Herkese açık veya Gizli (minimal ve genişletilmiş profil hakkında kısa not); tek tek alanlar için ince ayar yok. Kaydederken sistem arka planda görünür profil alanları varsayılanını ayarlar: Herkese açık → tüm alanlar açık, Gizli → hepsi kapalı (ince ayar sonra Hesap ve Ayarlar altında). Bu adımı kaydetmek onboarding’i tamamlanmış sayar (onboardingCompletedAt görünürlük tamamlandığında birlikte). Ardından isteğe bağlı bölüm açılır; yine de Home, harita vb. normal kullanılabilir.

Mekan-, etkinlik- ve topluluk konuları onboarding’de sorulmaz. Home’a ilk manuel ziyarette (onboarding yönlendirmesinden hemen sonra ?welcome=onboarding değil) tek seferlik kurulum ekranı çıkar: kısa karşılama, açıklama ve ilgi alanı seçimi (her alanda en az bir kategori). Sonrasında Home bu seçime göre filtreler. Değişiklikler her zaman Hesap ve Ayarlar → İlgi alanları altında.

İsteğe bağlı (her biri atlanabilir):

  1. Şehirleri takip et (/tr/onboarding/cities): Mekan/etkinlik görmek istediğin diğer şehirleri takip et; en azından ana şehrin otomatik takip edilir
  2. Profil fotoğrafı ve bio (/tr/onboarding/profile): Profil fotoğrafı seç (düzenleyici: yakınlaştır, kaydır, döndür, ayna) ve kısa açıklama yaz
  3. Topluluk (/tr/onboarding/community): Şehrindeki kullanıcıları keşfet ve takip et; takip etmeden Bitti — haritaya ile şehir haritasına (profil şehri)

Adım 1–2 zorunlu, 3–5 isteğe bağlı ve atlanabilir. İsteğe bağlı bölümü bitirir veya atlarsan uygulama seni şehir haritasına veya Home’a yönlendirebilir (Onboarding sonrası bölümüne bak).

Onboarding’i yarıda bırakırsan (ör. çıkış veya sekme kapatma) bir sonraki girişte zorunlu adımlar (1–2) tamamlanana kadar uygun onboarding adımına yönlendirilirsin.

Adım 1 (Temel bilgiler): yalnızca ortalanmış İleri düğmesi. Adım 2’den itibaren: altta solda Geri yalnızca sola ok simgesi (görünür metin yok, hedef aria-label’da); İleri kartın altında ortada kalır. Profil ve görünürlük’ten Temel bilgiler’e geri dönüş /tr/onboarding?step=basics ile (yönlendirme tekrar Adım 2’yi zorlamasın diye). İsteğe bağlı adım 3–5’te ana düğmenin altında ek Atla linki (Adım 5’te Bitti — haritaya).

Eski rotalar /tr/onboarding/places, /tr/onboarding/events ve /tr/onboarding/communities artık yalnızca şehir önizlemesine yönlendirir (yer imleri geçerli kalır).

3. Ana alanlar

Mobil kabuk navigasyonu (tarayıcı + native uygulama)

Akıllı telefonlarda ve Capacitor native uygulamada (göç Faz 1’den itibaren) uygulama tarayıcıda da native hissettirmek için ayrı bir navigasyon katmanı vardır:

  • Alt tab çubuğu (ekran altında — Mobile-Shell dahil Capacitor native, misafir landing / oturumsuz değilse): beş tabHome (/home), Topluluklar (/communities), Map (DE ve TR’de kasıtlı olarak „Map“ yazısı), Mekanlar, Etkinlikler.

  • Misafir landing (/tr / /de oturumsuz): alt tab çubuğu yok (hero + giriş CTA).

  • Misafir detay tarayıcıda (web, native uygulama değil): /tr/places/{slug} ve /tr/events/{slug} doğrudan linkleri giriş olmadan erişilebilir — örn. paylaşılan linkler veya Google arama sonuçları. Genel bakış (ad, kategori, açıklama, adres/tarih, harici web sitesi, statik harita önizlemesi) görürsün. Gönderiler, yorumlar, katılımcılar, listeler, sohbet ve sosyal eylemler yine ücretsiz giriş gerektirir. Mekan/etkinlik listeleri, harita, arama ve Topluluklar oturumsuz kapalıdır (girişe yönlendirme). Yüklü uygulamada (iOS/Android) auth-first geçerli — detay URL’leri de oturumsuz girişe gider.

  • Tab çubuğu için: Ortadaki Map tab’ı sürekli turkuaz pill (rounded-full, #30D5C8) beyaz simge ve „Map“ ile — zaten şehir haritasındayken de. Map’e dokunmak profil/onboarding şehrinin şehir sayfasına gider (/cities/{slug}; eski /map?city=… oraya yönlendirir). Profil şehri yoksa isteğe bağlı konumdan en yakın şehir (focusLocate=1 „Konumum“ için). Mekanlar, Etkinlikler ve Topluluklar listeyi profil/onboarding şehrinden ?city= ile açar (şehir parametresi olmadan ilk sayfa açılışı gibi); profil şehri yoksa isteğe bağlı konum, yoksa temel rota. Gönderme yolları (Gönderi / Mekan / Etkinlik / Topluluk önerisi) alt çubukta değil; uygulama başlığı 2. satır — yuvarlak Plus düğmesi menü açar: Gönderi oluştur, Mekan öner, Etkinlik öner, Topluluk öner (rotalar /post/new, /submit/place, /submit/event, /communities/suggest).

  • Üst uygulama başlığı (iki satır): Satır 1 — solda hamburger simgesi, yanında MerhabaMap logosu ve yazı; sağda DE/TR dil değiştirici. Satır 2: solda Arama (büyüteç — sağa doğru büyüyen arama alanı açar; masaüstü başlığındaki gibi otomatik tamamlama); sağda Plus menüsü (simge + — yukarıdaki gibi açılır menü), Bildirimler (zil, okunmamış rozeti), Bağlantılar (kişi simgesi — Keşfet ve Bağlantılarım sekmeli üst önizleme; tam sayfa /connections Keşfet / Takip ettiklerim / Beni takip edenler), Mesajlar (sohbet simgesi, okunmamış rozeti — gelen kutusu önizlemesi; tam liste /messages). Bildirimler, Bağlantılar, Mesajlar ve Plus menüsü (gönderi/öneriler): Mobile-Shell’de dokunuş tam genişlikte önizleme açar, doğrudan ikinci başlık satırının altında (altında yarı saydam overlay). Kapatma: overlay’e dokun, Escape veya panel altındaki tutamaktan yukarı kaydır. Profil (avatar’a dokunmak doğrudan /user/{username} genel profilini açar — kullanıcı adı yoksa Hesap ve Ayarlar /profile). Başlık önizlemesinde Keşfet tam /connections sayfasıyla aynı kullanıcı önerilerini gösterir (herkese açık, onboarding tamamlanmış: örn. aynı profil/onboarding şehri veya şehir takibi, ortak kaydedilen mekan/etkinlik, aynı topluluklar); Bağlantılarım sekmesi yinelenmeden takip ettiklerin ve seni takip edenleri listeler. Tam Bağlantılar sayfası /connections’da ayrıca Üye arama vb. altında: Keşfet yukarıdaki gibi, Takip ettiklerim takip ettiğin profilleri Mesaj linkiyle listeler (klasik liste /user/{username}/following). Beni takip edenler takipçileri yine Mesaj ile listeler (klasik /user/{username}/followers). Listelerim, Favoriler · Mekanlar, Favoriler · Etkinlikler, Almanya haritası, Admin ve Çıkış hâlâ Drawer üzerinden; avatar menüsünde yok (Mobile-Shell başlığında avatar menüsü yok).

  • Drawer (hamburger simgesiyle açılır): Giriş yapmış: profil kartı, Hesap ve Ayarlar, isteğe bağlı Takip istekleri (gizli profil) ve Business, Admin (yalnızca adminler), Listelerim, Favorilerim · Mekanlar, Favorilerim · Etkinlikler, Almanya haritası (/map şehir filtresi olmadan açar), MerhabaMap’i destekle (/support), Hata bildir! (alt sayfa), MerhabaMap hakkında (/legal), Çıkış (altta outline düğme). Altında MerhabaMap hakkında (/legal) — yardım, uygulama bilgisi, durum, değişiklik günlüğü, destek ve tüm yasal sayfalar (künye, gizlilik, AGB, lisanslar, erişilebilirlik vb.) tek yerde. Dil yalnızca başlık satır 1’deki DE/TR dil değiştirici ile değiştirilir, Drawer’da değil. Giriş yapmamış: Giriş yap satırından sonra MerhabaMap hakkında ve Yardım ve destek.

Aktif kenar tab alan rengini kullanır: Home ve Mekanlar MerhabaMap kırmızısı (text-brand), Topluluklar MerhabaMap mavisi (text-community), Etkinlikler MerhabaMap siyahı (text-merhaba-black). Map tab’ı görsel olarak turkuaz kalır. ESC veya Drawer dışına dokunmak kapatır. Alt tab çubuğu iOS home indicator alanını temiz tutar (görünür olduğunda).

Masaüstü tarayıcılarda (≥ 768 px) üst başlık satırı logo, arama, dil değiştirici ve hesap menüsüyle kalır; alt navigasyon görünmez. Giriş yapmışsan bildirimler, bağlantılar ve mesajların yanında sağda Plus düğmesi (+): Mobile-Shell ile aynı menüyü açar — Gönderi oluştur, Mekan öner, Etkinlik öner, Topluluk öner. Bağlantılar (kişi simgesi) masaüstünde aynı popover önizlemesini açar (Keşfet / Bağlantılarım); Keşfet / Takip ettiklerim / Beni takip edenler sekmeli tam liste yukarıdaki gibi /connections altında.

Orta ana navigasyonda (yuvarlak pill çubuğu) giriş yapmışsan — Home, Topluluklar, Map (DE ve TR’de aynı yazı), Mekanlar ve Etkinlikler bulunursun. Eski Aktiviteler ana navigasyondan kaldırıldı; kişiselleştirilmiş içerik Home’da (Keşfet / Sosyal sekmeleri). Eski linkler /tr/feed Home’a yönlendirir (?tab=discovery veya eski mode=local için ?tab=social). Topluluklar rotası (/tr/communities, /tr/communities) Almanya’daki Türk toplulukları için genel bakış — odak: yerel gruplar ve yönelim konuları. Kişi‑ veya eşleştirme önerisi yok, genel grup feed’i yok, topluluk sohbeti yok. Canlı detay sayfası (yalnızca giriş yapmış kullanıcılar): toplam üye sayısının yanında avatar özeti (etkinlik katılımcıları gibi sınırlı havuz); gizli profillerin görünürlüğü etkinlik katılımı ile aynı kural (herkese açık profiller, kendi profilin her zaman, gizli profiller yalnızca giriş yapmış takipçiler için).

Sayfa Mekanlar/Etkinlikler ile aynı giriş düzenini izler: kırmızı eyebrow, büyük başlık, kısa açıklama. Oturum ve geçerli profil şehri ile city URL’si yoksa liste otomatik orada açılır ( Mekanlar ve Etkinlikler listeleri gibi); URL’de scope=nationwide ülke geneli filtrede kalır. Altında filtre kartı: serbest metin (Arama, URL parametresi q; en az üç karakterde mevcut filtre bağlamında uygun topluluklar için başlık önerileriüye araması veya kişi sonucu yok), Şehir (en az bir herkese açık birincil topluluğu olan şehirler — mekan filtresindeki şehir listesiyle aynı değil; ilk hızlı seçim „yalnızca ülke geneli“, aksi halde şehir araması — en az üç harfte şehir adı listesinden ek önizleme; kombi alanında „tüm herkese açık, şehir filtresiz“ ayrı hızlı seçim yok), Tema (theme, „tümü“ dahil; eski „Şehir ve yerel“ teması kalktı — benzer odaklar „Almanya’da yaşam“ altında), Sıralama (sort, örn. newest, oldest, title_de, title_tr), isteğe bağlı Kapsam (scope=nationwide, şehir seçilmediyse). Giriş yapmış ve takip edilen şehirler varsa: filtre kartının altında şehir ray’i (tıklama şehir filtresi ve ?city=<slug>). Filtreler aktifse (varsayılanlardan farklı) altında Aktif filtreler özet chip satırı ve Tümünü sıfırla. Sonra herkese açık listelenen topluluklar (filtrelenmiş) liste veya ızgara görünümü (varsayılan: liste; ızgara URL’de layout=grid ile mekan/etkinlik gibi); kartlarda onay sonrası bağlı toplulukta kapak görseli (varsa ve teknik olarak kullanılabilirse), yoksa topluluk mavisi tema placeholder (mekan/etkinlik placeholder’ları gibi); page ile sayfalama (offset; URL seçimi yansıtır). Katılım modu ve görünürlük ayrı: Herkese açık listelenmiş sayfa bulunabilir demektir — isteğe bağlı katılım (kapakta sağ üst „Katılım isteğe bağlı“ rozeti, meta satır „Katılım: ekip onayı“) yalnızca ekibin onayladığı anlamına gelir, topluluğun görünmez olduğu anlamına gelmez. Doğrudan katılım „Katılım: doğrudan“ olarak işaretlenir. Zaten üyysen sol üstte Üye veya bekleyen onayda İstek beklemede. Keşifteki etkinlik/treffer ipuçları kompakt — veri yoksa kısa boş durum, eskisi gibi listede büyük demo blok yok; bağlı herkese açık etkinlikler ek olarak Etkinlikler altında kalır.

Canlı veri vs demo: Topluluk DB sorguları sunucu kapısı açıksa (COMMUNITIES_SERVER_QUERIES_ENABLED; operasyon dokümantasyonuna bak) listeler ve sonuçlar veritabanından gelir. Kapı kapalıysa arayüz demo yedek gösterir (örnek kartlar — gerçek üyelik yok).

Home (/home): Keşfet altında topluluk kısa listesi „Senin için topluluklar“ şehirlerinde yerel odaklı herkese açık grupları artı ACTIVE üyesi olduğun ülke geneli toplulukları gösterir — her biri topluluk temalarına göre filtrelenir (üyelik tema filtresini aşar), en yeniler önce. „Şehirlerinde yeniler“ ek olarak son 14 günde yayımlanan ülke geneli toplulukları (tema/etkileşim yukarıdaki gibi). Genel bakış /tr/communities giriş yapmış kullanıcılar için ilk açılışta mekan/etkinlik gibi (profil şehri URL’de), scope=nationwide yoksa. Şehir seçiminde şehir aramasına ek „yalnızca ülke geneli“ — eski „tüm herkese açık, şehir filtresiz“ hızlı seçim yok. Oturum yoksa topluluk genel bakışı yüklenmez; uygulama /tr/auth/signin ( next hedef ve arama parametreleriyle) — web uygulamasının diğer korumalı alanları gibi. Yalnızca aktif sunucu kapısı ve sonuçlarla gerçek canlı kutular; uygun veri yoksa nötr not ve genel bakış linki — demo kişi, demo buluşma veya örnek topluluk etkinliği yok ana sayfada.

Referans URL /tr/communities/neu-in-berlin: canlı detay URL’si gibi yalnızca girişten sonrayönlendirme örnek detayı veritabanı kaydı olmadan (sayfa formunun gösterimi olduğunu belirten kısa metin; demo üye, demo sohbet, aktivite veya RSVP bölümü yok); „Genel bakışa dön“ ve isteğe bağlı „Topluluk öner“ ile SafetyNotice. Mesajlar (/messages) orada bağlı değil.

Topluluk detay düzeni: Mekan/etkinlik detayı gibi hero banner (topluluk renkleri): onaylanmış toplulukta kapak görseli, yoksa tema/placeholder — görsel altında harita yok. Başlık ve üye sayısının altında meta satır katılım modu („Katılım: doğrudan“ vs „Katılım: ekip onayı“). Canlı topluluklarda görsel altındaki pill’de Paylaş, isteğe bağlı Topluluk sohbeti (yalnızca aktif üyeler, teknik koşullar altında) ve aktif olmayan üyeler için „Topluluğa katıl“ / „Katılım iste“ — bu pill’de „Tüm topluluklar“ kısayolu yok; aktif üyelikten sonra katıl adımı burada artık görünmez (Üyeliği sonlandır sidebar’da eskisi gibi). Altında iki sütun yönelim, „Bu sayfa ne sunar“ (kısa bloklar/chip’ler, sosyal meta yok), arada sakin „Nasıl katkıda bulunabilirsin“ (üyelik, öneri ve küratörlü uygulama içi bildirim ipuçları /profile referansıyla, paylaşım ve bildirim — yeni sosyal işlev yok), bağlıysa küratörlü mekan ve etkinlikler — forum/popülerlik olmadan sakin görünüm. Sayfa korumalı topluluk arayüzüne aittir: MerhabaMap oturumu olmadan önce girişe yönlendirme (/tr/communities gibi). Referans neu-in-berlin: pill (gerçek DB topluluğu olmadan) yalnızca Paylaş; not metni ve CTA’lar (Genel bakışa dön, Topluluk öner) hero altında — tematik demo sırası ve /messages yok.

Topluluk öner outline düğmesi veya Plus menüsü ile; rota /tr/communities/suggest (veya /tr/…) review-first: giriş olmadan uygulama /tr/auth/signin next ile öneri URL’sine; girişten sonra TR/DE başlık/açıklama, temalar, odak şehri (mekan/etkinlik önerisi gibi kombi: yaz, ana veriden seç) veya ülke geneli ile onay gönder — lütfen veri ekonomisi ile yaz; metinler onay sonrası herkese açık olabilir. Kapak görseli isteğe bağlı: Görsel olmadan gönderebilirsin. (Ortamda açıksa) görsel eklersen teknik ve içerik ön incelemesinden geçer — kabul hakkı yok; red veya geçersiz dosyada metin önerisi görsel olmadan kalır. Onay sonrası ekip bu görseli — teknik olarak varsa ve herkese açık gösterilebiliyorsa — genel bakış ve detayda tek topluluk kapağı olarak kullanabilir (yoksa tema placeholder); belirli motif garantisi yok, görünür kişi veya hassas görüntü yüklemeye teşvik yok. Onay olmadan herkese açık topluluk sayfası oluşmaz; gönderimden sonra sakin onay ve inceleme notu. Onay sonrası genel bakışta herkese açık, küratörlü yönelim profili — grup sohbeti yok, herkese açık topluluk feed’i yok, herkese açık üye listesi ürün yüzeyi değil.

Profil: Toplulukların (yalnızca senin için)

/tr/profile Genel bakış bölümünde (Şehirlerim’den sonra, mekan/etkinlik/favori/koleksiyon hızlı linklerinden önce) Topluluklarım kartı — yalnızca üyeliklerin, başka üyelerin adları yok. Topluluklar V1.9.1 / V1.9.2: satır başına moderasyonun bu toplulukta yeni herkese açık küratörlü mekan veya etkinlik bağladığında uygulama içi bildirim alıp almayacağını belirlersin — varsayılan açık (kapatılabilir); anahtar yalnızca burada, /user/… altında değil. Ek olarak Bildirimler altında ilgili genel uygulama içi kanalları kapatmamış olmalısın; V1.9.2’de bu ipucu için e-posta ve push yok. Diğer üyeler veya genel topluluk aktivitesi için bildirim yok — yalnızca yeni küratörlü bağlantılar ( kendi mekan/etkinlik önerilerin, claim’ler, link önerileri ve topluluk katılımlarının inceleme sonuçları ayrı bildirim kanalları Profil → Bildirimler). Not: Çerez/analytics onayı mm_consent (onay banner’ı) bu ayarı kontrol etmez — hesapta üyelik satırında (V1.9.x ayrımı). Profil istatistik satırında Topluluklar yalnızca aktif üyelikleri sayar. Herkese açık kayıtlar /tr/communities/{slug} linkler. Topluluk delisted (herkese açık değil) ise link yerine not; üye kalırsın, herkese açık detay bulunamaz (misafirler için 404). Başka /tr/user/{username} sayfalarında aynı topluluk listesi otomatik geçerli değil: yalnızca profil görünürlüğü ve „Topluluklar“ anahtarına göre — sonraki paragraf (delisted satır, rol/joinedAt/üye durumu ziyaretçiler için yok).

Hemen altında /profile Gönderiler bölümünde (#submissions, Hesap ve Ayarlar’da ayrı nav): beş özel kart — Mekan önerileri, Etkinlik önerileri, Topluluk önerileri (/communities/suggest ile), Bağlantı önerileri (topluluklardan kendi mekan/etkinlik link önerilerin) ve Katkı talepleri. Hepsi yalnızca hesabın için (genel kullanıcı profili değil, „Görünür profil alanları“ ile ilişkili değil). Mekan/etkinlik önerileri, claim’ler, business gönderileri, link önerileri veya topluluk katılımları onay/red sonrası nötr uygulama içi bildirim (gelen kutusu + mobil uyarı, isteğe bağlı push) — moderasyon gerekçesi yok; kanallar Profil → Bildirimler’den kapatılabilir. E-posta paralel, uygulandığı yerde. Başkaları için herkese açık öneri listesi yok ve yorum/upvote/sayaç satırı yok. Bağlantı ve topluluk önerilerinde durum etiketleri vb.: „Alındı“, „Kabul edildi“ / „Yayınlandı“, „Kabul edilmedi“ (REJECTED — profilde herkese açık moderasyon gerekçesi yok, itiraz veya sohbet diyaloğu yok). Topluluk detay, mekan veya etkinlik linki yalnızca herkese açık listelenen hedeflerde; delisted veya listelenmeyen hedeflerde sessiz not, tıklanabilir link yok. Kullanıcı B, Kullanıcı A’nın gönderi listelerini görmez (/profile her zaman yalnızca kendi hesabın).

Görünür profil alanları (ince ayar, web): Hesap ve Ayarlar → Profil ve içerik altında /tr/user/{username} genişletilmiş profilde başkalarının göreceği alanları belirlersin (kaydedilen mekanlar, etkinlikler, koleksiyonlar, takipçi/takip sayıları ve listeleri, topluluklar, „Aktiviteler ve gönderiler“ vb.). Kısa açıklama (bio) zaten kısa profilde (ad ve görsel yanında); anahtarlar diğer kartlar içindir. UI yaklaşık „görünür profil alanları“.

  • Herkese açık profil: tüm ziyaretçiler için — yalnızca açık alanlar gösterilir (PUBLIC olduğu için otomatik her şey görünür değil).
  • Gizli profil: onaylı takip olmadan yabancılar yalnızca minimal profil; onaylı takipçiler yalnızca açık alanları görür.
  • Profil gizliyken: ince ayar anahtarları devre dışı (gri), kaydedilmiş açık/kapalı değerler kalır — tekrar Herkese açık veya takipçiler için alanlar görünür olunca geçerli olur.
  • Gizli → Herkese açık: Geçişte tüm alanlar kapalıysa ve bu oturumda anahtarları henüz ayarlamadıysan önce hepsi açılır; sonraki bireysel seçim kayıtta uygulanır.

/followers ve /following alt sayfaları yalnızca ilgili alan görünür olmalıysa erişilebilir (sahip her zaman; aksi halde yukarıdaki kurallar ve bayraklar) — yoksa 404 (deep link sızıntısı yok). /tr/profile senin için bağımsız kalır. Sahip olarak /tr/user/{kullanıcıAdın} tam gösterilir (uygulama çerçevesinde). „Aktiviteler ve gönderiler“ hem aktivite listesini (varsa) hem gönderilen mekan ve etkinlik sayacı ve listelerini kapsar — ayrı „Contributions“ anahtarı yok. Not (aktivite metinleri): Başkasının herkese açık profiline bakarken „Son aktivite“ girişleri profil sahibi perspektifinden (ziyaretçi olarak yanıltıcı „Sen“ / „sen“ yok); kendi /user/{username}’inde uygun ikinci kişi (ör. şehir takibinden sonra).

Topluluk detayı (canlı): Katılma ve ayrılma

Veritabanından detay sayfalarında (slug ile herkese açık topluluk — demo URL neu-in-berlin değil) giriş yapmış kullanıcılar topluluğa katılabilir veya ayrılabilir.

  • Yalnızca giriş yapmış ziyaretçiler: Topluluk detayı yalnızca MerhabaMap girişinden sonra (oturumsuz önce giriş next ile); eski „misafir hero gizleme“ artık yok — sayfa erişim kontrolü açısından tam giriş yapmış görünüm. Katıl / Ayrıl sağ sütunda „Üyelik“ küçük başlığı altında (eskiden „Durum ve güvenlik“); hero pill’deki „Topluluğa katıl“ diğer topluluk birincil eylemleriyle aynı topluluk mavisi dilinde. Sayfa sonunda açılır „Kurallar, katılım ve bildir“ bölümünde önce kurallar/güvenlik; altında pill sekmeler (mekan detay Bildir/Claim gibi) „Katılım“ veya „Bildir“katkı formu ve bildirim formu aynı anda görünmez.
  • Bağlam („Üyelik“): Kısa metin ve Katıl/Ayrıl; altında isteğe bağlı aktif üye avatar özeti (yalnızca örnek). Avatar ve sayım detayları açılır satırda. Herkese açık profiller herkese görünür; gizli profiller MerhabaMap’te takip etmediğin sürece görünmez (etkinlik Katılıyorum/İlgileniyorum gibi); kendi avatarın her zaman görünür.
  • Düğme altı not (gizlilik/beklenti): Herkese açık detay tam üye listesi göstermez; etkinlik katılımları ile aynı gizlilik ile özet var. Başka profil sayfalarında üyelikle görünüp görünmeyeceğin profil görünürlüğü ve „Topluluklar“ alanına bağlı. Katılım yine otomatik feed başlatmaz.
  • Yalnızca üyelik: Katıl/ayrıl yalnızca topluluk üyeliğini değiştirir — bu sürümde grup anket/takvim feed’i yok („Gönderiler“ sekmesine bak).
  • Harita alanı (mobil): Hero altında harita başta kapalı olabilir — „Haritayı göster“ ile aç; orta genişlikten itibaren aç/kapa olmadan görünür.
  • Sekmeler: ACTIVE olmayan giriş yapmış kullanıcılar „Genel bakış“ ve „Mekanlar ve etkinlikler“ (bu sırayla); ACTIVE üyeler ek „Gönderiler“ — sıra: „Genel bakış“, „Gönderiler“, „Mekanlar ve etkinlikler“. Varsayılan sekme: „Genel bakış“. Katılım (durum, ekip istekleri, kısa notlar) ve bildirim formu ana sekmelerde değil, sayfa sonunda açılır „Kurallar, katılım ve bildir“: üstte kurallar, sonra Katılım / Bildir sekmeleri (mekan detay yardımcı alanı gibi). „Gönderiler“ sekmesinde aktif üyeler kısa gönderi yayınlayabilir (etkinlik detay gönderileri gibi); MerhabaMap yönetimi/moderasyon ve topluluk ekibi (owner/moderatör) gönderileri işaretli. Gönderi başına yorumlar (giriş yapmış); ACTIVE olmayanlar „Gönderiler“ sekmesini görmez. Topluluk sohbeti (hero pill’de varsa) bu gönderilerden farklı alan.
  • Topluluğa bağlı etkinlik (detay girişi): Aktif üyeler „Mekanlar ve etkinlikler“ sekmesinde „Etkinlik gönder“ ile bu topluluk için yeni tarih başlatır (/submit/event?community=<slug>). Owner veya moderatör **„Bekleyen topluluk etkinlikleri“**nde bekleyen önerileri Onayla (herkese açık etkinlik ve bu sayfada bağlantı tek adımda) veya Reddet — eski ikinci adım „slug ile herkese açık etkinliği topluluğa bildir“ yok. Slug ile herkese açık mekan/etkinlik öner (aynı sekmede form) değişmedimevcut yayımlanmış kayıtlar; kısaltılmış akış yalnızca bu topluluk bağlamından yeni gönderilen etkinlikler için.
  • Üye mekan/etkinlik önerisi (V1.7):
    • Kim yapabilir? Yalnızca bu toplulukta ACTIVE üyelik. Üyelik yoksa başarılı gönderi yolu yok — açıklayıcı not.
    • Nerede? „Mekanlar ve etkinlikler“ sekmesinde küratörlü listeler ve öneri formunun altında (/tr/communities/{slug} veya /tr/…; veri kaydı olmayan demo URL değil).
    • Slug kullan: Zaten herkese açık mekan veya etkinliğin slug’ını gir — /tr/places/{slug} / /tr/events/{slug} adresindeki ile aynı (serbest web URL’si parse edilmez).
    • Gerekçe kısa: „Gerekçe“ isteğe bağlı, metin girersen (trim sonrası max. ca. 300 karakter): kısa ve nesnel — moderasyon ve ekip kararı için; topluluk sayfasında herkese açık gönderi değil (öneri altında yorum sütunu yok).
    • Başkalarına açık değil: Uygulama „Öneri“ dilini „ekibe gönderildi“ anlamında kullanır — ziyaretçi/üyeler bekleyen öneri listesi veya sayaç görmez.
    • Sonra ne olur? — Üye önerisi incelemesi: Kabul veya red sonrası nötr uygulama içi bildirim (gelen kutusu, mobil uyarı) — metinde moderasyon gerekçesi yok. İsteğe bağlı push; e-posta ekip ayrı tetiklerse. Durum /profile#submissions (Bağlantı önerileri). Topluluklar V1.9.2’den ayrı:
    • Yeni küratörlü mekan/etkinlik (V1.9.2 sonrası, üyeler için isteğe bağlı): Aktif üyelikler „Topluluklarım“ ve Bildirimler’de moderasyonun herkese açık sayfada yeni bağladığı mekan/etkinlik için sistem uygulama içi ipuçları alacak şekilde ayarlanabilir — tüm üyeler için — kişisel öneri inceleme sonucu bildirimiyle aynı değil.
    • Üstlenme taahhüdü yok: Ekip „Mekanlar ve etkinlikler“ sekmesinde bağlı kayıtları yönetebilir — işlem süresi veya her üye ipucunun garanti kabulü taahhüdü yok.
  • Ekibe katkı talebi (V2.0.1 — kompakt ekip mesajı):
    • Kim? Yalnızca aynı detay sayfasında herkese açık listelenmiş toplulukta ACTIVE. Misafir ve NONE/LEFT/PENDING/BANNED form yok — kısa not.
    • Nerede? Sayfa sonu açılır „Kurallar, katılım ve bildir“ (Katılım sekmesinde katkı notları ve ekip talebi; Bildir sekmesinde bildirim formu) — yalnızca bildirim bölümünde değil.
    • Akış: Tür seç, mesaj (max. 500 karakter; veri ekonomisi — hassas/özel iletişim bilgisi yok); ek yok, ek iletişim alanı yok. Dahili incelenir; kişisel yanıt taahhüdü yok. E-posta/push yok; başkaları topluluk sayfasında talep listeni görmez.
    • Yalnızca /profile#submissions (V2.0.2 / V2.2.3): Katkı talepleri (Gönderiler sekmesi; orada değişiklik yok tek istisna tek seferlik geri soru yanıtı): son kendi kayıtların durumla — herkese açık değil, /user/{username}’de değil, topluluk detayında değil. V2.2.3: Ekip tek seferlik geri bildirim kaydederse metin burada özel „Ekipten yanıt“ altında — sohbet değil, işleyen adı yok. V2.3.3: Ekip geri soru kaydettiyse „Ekipten geri soru“ ve ACTIVE + topluluk herkese açık listelenmiş ise bir kez (10–500 karakter) „Yanıtın“ altında — thread yok, gönderimden sonra ek katkı yok; yanıt gönderiminde uygulama içi/toast/e-posta/push bildirimi yok. V2.3.4b: Ekip geri soruyu ilk kez kaydederse nötr Bildirimler ve web toast (kanal Katkı geri sorusu) — soru düz metni bildirimde yoke-posta/push yok; geri soru düzenleme ikinci bildirim göndermez. V2.2.4b: İsteğe bağlı uygulama içi ve web toast ilk ekip yanıtında (nötr; Bildirim ayarları’ndan kapatılabilir) — e-posta/mobil push yok. /profile giriş metinlerine bak. Kayıtlı ekip yanıtı yoksa yalnızca kendi mesajın ve durum („Topluluk önerilerim“ gibi thread yok).
  • Küratörlü mekan/etkinlik (boş durum): Moderasyon bağlantısı yoksa nötr metin; iki eşit outline düğme Etkinlik genel bakış ve Mekan genel bakış (/events / /places, locale öneki ile), topluluk için aktivite taahhüdü yok.
  • Owner rolü: Bu rolle topluluğu „Ayrıl“ ile bırakamazsın (yönetim ataması koruması).
  • Yasaklı veya beklemede: BANNED veya üyelik PENDING ise katılamazsın. Owner/moderatörler bekleyen katılım isteklerini sidebar kuyruğunda kabul/red; yeni istekte uygulama içi bildirim ( Profil → Bildirimler’den kapatılabilir, e-posta yok).
  • Topluluğu bildir: Sayfa sonunda „Kurallar, katılım ve bildir“bildirim formu (topluluğa özel nedenler; isteğe bağlı metin). Giriş yoksa giriş sonra geri. Bildirimler herkese açık değil, sayfa otomatik gizlenmez — ekip inceler.
  • Kurallar ve güvenlik (SafetyNotice): Yine „Kurallar, katılım ve bildir“kısa nesnel çerçeve; üye ad listesi yok, yalnızca hero/not’ta toplam sayı — hukuk/DSGVO pazarlama vaadi yok, korku mesajı yok.

Mobil uygulama auth davranışı (Capacitor native, Faz 5c–5p)

Yüklü iPhone/Android uygulaması giriş/çıkışta iki noktada mobil tarayıcıdan farklı davranır (int.merhabamap.com):

  • Auth-first başlangıç. İlk açılış veya çıkış sonrası doğrudan /tr/auth/signin (veya /tr/auth/signin), genel landing değil. Uygulama „giriş yaparak kullan“ için tasarlandı; Capacitor’da genel keşif (harita, mekan, etkinlik) varsayılan giriş değil.
  • Native „Google ile devam et“ / „Apple ile devam et“ (Faz 5n). Capacitor iOS’ta Google/Apple dokunuşu sistem giriş sayfasını (Apple Face ID/Touch ID, Google hesap seçici GoogleSignIn SDK) uygulama içinde açar. Safari’ye geçiş yok, tarayıcılar arası çerez sıçraması yok, eski „giriş başarısız ama aslında oldu“ tuzağı yok. int.merhabamap.com mobil tarayıcı klasik web OAuth redirect (Supabase) kullanır.
  • E-posta ile devam et / Magic Link. Her iki yolda aynı: adres, posta, linke dokun. Uygulamada Magic Link doğrudan uygulamayı açar (AASA universal link), harici tarayıcı yok — aynı WebView bağlamında giriş.
  • Drawer’dan çıkış (Faz 5o) uygulamada doğrudan giriş ekranına (/auth/signin?loggedOut=1), masaüstü tarayıcıdaki genel locale home değil. „Çıkış yapıldı“ toast bir kez.
  • Davet kodu (kapalı rollout, isteğe bağlı). int.merhabamap.com ve MerhabaMap uygulaması (TestFlight/Play kapalı test) için davet kodu girişi yok — doğrudan giriş. Operasyonel: Davet kapısı yalnızca AUTH_SIGNUP_INVITE_GATE=force (vb.) ile AUTH_SIGNUP_INVITE_CODES. Defense in depth: Native Capacitor build’lerde sunucu yanlışlıkla inviteRequired=true döndürse bile istemci bypass gate bileşeninde kalır.

Auth sayfası uygulamada kartsız gri bg-muted arka planda (Faz 5l/5p, üst/alt seamless safe area — iOS durum çubuğu/home indicator üstünde görünür „beyaz bar“ yok). Düzen: dar başlık yalnızca dil değiştirici sağda; altında ortalanmış logo ve marka (İngilizce orijinal); altında giriş formu. Dar mobil tarayıcı viewport’unda uygulama ile aynı kabuk — geniş masaüstünde site başlığı altında alışılmış kart tasarımı.

Rota tablosu

SayfaRotaAçıklama
Başlangıç (pazarlama)/trHerkese açık giriş: hero + giriş kartı (tek CTA /tr/auth/signin), mekan/etkinlik/topluluk/harita teaser; başlık yalnızca logo + dil; mobilde alt tab yok; altında Güven. Ürün rotaları oturum gerektirir (middleware → /tr/auth/signin?next=…).
Home/tr/homeKarşılama ve gönderi oluştur girişi; altında Keşfet (varsayılan — ayarlardan ilgi alanları) ve Sosyal (?tab=socialŞehirlerin bloğu üstte takip ağı Feed V2). Yalnızca oturum. Eski ?view=cities Sosyal açar.
Feed (yönlendirme)/tr/feedSunucu yönlendirmesi /tr/home (?tab=discovery; eski ?mode=local?tab=social). Eski yer imleri/deep link — ayrı feed sayfası yok.
Topluluklar/tr/communitiesHerkese açık topluluk yönelimi: profil şehir/tema/kapsam filtre; giriş yapmış ilk görünüm mekan/etkinlik gibi profil şehri URL’de (city ve scope=nationwide yoksa). V1 genel bakışta tam üye listesi yok, grup sohbeti yok; detayda „Gönderiler“ sekmesinde üye gönderileri. Yalnızca oturum.
Mekanlar/tr/placesTüm herkese açık mekanları ara (yalnızca oturum).
Etkinlikler/tr/eventsTüm herkese açık etkinlikleri ara (yalnızca oturum).
Harita/tr/mapHaritada mekan keşfi (yalnızca oturum).
Şehirler/tr/citiesAlman şehirleri mekan/etkinlik sayılarıyla; karo tıklama /tr/cities/{slug} (yalnızca oturum).
Arama/tr/searchMekan ve etkinlik ara (yalnızca oturum).
Mesajlar/tr/messages (web) / Inbox simgesi (mobil)DM gelen kutusu ve grup/etkinlik sohbetleri; mobil her iki liste sekme (Direkt/Gruplar, ayrı okunmamış rozet) ve her iki tipte gönderim dahil görsel eki
Bildirimler/tr/notificationsTakip, yorum, faydalı işaretleme, liste davetleri, gruplar
Hesap ve Ayarlar/tr/profileProfil, bildirimler, gizlilik, güvenlik, istekler, hesap verileri (yan menü veya mobil seçim)

4. Tipik akışlar

Home / kişiselleştirilmiş keşif

  1. Henüz giriş yapmadıysan giriş yap (deep link /tr/home aksi halde next ile girişe yönlendirir).
  2. /tr/home aç (masaüstü: Home menüsü; mobil: ilk alt tab). İlk manuel ziyarette (onboarding ?welcome=onboarding hemen sonrası değil) önce ilgi alanlarını kur (mekan, etkinlik, topluluk temaları — her alanda en az bir seçim, mantıklı varsayılanlar; alan başına Tümünü seç mümkün). Home’u kur ile kaydedilir; feed sonra görünür.
  3. Üstte: kişisel karşılama ve gönderi oluştur için tek ortak giriş; altında Keşfet ve Sosyal (?tab=social) arasında geç.
  4. Keşfet: modüler özet (ilgi alanları filtreli): Editoryal, Business gönderileri, Bugün dışarı, Kullanıcı gönderileri, Topluluk örneği, Etkinlikler, Mekanlar, Haberler (koleksiyon yok). Sosyal: önce Şehirlerin aktiviteleri (kendi randevular, sosyal sinyaller, koleksiyonlar, haberler — etkinlik/mekan yok), altında takip ağından Feed V2. Eski ?view=cities Sosyal açar.
  5. Eski /tr/feed linkleri otomatik /tr/home uygun sekmeye yönlendirir.
  6. Detay sayfasına gitmek için girişe tıkla.

Mekan keşfet ve kaydet

  1. Giriş yap (liste, harita ve detay rotaları aktif oturum gerektirir).
  2. /tr/places aç veya /tr/map haritasını kullan. Liste genel bakışında başlıkta outline „Mekan öner“ düğmesi artık yok — Plus menüsü veya /submit/place kalır. Filtreler ayrı „Filtrele“ tıklaması olmadan hemen etkili (arama, şehir, kategoriler, sıralama); serbest metin arama /tr/communities gibi kısa debounce. Organik sıra: harici puanlar (ör. Google) sıralamayı etkilemez — yalnızca kartta gösterilir. Benzer sinyallerde aktif Business PRO/Enterprise sahiplerinin mekanları hafif yukarı (ücretli top sıralama değil; öne çıkan bölümler ayrı, editoryal). Pro/Enterprise rozetleri (kartta marka kırmızısı, mor „Öne çıkan“dan ayrı) aktif abonelikli ticari mekanları gösterir — görünürlük, Featured yerine geçmez. Aktif filtreler: satırı en az bir chip gerektiğinde: X tek girdiyi kaldırır, Tümünü sil temel URL’ye döner (ızgara: layout=grid kalır).
  3. Bir mekana tıkla
  4. /tr/places/{slug} açılır
  5. Detay sayfasında (sekmeler ve yan panel):
    • Hesap olmadan: Başlık görseli altında bulanık harita önizlemesi (statik çevre görüntüsü) ve Giriş yap notu; etkileşimli harita ve kaydetme gibi eylemler girişten sonra.
    • Kaydet: Kalp simgesine tıkla
    • Rota: Navigasyon için „Rota“
    • Paylaş: „Paylaş“ — mobilde sistem paylaşım sayfası (Instagram Story, WhatsApp vb.), masaüstünde link kopyalanır. Sağdaki küçük ok düğmesi kanal menüsü: WhatsApp, Telegram, X (Twitter), Facebook, E-posta, Linki kopyala ve „Insta Story görseli indir“ (1080×1920 PNG, kapak, ad, şehir, kategori, QR — Instagram Story yüklemek için)
    • Galeri: Görseller sekmesi veya Genel bakış önizlemesi; tıklama lightbox
    • Yaklaşan etkinlikler: Bu mekanda etkinlik varsa Etkinlikler sekmesi
    • Uygun topluluklar: Genel bakış’ta moderasyon herkese açık topluluklarla bağladıysa — kısa liste, topluluk detay linki, üye listesi yok; bağlantı yoksa bölüm yok
    • Topluluk gönderileri / sahip haberleri: Onaylı herkese açık gönderi varsa Gönderiler sekmesi; yoksa sekme yok — Genel bakış’ta Gönderi oluştur linkli not
    • Benzer mekanlar: Benzer sekmesi
    • Yorum: Sohbetler sekmesi — yorum alanı, „Gönder“
    • Yorumu faydalı işaretle: Yorum altında başparmak (tekrar kaldır)
    • Listelerim (koleksiyonlar): Genel bakış’ta Topluluk yanında iki sütun — istenen listeyi etkinleştir (kendi veya düzenleyici olduğun paylaşımlı listeler). Etkinleştirince otomatik Favorilerim · Mekanlar’a eklenir. Mekan liste anahtarları marka kırmızısı.
    • Benden: Bu mekana gönderilerin ve yorumların kısa özeti (sayılar ve son girdiler)

Etkinlik bul ve katıl

  1. /tr/events aç veya feed’den etkinlik bul
    • Liste genel bakışında başlıkta outline „Etkinlik öner“ yok — Plus menüsü veya /submit/event.
    • Filtreler (başlık): Şehir /tr/places gibi aranabilir combobox — veritabanındaki Alman şehirleri listede (etkinlik olmasa da; arama sonuç vermeyebilir). İlk seçenek Tüm şehirler (?city=all), sonra tek şehir (?city=<slug>). Kategori, dönem, sıralama — isteğe bağlı kombine; değişiklikler hemen, serbest metin kısa debounce. Filtre varken Aktif filtreler: chip’ler X ve Tümünü sil (ızgara: layout=grid kalır).
    • Eksen filtreleri (alt chip sırası):
      • Fiyat mantığı (çoklu: Ücretsiz, Ücretli, Bağış tabanlı) — fiyat bilgisi olmayan etkinlikler bu filtre aktifken gizlenir
    • Eski hedef kitle filtresi (Aileler, Öğrenciler vb.) kaldırıldı
    • Filtreler URL’de temiz (ör. ?pricing=FREE), paylaşılabilir/yer imi
    • Öne çıkan etkinlikler (Faz 4): Liste üstünde küçük „Öne çıkan etkinlikler“ bölümü, en fazla 1–2 kart. Mor „Öne çıkan“ rozeti (detayda da). MerhabaMap ekibi editoryal seçer — ücretli reklam değil, organik feed’de tercihli sıra yok. Dini etkinlikler ve ticari olmayan etkinlikler asla öne çıkarılmaz. Kendi filtrelerini (arama, fiyat, tarih, sıralama) ayarlayınca bölüm gizlenir.
  2. Etkinliğe tıkla
  3. /tr/events/{slug}
  4. Katılım bölümünde „İlgileniyorum“ veya „Katılıyorum“
  5. İsteğe bağlı: kaydet, paylaş, yorum; eylem düğmeleri altında Arkadaş davet et — kullanıcı adı ve Mesaj aç (bu kişiyle DM), isteğe bağlı etkinlik sayfası QR kodu. Paylaş düğmesi sağda ok: WhatsApp, Telegram, X, Facebook, E-posta; etkinlik ve mekanlarda ek „Insta Story görseli indir“ — 1080×1920 PNG
  6. Katılımcı (İlgileniyorum/Katılıyorum): „Etkinlik sohbetine katıl“ — web /tr/messages/groups/{threadId}, mobil /groups/{threadId}
  7. Detayda ek olarak:
    • Galeri: Kaydırılabilir küçük resimler (varsa)
    • Mekan linki: Etkinlik yeri tıklanabilir mekan detay linki (bağlıysa)
    • Uygun topluluklar: Genel bakış’ta moderasyon bağladıysa — kısa liste, üye listesi yok
    • Topluluk gönderileri: Bu etkinliğe kullanıcı gönderileri
    • Listelerim: Genel bakış’ta Topluluk yanında — etkinliği listeye ekle. Etkinlik liste anahtarları kasıtlı monokrom (siyah/gri)
    • Katılımcı avatarları: Katılımcı/ilgilenen listesi avatar ve ad — gizli profiller Instagram gibi: takip ediyorsan görünür, değilse anonim (baş harf/simge). Kendi avatarın her zaman görünür.
    • Benzer etkinlikler: Sayfa sonunda (aynı kategori, şehir, yaklaşan)

Arama

  1. /tr/search
  2. Arama terimi gir
  3. İsteğe bağlı: şehir filtresi
  4. Sonuca tıklayarak detaya git

Harita

  1. /tr/map aç. Yalnızca Almanya haritasında (?city=… yok) etkileşimli harita üst/alt başlık arasını doldurur; „Şehir gir“ alanı haritanın sağ üst overlay’i. Almanya haritası altında sayfa sonuna/footer’a kadar ek ipucu/liste şeridi yok. ?city=… (şehir haritası): ayrı hero yok — harita kartında üstte şehir adı ve „Şehiri takip et“ (veya giriş notu/takibi bırak) yan yana, altında Almanya genel bakışına dön, kısa metin ve filtreler; kare haritada Almanya görünümüyle aynı „Şehir gir“ overlay sağ üst; treffer listesi harita altında. Altında (mekan/etkinlik gibi) Seçili mekanlar, Yaklaşan etkinlikler ve bu şehirde birincil şehirli herkese açık topluluk ızgarası; Bu şehrin tüm toplulukları şehir filtreli topluluk keşfine gider.
  2. Haritada gezin, şehre yakınlaş
  3. Pin’e tıkla, mekanı gör
  4. Mekan adına tıklayarak detaya git

Mesaj gönder (DM)

Web:

  1. /tr/messages
  2. Mevcut sohbet seç veya yeni başlat
  3. /tr/messages/{username}. Masaüstü web ( md ve üzeri): görünen ad ve @kullanıcıadı sağında Bu kullanıcıyı engelle ve Konuşmayı bildir (alt alta, sağa hizalı); tıklama mevcut açılır bölümleri açar. Dar web viewport (< md, Mobile-Shell gibi): uygulama başlığı altında yapışkan satır solda görünen ad ve @kullanıcıadı, sağda Son aktif (veya çevrimiçi) ve yuvarlak „⋯“ menüsü Kullanıcıyı engelle, Konuşmayı bildir, Sohbeti sil — sil yalnızca senin mesaj listenden gizler; yeni mesaj tekrar görünür yapabilir.
  4. Mesaj yaz ve gönder. Konum paylaş: Pin simgesi → haritada pin veya Mevcut konum; Konum gönder veya Canlı konum; isteğe bağlı Adres göster; isteğe bağlı Yakın buluşma noktası. Baloncuk → /tr/map/shared Rotayı göster ve doğruluk çemberi. Kendi canlı konum: Canlı paylaşımı bitir. Başkasının konum mesajı: uzun bas → Konumu bildir. Canlı: web yalnızca ön planda; Native uygulama arka planda da. Masaüstü web: Partner başlığı altında Mesaj listesine dön linki kalır; Mobile-Shell (< md / native) gizler — geri: sol kenardan kaydır (inbox), başlıktaki Mesajlar simgesi veya sistem geri. Composer’da fotoğraf simgesiyle mesaj başına en fazla 5 görsel (JPG, PNG, WEBP, max 5 MB). Seçilen görseller composer üstünde önizleme; ✕ ile tek tek kaldır. Limite ulaşınca „Mesaj başına en fazla 5 görsel“ toast. İsteğe bağlı altyazı. Görsele dokun: tam ekran (birden fazlaysa ok ile geç). Sağ üst Kaydet sistem paylaşım sayfası (iPhone: „Görseli kaydet“). Otomatik link koruması: Metin tipik spam kalıpları içerirse (kısa linkler, çok link, sert spam ifadeleri) sunucu gönderimi reddeder — composer’da not; grup ve topluluk sohbetlerinde de geçerli. Okundu: Kendi mesajlarında balon sağ altta saat ve çift tikgri = gönderildi, mavi = okundu (partner sohbeti açtı). Uzun bas / sağ tık: üstte emoji, altında Yanıtla, Kopyala, (yalnızca kendi) Sil. Yanıtla composer üstünde önizleme; gönderim orijinale bağlanır.
  5. Yeni sohbet başlamazsa (engel veya karşı taraf DM’yi /tr/profile Gizlilik’te kısıtladıysa) sohbet yerine not.

Mobil uygulama:

  1. Ana görünüm sağ üst zarf simgesi — inbox
  2. Tüm DM’ler önizleme, zaman, okunmamış rozet; yenilemek için çek
  3. Satıra dokun — açılışta otomatik okundu. Sabit başlık altında yapışkan satır: solda görünen ad ve @kullanıcıadı, sağda Son aktif ve „⋯“ menüsü Engelle, Bildir, Sohbeti sil. Inbox: sol kenardan kaydır, başlık Mesajlar, sistem geri — masaüstü metin linki yok.
  4. Mesaj yaz, Gönder; liste anında güncellenir
  5. Görseller (Dalga S.B + çoklu görsel): Composer solda 📷, medya erişimi, aynı anda en fazla 5 görsel (JPG, PNG, WEBP, max 5 MB). Her görsel ayrı önizleme kartı, n/5 görsel sayacı; ✕ ile kaldır. Limit aşımında toast. İsteğe bağlı altyazı. Gönderilen/alınan görsel: tam ekran; Kaydet iOS paylaşım (Fotoğraflar’a kaydet).
  6. Yeni sohbet profilden: /users/{username} Mesaj — engel varsa düğme yok. Hesap ve Ayarlar → Gizlilik’te DM takipçi/kimse ise not ile reddedilir.
  7. Ön planda realtime (Dalga S.C.1): Inbox/sohbet açıkken yeni mesaj ve okuma işaretleri canlı — pull-to-refresh gerekmez. Uygulamaya dönünce kaçırılan mesajlar otomatik çekilir.
  8. Arka plan push (Dalga S.C.2): İlk girişten sonra „Bildirimlere izin ver“ onayından sonra her yeni DM OS push (iOS/Android). Bildirime dokununca ilgili thread açılır. Push, uygulama içi bildirim ayarlarıyla aynı — Hesap ve Ayarlar → Bildirimler’de kapattığın push olarak gelmez. Çıkışta push token sunucudan kaldırılır.
  9. DM sessize al (Dalga T.C): Inbox’ta DM satırını sola kaydır, 🔕 Sessiz — bu DM artık OS push göndermez. Inbox rozeti ve web toast görünür kalır. 🔔 Sessizi kaldır aynı kaydırma veya sohbet başlığı toggle ile.

Grup sohbeti

Web:

  1. /tr/messages
  2. Grup bölümünden yeni grup oluştur
  3. /tr/messages/groups/{threadId}
  4. Mobil (web kabuğu): Başlık altında sabit bilgi satırı grup adı, üye/çevrimiçi sayısı; satıra dokun üye listesi (çevrimiçi = yeşil nokta). Üyeye dokun @username composer’a; Profil kullanıcı profili. Dışarı dokun kapat. Sağ Gruptan ayrıl, Grup üyesini engelle. Composer altta alt navigasyon üstünde — DM gibi
  5. Masaüstü: Başlık, inbox linki, ayrıl, engelle, bildir üstte; geniş viewport’ta sağda üye listesi
  6. Katılımcı davet et ve sohbet et. Uzun bas / sağ tık: emoji ve menü (Yanıtla, Kopyala, Sil kendi mesajlar). Yanıtla composer üstü önizleme. Kendi mesajlarında: iki gri tik = gönderildi, iki mavi tik = diğer tüm üyeler okudu.
  7. Anket ve Konum paylaş: Composer’da Anket (soru + seçenekler) ve Pin konum (haritada pin, anlık görüntü veya canlı 15 dk / 1 sa / 8 sa; isteğe bağlı Yakın buluşma noktası mekan/etkinlik) — serbest gruplar, topluluk ve etkinlik sohbetlerinde. Anketler: üyeler oy sayıları, seçenek başına kim oy verdi; oluşturan Anketi bitir ile kapatabilir. Konum: balonca dokun paylaşılan harita; canlı zamanlayıcı veya Canlı paylaşımı bitir; başkasının konum mesajı uzun bas bildir.

Mobil uygulama (Dalga T.A + T.B — web paritesi):

  1. Mesajlar sekmesi (inbox simgesi)
  2. Gruplar sekmesi — tüm grup ve etkinlik sohbetleri (en yeni üstte). Sekme başına ayrı okunmamış rozet
  3. Giriş /groups/{threadId} tam geçmiş (max 200 kayıt)
  4. Composer altta mesaj, Gönder. Web gibi 4000 karakter limit
  5. Görsel ekle: 📷, en fazla 5 görsel (max 5 MB, JPG/PNG/WEBP) — ek çubuğu önizleme ve n/5 görsel. ✕ ile kaldır, isteğe bağlı açıklama; boş metin otomatik [Görsel]. Görsele dokun: tam ekran; Kaydet sistem paylaşım
  6. Uzun bas: emoji ve menü (Yanıtla, Kopyala, Sil). Yanıtla composer üstü önizleme; ✕ hedefi kaldırır
  7. Açılışta thread otomatik okundu; inbox rozeti sonraki pull-to-refresh’te güncellenir
  8. Yeni grup (T.B): Gruplar sekmesi sağ üst + Yeni grup. Alt sayfada isteğe bağlı başlık ve üyeler virgülle ayrılmış kullanıcı adları (ör. ali, mehmet, zeynep — baştaki @ olabilir). Max 100 üye sen dahil. Grup oluştur sonrası doğrudan yeni thread
  9. Gruptan ayrıl (T.B): Sohbet sağ üst Ayrıl, onay diyaloğu. Sonra okuyamaz/yazamaz, tekrar davet gerekir
  10. Etkinlik sohbetine katıl (T.B): Etkinlikte İlgileniyorum veya Katılıyorum. Eylem satırında Etkinlik sohbetine katıl — thread oluşturur/açar
  11. Ön planda realtime (Dalga S.C.1): Grup inbox/sohbet açıkken canlı mesaj ve okuma — pull-to-refresh gerekmez. Uygulamaya dönünce kaçırılan mesajlar çekilir
  12. Arka plan push (Dalga S.C.2 / T.C): Arka planda/kapalıyken her yeni grup/etkinlik mesajı OS push (T.C) — mention ve yanıt daha özel push (aynı mesaj için iki push yok). Dokununca grup/etkinlik sohbeti açılır. Hesap ve Ayarlar → Bildirimler Gruplar — yeni mesajlar kapalıysa push yok. Tek thread sessize almak için Sessize al (sonraki madde), kanalı global kapatma yerine
  13. Thread sessize al (Dalga T.C): Inbox’ta ilgili thread sola kaydır🔕 Sessiz / 🔔 Sessizi kaldır. Anında toggle (optimistic UI). Sessiz thread listede 🔕 ve soluk rozet/önizleme. Detay ekranı sağ üst aynı toggle. Önemli: Sessiz yalnızca OS push — inbox rozeti artar, web toast gelir, realtime mesajlar görünür

Emojiler (mesaj, yorum, gönderi)

Tüm yazma yüzeylerinde giriş alanı yanında küçük gülücük düğmesi — emojiyi imleçte eklersin.

Düğmenin olduğu yerler:

  • DM composer (/tr/messages/<username>)
  • Grup/etkinlik chat composer (/tr/messages/groups/<threadId>)
  • Mekan/etkinlik/gönderi detay yorum formu
  • Gönderi editörü Metin adımı (/tr/home/post/new)

Kullanım:

  1. Emoji konumuna imleci koy
  2. Masaüstü tık / mobil dokun gülücük
  3. Masaüstü popover; mobil/iOS alttan bottom sheet
  4. Arama (DE arayüzde Almanca, TR arayüzde İngilizce — picker henüz Türkçe locale sunmuyorsa) veya kategoriler (gülücükler, insanlar, hayvanlar, yemek, aktiviteler, seyahat, nesneler, semboller, bayraklar)
  5. Emoji imleç konumuna eklenir, picker kapanır, imleç emojinin arkasında kalır

Notlar:

  • Emojiler cihaz yazı tipinde (Apple iPhone/Mac, Noto Android, Segoe Windows). Ek asset paketi yok
  • Mobil/iOS: bottom sheet klavye üstünde, klavyeyi kapatmadan yazmaya devam
  • Composer karakter limitleri aynı — emoji normal karakter (UTF-16 code unit)

Sticker (mesaj, yorum, gönderi)

Gülücük yanında sticker simgeli ikinci düğme — 44 el seçilmiş sticker Türkiye baskısı, emojiden büyük ve renkli, tamamen Türk temalı. Dört bölüm: Semboller ve kültür (hilal, nazar, tuğra, hat, derviş, saz, kemençe, lale …), Simge yapılar (Galata Kulesi, Ayasofya, Boğaz, Kapadokya, Pamukkale …), Yiyecek ve içecek (çay, Türk kahvesi, simit, baklava, kebap, döner, rakı tokuşması …), Futbol kulüpleri (dört jenerik forma klasik Süper Lig renklerinde — resmi logo, arma veya yazı yok, marka hakları).

Düğmenin olduğu yerler:

  • DM composer (/tr/messages/<username>)
  • Grup/etkinlik chat composer (/tr/messages/groups/<threadId>)
  • Mekan/etkinlik/gönderi yorum formu
  • Gönderi editörü Metin (/tr/home/post/new)

Sohbet (DM + grup/etkinlik):

  1. Gülücük yanı sticker düğmesi
  2. Masaüstü popover; mobil/iOS bottom sheet
  3. Arama (Almanca ve Türkçe, „cay“ → „çay“ transliterasyon) — sekme yok: 44 sticker dört bölüm başlığıyla; yazınca başlıklar gizlenir, düz ızgara
  4. Sticker küçük önizleme kartı giriş altında — görsel eki gibi. Mesaj başına max 5 sticker; limit toast
  5. Önizleme kartı X ile tek tek kaldır
  6. Gönder — metin ve sticker’lar tek mesaj

Yorum ve gönderi:

  1. İmleci sticker konumuna koy
  2. Sticker seç
  3. Sticker doğrudan imleç konumuna kısa ASCII kod olarak eklenir; yayında görsel render
  4. Kodu normal metin gibi düzenle/sil

Notlar:

  • Yalnızca sticker(lar) (metin yok) daha büyük — Telegram/WhatsApp gibi
  • Sticker + metin karışık daha küçük inline
  • Sohbette 5 sticker/mesaj sert limit (toast). Yorum/gönderide 5 yumuşak — 6+ toast, gönderim mümkün
  • 44 sticker iç AI üretimi, MerhabaMap kürasyonu — harici asset upstream yok
  • Futbol kulüpleri formları kasıtlı jenerik Süper Lig renkleri — logo/arma/yazı yok, bilinçli marka kararı
  • „Maşallah“, „Kolay gelsin“ gibi metin sticker’ları kapsam dışı — pack görsel sembollere odaklı

Koleksiyon oluştur ve paylaş

  1. /tr/collections aç (hesap menüsü)
  2. Yeni koleksiyon oluştur
  3. Mekana (/tr/places/{slug}) veya etkinliğe (/tr/events/{slug}) git
  4. Genel bakış sekmesinde Listelerim paneli (Topluluk yanında iki sütun) — istenen listeyi etkinleştir. Otomatik Kaydedilenler’e eklenir.
  5. Koleksiyonlar herkese açık veya gizli olabilir; mekan ve etkinlik içerebilir
  6. Koleksiyon detayında (/tr/collections/{id}) katkıcı davet: „Davet et“, kullanıcı adı, rol (Düzenleyici/Görüntüleyici)
  7. Düzenleyici mekan ekler/kaldırır; görüntüleyici yalnızca bakar
  8. Paylaşılan koleksiyonlar /tr/collections „Listelerin“ altında „Paylaşılan liste“ rozetiyle

Hesap ve Ayarlar (profil sayfası)

  1. /tr/profile aç (Hesap menüsü > „Hesap ve Ayarlar“) — mobil uygulama sol menü -> „Hesap ve Ayarlar“
  2. Web: Soldan bölüm (mobilde üst dropdown): Genel bakış, Profil ve içerik, İlgi alanları, Bildirimler, Gizlilik, Güvenlik ve giriş, İstekler ve gönderiler, Gönderiler, Hesap ve veriler (9 bölüm) 2a. Mobil uygulama: Üst sekmeler: Hesap (canlı), Gizlilik (canlı — DM kuralı, çevrimiçi durum, engel/sessiz listeler), Bildirimler (canlı — tüm uygulama içi kanallar), Güvenlik (canlı — durum salt okunur, değişiklikler web tarayıcı Magic Link hand-off), Hesap yönetimi (canlı — veri dışa aktarma JSON sistem paylaşım sayfası, hesap silme tarayıcıda) 2b. Genel bakış sekmesi (web masaüstü): Topluluklarım (özel üyelikler; delisted link yok) ve istatistik TopluluklarProfil: Toplulukların bölümüne bak. Gönderiler (#submissions) ayrı nav: mekan/etkinlik/topluluk/bağlantı önerileri, katkı talepleri.
  3. Profil ve içerik / mobil Hesap: Ad, kullanıcı adı (yalnızca açık onayla değişir), profil fotoğrafı (Görsel seç editör: zoom, kaydır, döndür, ayna; yuvarlak kesim = final), bio, şehir, dil, genel görünürlük (herkese açık/gizli), altında görünür profil alanlarıotomatik kaydedilir (ayrı Kaydet yok; kullanıcı adı istisna). Kaydedilen mekanlar, etkinlikler, koleksiyonlar, takipçi/takip, topluluklar, Aktiviteler ve gönderiler — gizli profilde de kayıtlı; herkese açık tüm ziyaretçiler, gizli onaylı takipçiler (yabancılar minimal profil); Profil: Toplulukların Görünür profil alanları. Bio yalnızca belirli linklerle (spam/kısa URL koruması); red mesajı anlaşılır.
  4. İlgi alanları: Mekan kategorileri, etkinlik kategorileri, topluluk temaları — alan başına en az bir; otomatik kaydedilir. Home (Keşfet ve Sosyal) ve Home topluluk önizlemesine etki. Yeni kullanıcılar ilk seçimi ilk manuel Home ziyaretinde; sonra burada. İstisna: Kişisel bağ (kaydedilen, ilgileniyorum/katılıyorum, topluluk üyesi) mekan/etkinlik/topluluklar kategori/tema dışında da görünür.
  5. Genel bakış: Kısa bilgi, genel profil /tr/user/{username}, istatistik (Topluluklar aktif sunucu kapısında), hızlı linkler, Topluluklarım, takip edilen şehirler, business profil (varsa), bağlı giriş yöntemleri (e-posta, Google, Apple). Mobil (native): Uygulama ve tanı kartı sürüm, build, platform, ortam (INT/Prod), web origin, dil, kullanıcı ref.; Tanıyı kopyala, Yardım, Sorun bildir; Yasal ve durum; Cihazlar ve oturumlar Her yerden çıkış. Drawer: MerhabaMap hakkında (/legal) yardım, changelog, erişilebilirlik, lisanslar. INT banner, Yenilikler, isteğe bağlı Uygulamayı değerlendir, soft/force güncelleme, AGB yeniden kabul. 5a. Gönderiler (/tr/profile#submissions): beş kart (boş da olabilir) — Mekan önerileri, Etkinlik önerileri, Topluluk önerileri, Bağlantı önerileri, Katkı talepleri; durum ve linkler yalnızca herkese açık görünürlükte; incelemede isteğe bağlı nötr bildirim (kanallar kapatılabilir)
  6. Genel profil /tr/user/{username} (web masaüstü): Sol — üstte kısa profil (avatar, ad, kullanıcı adı, isteğe bağlı Herkese açık/Gizli yalnızca kendinde). Kendi görünüm: altında Üye olma tarihi, isteğe bağlı Ana şehir, Profili düzenle (Profil ve içerik) ve Profil linkini kopyala. Başka profil: kısa profil altında sosyal eylemler (takip/sessiz/engel, mesaj; oturumsuz Giriş), sonra Üye olma tarihi, isteğe bağlı Ana şehir; altta Profil linkini kopyala ve sağda Profili bildir (açılır form, giriş + Social-V2). Sağ büyük kart: üstte istatistik (takipçi/takip, favoriler, topluluklar — görünür olduğu kadar); Takipçi/Takip tıklama aynı kartta Takipçi ve takip sekmesi (tam listeler /user/.../followers / /following). Altında sekmelerHakkında, (isteğe bağlı) Takipçi ve takip, Favoriler, Topluluklar, Aktiviteler; istatistik sekme değişiminde kalır. Hakkında: takip edilen şehirler, bio, herkese açık koleksiyonlar; Favoriler mekan/etkinlik; Topluluklar yalnızca herkese açık (delisted yok); Aktiviteler gönderiler ve aktivite listesi. Yaklaşan etkinliklerin (kaydedilen + İlgileniyorum/Katılıyorum) küçük durum rozeti Favoriler altında; başkaları yalnızca herkese açık kaydedilenleri görür. Bio linkler kısa onay diyaloğu sonrası açılır (harici site).
  7. Bildirimler: Uygulama içi kanallar (/tr/notifications) aç/kapa — otomatik kaydedilir (faydalı işaretleme, liste davetleri vb.)
  8. Gizlilik: DM kuralı (kim yeni DM başlatabilir), çevrimiçi durum (açık = sohbetlerde çevrimiçi/yazıyor; kapalı = gösterilmez) — otomatik; engelli/sessiz hesapları çöz. Veri dışa aktarma Hesap ve veriler; gizlilik ve çerez Drawer / web footer
  9. Güvenlik ve giriş: Passkey (uygulama: liste ve kaldır; yeni passkey Tarayıcıda aç — profil Güvenlik sekmesi; orada Passkey ekle); Hesap güvenliği E-posta değiştir (onay postaları) ve OAuth yeniden giriş (yalnızca Google/Apple). Tam 2FA yönetimi Güvenlik merkezi aşağıda
  10. Hesap ve veriler: Veri dışa aktarma ve hesap silme

Güvenlik merkezi (Passkey, Authenticator uygulaması, kurtarma kodları)

  1. /tr/account/security aç (Profil > Güvenlik ve giriş > „Güvenlik merkezini aç“)
  2. Üstte durum bloğu: Passkey, Authenticator uygulaması (TOTP), Kurtarma kodları
  3. Passkey hâlâ /tr/profile Güvenlik ve giriş sekmesinde — /tr/account/security düğmesi oraya linkler. Passkey cihaza bağlı, Face ID/parmak izi/cihaz PIN ile açılır
  4. Authenticator ekle: „Authenticator uygulaması ekle“ → QR kod. 1Password, Google Authenticator, Authy, Raivo … ile tara veya anahtarı kopyala. 6 haneli kodu gir, onayla. Toast „Authenticator uygulaması bağlandı.“
  5. Authenticator kaldır: „Authenticator uygulamasını kaldır“ → onay → step-up (TOTP kaldırma güvenlik kritik)
  6. Kurtarma kodları: „Yeni kurtarma kodları oluştur“. Her kod step-up yedek olarak bir kez (Magic Link / OAuth birincil girişle) — güvenle sakla. Kalan kod sayısı üst durumda
  7. Admin/moderatörler için en az bir ikinci faktör + kurtarma kodları admin konsolu öncesi zorunlu (/tr/account/admin-mfa-required)

Giriş onayı (Step-up MFA /account/security/confirm)

Bu sayfa otomatik görünür — hassas eylem son bir saat içinde taze giriş onayı ister. Sadeleştirilmiş düzen: dar başlık (logo + dil), tam keşif nav/footer yok. Başlık bağlama göre (ör. Stripe için „Abonelik merkezini aç“, hesap silme için „Hesabı sil“).

Tipik tetikleyiciler:

  • Stripe faturalandırma (?purpose=stripe_portal) — portal, ödeme yöntemi, iptal
  • Hesap silme (?purpose=account_delete)
  • Authenticator kaldırma (?purpose=totp_disable)
  • Admin eylemi (?purpose=admin_action)

Akış:

  1. Passkey ile: büyük „Şimdi onayla“ (Face ID / Touch ID / parmak izi). Alternatif „Başka yöntem“Passkey · Uygulama · Kod sekmeleri
  2. Passkey yok: doğrudan uygulama veya kurtarma kodu
  3. Başarıda istenen sayfaya (?next=…) — step-up çerezi ca. 60 dakika taze
  4. İptal (ör. „Faturaya dön“) next hedefine eylem yapmadan döner

Faturalandırma ve PRO yükseltme (/account/billing)

Sayfa tüm kullanıcılara görünür, ancak yalnızca MerhabaMap’i iş olarak kullanıyorsan ilgili (mekan claim → business gönderileri). Tam akış Business kullanıcı el kitabında. Özet:

  1. /tr/account/billing (Profil > Genel bakış > Business profil veya başarılı claim sonrası)
  2. Claim/owner yoksa yalnızca faturalandırmanın doğrulanmış business owner’a bağlı olduğu notu. „Daha fazla bilgi“ /tr/business/upgrade
  3. Business owner: Üç tarife kartı (FREE, PRO, ENTERPRISE) durum, brüt fiyat, sütun başına checkout (PRO/ENTERPRISE) — önkoşullar Business el kitabı
  4. Checkout Stripe Checkout Session — checkout.stripe.com, kart, dönüş faturalandırma sayfası. Tier değişimi webhook onayından hemen sonra (birkaç saniye)
  5. „Faturayı yönet“ Stripe Customer Portal — ödeme yöntemi, faturalar, abonelik iptali. Portal step-up MFA kapılı: strong auth bir saatten eskiyse önce /tr/account/security/confirm?next=/tr/account/billing&purpose=stripe_portal
  6. İptal sonrası tier dönem sonuna kadar aktif, sonra otomatik FREE (webhook)

Mekana bağış

Durum 2026-04-29: Mekan bağışları (dernek/cami) şu an global devre dışı. IBAN/GiroCode yolu final test sonrası dönecek.

Platform kuralı: MerhabaMap paraya dokunmaz — Stripe katmanı yok, platform ücreti yok, toplama noktası yok. Dernek/caminin bankasına doğrudan kendi bankandan havale edersin. Bağış makbuzunu mekan verir (kamuya yararlı kuruluşlar zaten vermek zorunda).

Fonksiyon aktif olunca:

  1. Mekan detay (cami, dernek) — „Mekanın banka bilgisine doğrudan“ kartı alıcı, IBAN, BIC, açıklama ve QR kod (GiroCode).
  2. İki seçenek:
    • Mobil bankacılık uygulamasıyla tara (Sparkasse, Volksbank, Comdirect, ING, Deutsche Bank, N26 vb.): Uygulamada „Havale → QR kod tara“, ekrandaki QR. IBAN, alıcı, açıklama otomatik — yalnızca tutar ve Face ID / push-TAN / uygulama PIN.
    • IBAN kopyala: IBAN yanı kopyala, bankacılık uygulaması/online bankacılık, normal havale, IBAN + alıcı yapıştır. QR tarayıcı olmadan da çalışır.
  3. Para doğrudan derneğin bankasına gider.

Önemli: TAN tarayıcı cihazı veya ek donanım gerekmez — QR yalnızca IBAN+alıcı+açıklama veri kabı, normal telefon kamerası bankacılık uygulamasında. Bağış için MerhabaMap girişi de gerekmez.

MerhabaMap hesabında bağış geçmişi yok — MerhabaMap bağışını görmez, yalnızca bankan bilir.

Hangi mekanlar bağış alabilir: yalnızca ticari olmayan mekanlar (camiler, dernekler), senior admin onaylı owner claim ve girilmiş IBAN. Ticari mekanlar (restoran, dükkan) alamaz — monetizasyon PRO abonelik üzerinden.

Not: Mekan bağışları için MerhabaMap hesabında geçmiş tutulmaz — yalnızca bankan görür.

Gönüllü platform desteği (MerhabaMap’in kendisi) ayrı — /tr/support („MerhabaMap’i destekle“) Stripe Checkout — MerhabaMap hesabı olmadan da. Ödeme kanıtı Stripe/kart ekstrelerinden; MerhabaMap bağış sertifikası vermez. Mekan bağış makbuzu için online bankacılık; makbuzu dernek/cami verir.

Hesap silme (/account/delete)

  1. /tr/account/delete (Profil > Hesap ve veriler > „Hesabı sil“ veya doğrudan)
  2. Sonuçlar: Geri alınamaz. Profil çekirdeği (ad, e-posta, kullanıcı adı, bio, profil fotoğrafı, Stripe customer pointer) anonimleştirilir. Push token (web + mobil), kaydedilen mekan/etkinlik, kendi koleksiyonlar, koleksiyon üyelikleri, etkinlik katılımları, şehir abonelikleri, yorum reaksiyonları, takip/engel/sessiz bağlantılar ve sana ait uygulama içi bildirimler silinir. Gönderiler, yorumlar, sohbet mesajları (DM + grup) anonimleştirilmiş yazar/gönderen referansıyla kalır — diğer kullanıcılar ve konuşma katılımcıları boşluk görmez. Ayrıntılı döküm hesap silme rehberinde (/tr/konto-loeschen)
  3. Step-up onay: Silme için taze giriş zorunlu. Gerekirse /tr/account/security/confirm?next=/tr/account/delete&purpose=account_delete
  4. /tr/account/delete’e dön: UI’da gösterilen cümleyi yaz (refleks koruması) ve „Hesabı kalıcı olarak sil“
  5. Çıkış, onay e-postası hesap adresine. Claim kanıt dosyaları (varsa) hemen silinir, geri kalan belgelenmiş saklama sürelerinde

Gönderi oluştur (yerel gönderi)

Web:

  1. /tr/post/new (Plus menüsü Gönderi oluştur) veya mekan/etkinlik detayda „Bu mekanla ilgili bir şey paylaş“ / „Bu etkinlikle ilgili bir şey paylaş“
    • Mobile-Shell: Sol kenardan sağa kaydır önceki sayfaya (ör. /tr/post/newHome). Mekan/etkinlik/topluluk öner, detay sayfaları, açık sohbetler (DM, grup, etkinlik/topluluk) — sohbette kaydır mesaj merkezine (/tr/messages), inbox scroll korunur.
  2. Adım 1 — Kategori (tam üç tip):
    • Öneri — beğendiğin mekan/etkinlik
    • Deneyim paylaş — mekan/etkinlikte yaşadığın
    • Soru sor — mekan/etkinlik hakkında soru
  3. Adım 2 — Bağlam pill: Mekan veya Etkinlik, arama alanından seç. Her gönderi ya mekana ya etkinliğe (ikisi birden değil).
  4. Adım 3 — Metin (min 10, max 500 karakter)
  5. İsteğe bağlı: en fazla 5 görsel (JPEG, PNG, WebP, max 5 MB)
  6. „Gönderiyi yayınla“
  7. Mekan/etkinlik detayına yönlendirme, Gönderiler sekmesi aktif — şehir feed’inde de

Mobil:

  1. Home kartı „Ne paylaşmak istersin?“ veya detay Gönderi yaz. Detay girişinde bağlam önceden; Home’dan tip sonrası mekan veya etkinlik arama.
  2. Gönderi tipi (Öneri / Deneyim / Soru)
  3. Bağlam: Önceden doluysa Değiştir; yoksa pill Mekan/Etkinlik, min 2 harf öneri
  4. Metin (10–500, sağ altta sayaç)
  5. Görseller (isteğe bağlı, Dalga P.B + çoklu): +-kart, medya erişimi, max 5 görsel (JPG, PNG, WEBP, max 5 MB). Küçük resim ✕ ile kaldır.
  6. Sağ üst „Paylaş“. Başarıda bağlı mekan/etkinlik Gönderiler sekmesi, gönderi hemen görünür. Görsel varsa multipart/form-data; yoksa JSON.

Kendi gönderini sil

Web: Gönderide üç nokta → „Sil“. Yalnızca yazar, soft-delete, geri alınamaz.

Mobil: Detayda kendi gönderi kartı sağ üst Sil → onay. Web ile aynı (soft-delete, görseller temizlenir, audit log).

Gönderi bildir

Web:

  1. Feed /tr/home
  2. Gönderide „Bildir“
  3. Onay — moderasyon ekibine
  4. Gönderi kullanıcı başına bir kez

Mobil: Detayda başkasının gönderisi sağ üst Bildir → onay sayfası → Bildir. Web ile aynı (standart neden, dedup). Kendi gönderilerde Sil.

Gönderi altı yorum bildir

Web: Yorum detayını aç → neden dropdown → isteğe bağlı detay → Gönder.

Mobil: Açık Yorumlar bloğunda başkasının yorumunda Bildir → alt sayfa neden listesi (Yanlış bilgi, Yinelenen, Kapalı veya kullanılamıyor, Uygunsuz içerik, Spam veya kötüye kullanım, Diğer) ve isteğe bağlı detay (max 1000 karakter). Altı saat hedef başına ve günlük limit (24 saatte 5) web ile aynı.

İçerik bildir

  1. Mekan veya etkinlik detay
  2. Web: Bildir bölümüne kaydır. Mobil: eylem satırında Bildir
  3. Dropdown’dan neden (ör. yanlış bilgi, spam, uygunsuz)
  4. İsteğe bağlı açıklama
  5. „Gönder“

Mekan öner

  1. MerhabaMap hesabı ve aktif oturum — giriş olmadan gönderilemez (misafirlere giriş kartı; sunucu auth_required)
  2. /tr/submit/place (Home; mobil sol menü Mekan öner, in-app tarayıcı web köprüsü)
  3. Alanlar: ad, şehir, kategori, adres, kaynak URL, açıklama. Adres: önce şehir; sonra debounced adres önerileri (birkaç karakter). Şehir yoksa serbest metin, öneri yok.
  4. İsteğe bağlı: tek görsel (JPG/PNG/WebP, max 5 MB). Dosya seç, önizleme. Kayıttan önce AI görsel moderasyonu (NSFW/şiddet/nefret red). Görsel red olursa mekan yine gönderilir — görsel olmadan.
  5. „Gönder“
  6. Adresten (ve adından) arka planda otomatik geo koordinat harita/konum için — listeden seçim şart değil. Yeterli adres yoksa koordinat boş.
  7. Ekip inceler. Onay sayfasında görsel geçti/reddedildi/kabul edilmedi (format/boyut) notu.

Etkinlik öner

  1. Mekan gibi: yalnızca hesap + giriş; misafir gönderimi yok (auth_required)
  2. /tr/submit/event (Home; mobil Etkinlik öner, web köprüsü)
  3. Zorunlu: başlık, şehir, kategori, tarih, açıklama; mekan veya adres. Kaynak link isteğe bağlı, incelemeyi kolaylaştırır. Adres: mekan önerisi gibi — önce şehir, sonra öneriler.
  4. Etkinlik hakkında daha fazla (isteğe bağlı):
    • Organizatör tipi (biri): Topluluk organizasyonu, İşletme, Kurum, Birey
    • Fiyat mantığı (biri): Ücretsiz, Ücretli, Bağış tabanlı — ödeme sistemi değil, kullanıcı ipucu
    • Hedef kitle alanı formdan kaldırıldı
  5. Kategori başına kısa ipucu (ör. „Dini — lütfen duyarlı ve doğru sınıflandır“)
  6. İsteğe bağlı: tek görsel (afiş/foto, max 5 MB). AI moderasyon.
  7. „Gönder“
  8. Mekan/adres (ve başlık) yeterliyse arka planda otomatik koordinat
  9. Ekip inceler. „Governance durumu“ gibi iç alanlar senin işin değil — içeride ayarlanır.

5. Sık kullanılan eylemler

EylemNeredeNasıl
Güvenlik merkezi/tr/account/security2FA faktörleri + kurtarma kodları
Giriş onayı/tr/account/security/confirmHassas eylemlerde otomatik (fatura, hesap silme, TOTP kaldırma)
Faturalandırma/tr/account/billingBusiness tier, Stripe Checkout, Customer Portal
Hesap silme/tr/account/deleteStep-up onay, geri alınamaz
Mekan kaydetMekan detayKalp simgesi
Etkinlik kaydetEtkinlik detayKalp simgesi
KatılEtkinlik detay„İlgileniyorum“ veya „Katılıyorum“
YorumMekan/etkinlik detayYorum alanı, metin, gönder
Gönderi altı yorumMekan/etkinlik detay„Yorumlar (N)“ aç, metin, „Gönder“
Kendi gönderi yorumunu silMekan/etkinlik detayKendi yorumunda „Sil“
Yorumu faydalı işaretleMekan/etkinlik detay (web + mobil)Web: başparmak. Mobil: „👍 Faydalı“ pill sayaçlı (PostComments) — mekan/etkinlik doğrudan yorumlar mobil EntityComment ile
Kendi yorumunu silMekan/etkinlik detayKendi yorumunda Sil
Yorum bildirMekan/etkinlik detayBaşkasının yorumunda Bildir, neden
Mekan/etkinlik bildirDetay (web + mobil)Web: bildir bölümü. Mobil: eylem satırı Bildir
Gönderi yazDetay (web + mobil)Web: „… paylaş“ banner. Mobil: „Gönderi yaz“ bottom sheet Öneri/Deneyim/Soru
Kendi gönderini silDetay (web + mobil)Web: üç nokta → Sil. Mobil: kendi kart sağ üst Sil + onay
Gönderi bildir/tr/home (web), detay (mobil)Web: bayrak → onay. Mobil: başkasının kartında Bildir
Yorum bildir (gönderi)Detay (web + mobil)Web: inline form. Mobil: yorumda Bildir bottom sheet
PaylaşMekan/etkinlik detayPaylaş (1 tık sistem/kopyala) + ok menüsü (WhatsApp, Telegram, X, Facebook, E-posta, link)
RotaMekan/etkinlik detay„Rota“
Etkinlik sohbetine katılEtkinlik detay„Etkinlik sohbetine katıl“ (yalnızca katılımcı)
Katkıcı davetKoleksiyon detay (web + mobil, owner)Web: Davet et. Mobil: üye başlığı yanı + Davet, bottom sheet kullanıcı adı + rol
Katkıcı kaldırKoleksiyon detay (web + mobil, owner)Web: inline. Mobil: üye satırı yanı × + onay
Listeden ayrılKoleksiyon detay (web + mobil, üye)Web: Ayrıl. Mobil: „Listeden ayrıl“ + onay
Liste oluştur/tr/collections (web) / sol menü „Listelerim“ (mobil)Web: Yeni liste. Mobil: sağ üst + veya boş durum. Başlık + açıklama + gizli/herkese açık
Liste düzenle / silListe detay (web + mobil, owner)Web: inline. Mobil: sağ üst Düzenle; sonda Liste sil + onay
Listeden mekan/etkinlik kaldırListe detay (web + mobil, owner + düzenleyici)Web: inline. Mobil: kart sağ üst x + onay
Listeye kaydetMekan/etkinlik detay (web + mobil)Web: Genel bakış Listelerim toggle. Mobil: kalp yanı „Listeye …“ bottom sheet + inline + Yeni
Takip etGenel profil (web + mobil)Takip (Supabase v2). Mobil /users/<username> ve avatar listelerinden. Gizli profilde istek beklemede
Takibi bırakGenel profil (web + mobil)Takibi bırak (Supabase v2)
Takip isteğini geri çek„İstek gönderildi“ profil (web + mobil)Aynı düğme tekrar — bekleyen follow_request kaldırır
Takip isteği kabul/redWeb: /tr/follow-requests. Mobil: sol menü „Takip istekleri“Kabul / Red; liste son 50 bekleyenle sınırlı
Takipçi/takip listesiGenel profil (web + mobil)Web: istatistik tıklama Takipçi ve takip sekmesi; tam listeler /tr/user/.../followers / /following. Herkese açık yalnızca anahtar açıksa; yoksa alt sayfa 404. Gizli: alt sayfalar yalnızca onaylı takipçi + anahtar. Mobil: sayfalı liste pull-to-refresh
EngelleGenel profil (web + mobil)Web: üç nokta Engelle. Mobil: profil kartı Engelle. Takip her iki yönde kaldırılır
Sessize alGenel profil (web + mobil)Web: üç nokta Sessize al. Mobil: profil kartı Sessiz
Kullanıcı bildirGenel profil (web)Üç nokta Bildir, neden — mobil eskalasyon Reports refactor ile

6. Bildirimler

Bildirimler /tr/notifications ve başlıktaki zil rozeti. /tr/profile Bildirimler bölümünde hangi uygulama içi türlerin oluşturulacağını seçersin (kapalı türler gelen kutusunda görünmez). Mobil uygulama zil başlık 2. satırda (Plus, Bağlantılar, Mesajlar arası): web ile aynı bildirimler, tek tek veya Tümünü okundu işaretle; canlı (pull-to-refresh yedek). Zil okunmamış kırmızı rozet. Tam sayfa /tr/notifications (Mobile-Shell): başlık Bildirimler, sağda Ayarlar simgesi; filtre sekmeleri iki satır (Tümü · Gelen · Okundu, alt Bahsetmeler · Mekanlar ve etkinlikler · Ağ · Gruplar).

BildirimNe zaman
Yeni takipçiBiri seni takip eder
Takip isteğiGizli profilde biri takip istemek ister
Mekanına yorumBiri mekanlarından birine yorum yapar
Etkinliğine yorumBiri etkinliklerinden birine yorum yapar
Gönderine yorumBiri gönderilerinden birine yanıt (@ olmadan da)
Yorumuna reaksiyonBiri yorumunu faydalı işaretler
Yorumda bahsetmeYorumda (@username) bahsedilirsin
Liste davetiKoleksiyona davet edilirsin
Grup davetiGrup sohbetine eklenirsin
Grupta bahsetmeGrup sohbetinde bahsedilirsin
Grupta yanıtGrup sohbetinde mesajına yanıt
Gruplar — yeni mesajlarHer yeni grup/etkinlik mesajı genel push (Dalga T.C). Bahsetme/yanıt bunu bastırır (çift ping yok). Inbox kaydırma ile thread sessize alınabilir

7. Geri bildirimler (toast)

Kaydet, Takip et, Paylaş, Bildir, Yorum gönder veya Profili kaydet sonrası sağ üstte kısa toast, birkaç saniyede kapanır.

  • Geri alınabilir eylemler (mekan/etkinlik kaydet/kaldır, yorum sil, paylaşım kopyası) toast’ta Geri al.
  • Çift tıklama aynı düğmede yığılmaz — toast güncellenir.
  • Çıkış: Masaüstü tarayıcı genel başlangıç (/?loggedOut=1). Mobile-Shell / native uygulama (Faz 5o) doğrudan /auth/signin?loggedOut=1. Kısa „Çıkış yapıldı.“ toast bir kez.
  • Onboarding sonrası: Onboarding’i şehir takibi olmadan bitirirsen /tr/home’da hoş geldin toast (?welcome=onboarding bir kez). Şehir takip edildiyse şehir haritasında belirgin sayfa içi kart — ek toast yok.
  • Yeni mesajlar / bildirimler: toast (Hesap ve Ayarlar → Bildirimler ayarlarına uyar). Tüm sohbet türleri (DM, grup, etkinlik). Zaten /tr/messages’taysan sohbet toast bastırılır. Thread sessize al (mobil) yalnızca OS push’u kapatır, web toast ve inbox rozeti kalır.

8. Notlar

  • Görünürlük: Önerilen mekan ve etkinlikler ekip incelemesinden sonra görünür.
  • Moderasyon: Topluluk kurallarına aykırı yorumlar moderasyon tarafından kaldırılabilir.
  • Bildirimler: Günlük ve bekleme süresi limiti vardır.
  • Profil görünürlüğü: Profili gizli yapabilirsin. O zaman başkaları yalnızca adını görür ve takip isteği göndermelidir.
  • Passkey: /tr/profile Güvenlik ve giriş altında passkey ekle/kaldır.
  • Hesap silme: /tr/profile Hesap ve veriler (veya /tr/account/delete) — geri alınamaz; profil çekirdeği anonimleştirilir, özel listeler/push/sosyal graf silinir. Gönderiler, yorumlar, sohbetler anonim referansla kalır. Tam liste: /tr/konto-loeschen.
  • Mobilde mekan gönder: Plus menüsü (Mekan öner) veya /submit/place — masaüstü/web gibi; in-app tarayıcı web köprüsü. Aynı oturum; sunucu moderasyon kuyruğuna (PENDING) yazar.
  • Mobilde mekan claim: Mobil mekan detayda „Bu mekanın sahibi misin?“ kartı „Web’de aç“ — claim formu (ticaret belgesi yükleme) in-app tarayıcıda.
  • Yardım, iletişim, künye, gizlilik, topluluk kuralları, şeffaflık, MerhabaMap desteği (/tr/support): web ve gömülü yardım/yasal sayfalarda. Mobile-Shell (dar pencere / uygulama): site footer yok — Profil → Uygulama ve tanı, Drawer (MerhabaMap hakkında /legal, MerhabaMap’i destekle /support), Yardım ve destek (/help, misafir Drawer) veya doğrudan rotalar. Masaüstü: ek site footer navigasyonu.