Kullanıcıların özellik fikirleri gönderebildiği, oy verebildiği ve yöneticilerin net kurallar, durumlar ve raporlama ile talepleri triage ettiği bir web uygulamasını planlayın, oluşturun ve yayınlayın.

Ekran tasarlamadan veya veritabanı seçmeden önce, "özellik talebi oylama"nın ürün ekibiniz için ne başarması gerektiğine karar verin. Bir oylama portalı şunlardan biri olabilir:
Birincil amacı seçmezseniz, belirsiz kurallar ve gürültülü veriyle sonuçlanırsınız.
Hedef kitleyi açıkça belirleyin ve rollere göre görünürlük kurallarını tanımlayın:
En azından kullanıcıların talep gönderebilmesi, oy verebilmesi, yorum yapabilmesi, güncellemeleri takip edebilmesi ve mevcut fikirleri arayabilmesi gerekir.
Arama, göründüğünden daha önemlidir: tekrarları önler ve biri hiçbir şey göndermese bile portalın faydalı hissettirmesini sağlar.
Ürün ekibinizin hafif bir triyaj döngüsüne ihtiyacı vardır:
Bu adımlardan herhangi biri uygulama dışında elle yapılması gerekiyorsa, sistem güncel kalmaz.
Benimseme, fikir kalitesi ve tasarruf edilen zaman gibi ölçülebilir sonuçlar seçin:
Bu hedefler sonrasında oy kurallarından yönetici araçlarına kadar birçok kararı şekillendirir.
Oylama uygulamanız, insanların kimlerin ne yapabileceğini anladığını hissettiğinde "adil" görünür—ayrıca suistimal zor olmalı ama meşru kullanıcıların işini zorlaştırmamalıdır. Küçük bir rol setiyle başlayın ve her birine bağlı izinleri belirleyin.
Basit bir izin modeli (can_vote, can_post, can_moderate, can_admin) uygulama boyunca sert kodlanmış mantıktan daha kolay yönetilir.
Çoğu portal için email magic link en düşük sürtünmedir ve parola sıfırlamalarıyla uğraştırmaz. Parola ile giriş tanıdıktır ama destek yükü ekler. SSO (SAML/OIDC) genellikle isteğe bağlıdır ve B2B planları için ayrılmalıdır.
Zaten bir uygulamanızda hesaplar varsa, kimlik sistemini yeniden kullanın ki kullanıcıların ayrı bir giriş yapmasına gerek olmasın.
Anonim oy katılımı artırabilir, ama manipüle edilmesi daha kolaydır. İzin verirseniz şu tür korunmalar ekleyin:
Profilleri hafif tutun:
Sadece gerçekten kullanacağınız verileri toplayın; bu gizlilik riskini azaltır ve onboarding'i hızlandırır.
“X oy/dk” ve “Y yeni talep/gün” gibi temel throttle'lar ekleyin. Yeni hesaplara ve anonim kullanıcılara daha sıkı limitler uygulayın, güvenilen kullanıcılara (eski hesaplar, doğrulanmış e-posta, bilinen organizasyon) esneklik verin.
Kullanıcı limite ulaştığında genel bir hata yerine açık bir mesaj ve tekrar deneme süresi gösterin.
Bir özellik talebi portalı veri modeline bağlıdır. Kayıtlarınız tutarlıysa, sıralama, filtreleme, tekrarları giderme ve raporlama manuel temizleme gerektirmez.
Kasıtlılığı yakalayan en küçük setle başlayın:
Daha sonra işe yarayacak backend dostu alanlar ekleyin: created_by, created_at, updated_at ve bir canonical_request_id (duplicate birleştirme için).
Oy tablonuz genelde user_id → request_id ilişkilidir, ama kurallar farklı olabilir:
credits_spent saklayın.weight saklayın ve denetim izi tutun.Hangi modeli seçerseniz seçin, benzersizliği zorunlu kılın (ör. her kullanıcı başına her talepte bir aktif oy) ki toplamlar güvenilir olsun.
Pratik bir durum modeli: New → Under Review → Planned → In Progress → Shipped, artı Won’t Do.
status, status_updated_at ve opsiyonel olarak status_reason saklayın (özellikle Won’t Do için). Şeffaflık ve raporlama için hafif bir status_history logu düşünün.
Filtreleme için kategoriler üst seviye, esnek etiketleme için tags (çoktan-çoğa) kullanın (ör. “enterprise”, “UI”, “API”).
Yorumlar ve reaksiyonlar için neye izin verileceğini tanımlayın: isteğe bağlı olarak talebe bağlı yorumlar, düzenleme süresi penceresi ve reaksiyonların küçük bir setle sınırlandırılması (ör. 👍/👎) veya gürültüyü önlemek için tamamen devre dışı bırakma.
Kaliteyi yönetmek için is_hidden ve hidden_reason gibi moderasyon alanları ekleyin; veriyi silmeden yönetim sağlar.
Portal açıklık üzerine başarır veya başarısız olur: insanlar ürün ekibinin neye ihtiyaç duyduğunu, hangi taleplerin zaten yapıldığını ve nasıl katılacaklarını hızlıca anlamalıdır. Kullanıcıları "bir fikrim var"den "ne olduğunu görebiliyorum"a götüren küçük bir ekran seti tasarlayın.
Ana ekran bir karar sayfasıdır. Cevaplamalıdır:
Trending ve Newest gibi basit akış modları ekleyin. “For you” görünümü sunuyorsanız isteğe bağlı tutun ve öğelerin neden görünür olduğunu açıklayın (ör. takip edilen etiketlere göre).
Her kartta kısa bağlam gösterin: başlık, kısa özet, durum, oy sayısı ve son aktivitenin ipucu (son yorum veya güncelleme).
Detay sayfası mini bir vaka dosyası gibi olmalı. Öne net bir problem tanımı koyun (kullanıcının ne yapmaya çalıştığı), sonra destekleyici ayrıntılar.
Şunları dahil edin:
Temel eylemleri kolay bulunur tutun: Vote, Follow ve Copy/share link.
Düşük kaliteli talepler genelde belirsiz istemlerden gelir. Kullanıcıları kullanılabilir girdiler yazmaya yönlendiren kısa bir şablon kullanın:
Yazarken benzer talepleri önerin ki kullanıcılar duplicate yerine mevcut olanı oylasın.
Aramayı her sayfada görünür yapın. İnsanların düşündüğü şekilde filtreler ekleyin: kategori, durum, etiketler, ve zaman aralığı (ör. son 30 gün).
Filtre UI'sını kompakt tutun ve filtrelenmiş görünümleri URL ile paylaşılabilir hale getirin.
Duplicate talepler kaçınılmazdır: farklı kullanıcılar aynı ihtiyacı farklı kelimelerle tanımlar veya zaten var olan bir özelliği tekrar ister. Duplicate'ları iyi yönetmek panonuzu okunur tutar ve oyları anlamlı kılar.
Açık bir tanımla başlayın: "duplicate", uygulama farklı olsa bile aynı kullanıcı grubuna aynı sonucu isteyen taleptir.
İki gönderi "ilişkili ama farklı" ise (ör. ürünün aynı alanı ama farklı kullanım durumları), ayrı tutun ve ilişki etiketi ekleyin.
Birleştirirken bir canonical request seçin (genelde en net başlık, en iyi açıklama veya en eski ve en aktif gönderi) ve diğerlerini “Merged into #123” kayıtlarına çevirin.
Kullanıcılara her iki tarafta da ilişkiyi gösterin:
Bu, “Gönderimim nereye gitti?” destek taleplerini azaltır.
Oyları otomatik olarak canonical talebe taşıyın ve atıf koruyun (“Oyunuz şuna taşındı…”), böylece kullanıcılar silinmiş hissetmez.
Moderasyon için kim/ ne zaman/ neden bilgisi içeren bir denetim izi saklayın.
Kullanıcı başlık yazarken basit bir arama (başlık + etiketler) ile benzer talepleri önerin ve en yüksek eşleşmeleri oy sayılarıyla gösterin. Nazik bir uyarı (“Bunlardan biri aynı mı?”) duplicate'ları önemli ölçüde azaltır.
Moderatörlere kısa bir kontrol listesi verin:
Tutarlılık güven inşa eder ve fikir yönetimi kuyruğunu yönetilebilir tutar.
Oylama portalının motoru oylar olduğu için, anlaşılır ve manipülasyona kapalı kurallar tanımlayın. Öngörülebilir mekanikler destek taleplerini azaltır ve panoyu adil hissettirir.
Bir "oy"ın ne anlama geldiğini seçin:
En azından her kullanıcı için her talepte bir oy kuralını uygulayın. Downvote veya puan sistemi varsa eşdeğer sınırlamalar koyun.
Hafif sürtünce ekleyin:
Kullanıcıların çoğu durumda oylarını değiştirmesine veya kaldırmasına izin verin—ihtiyaçlar değişir ve geri alınabilirlik hayal kırıklığını azaltır.
Öncelik puanları kullanıyorsanız, kullanıcıların tekrar tahsis yapabilmesi için geri alınabilirlik zorunludur.
Sıralama davranışı davranışı şekillendirir; bunu açıklayın. "Top" oylara dayanıyorsa belirtin. "Trending" yakın zamanda artan aktiviteyi kullanıyorsa bunu da açıklayın.
Birden çok görünüm sunmayı düşünün: “Top”, “Newest” ve “Recently Updated”, net etiketlerle.
Haftalık X oy gibi limitler veya her ay yenilenen puan bütçesi düşünün. İyi bir triyaj akışıyla birlikte bu, kullanıcıları rastgele her şeyi oylamak yerine en çok önem verdiklerine yatırım yapmaya yönlendirir.
Yönetici araçları, gönderimler arttığında portalın kullanılabilir kalmasını sağlar. Onlar olmadan backlog duplicate, belirsiz fikirler ve yakıcı tartışmalarla dolar.
Yöneticilere inceleme için tek bir yer verin:
Her öğe talep özeti, yazar, oy sayısı, benzer talepler ve son yorumları göstermeli ki moderatör hızlı karar verebilsin.
Çoğu yönetici işi tekrarlıdır. Moderatörlerin birden fazla talebi seçip tek seferde değişiklik yapabilmesi için toplu işlemler ekleyin:
Bu, bir ürün yayını sonrası geri bildirim patlamasında özellikle faydalıdır.
Kamusal yorumlar kullanıcılar için. Yöneticilerin bağlam için özel alana ihtiyacı var: destek biletleri, gelir etkisi, teknik kısıtlar ve karar gerekçesi gibi.
Dahili notları sadece personele görünür yapın ve kamu dizisinden ayrı tutun ki yanlışlıkla paylaşılmasın.
Durum değişiklikleri, birleştirmeler ve silmeler gibi önemli eylemleri zaman damgası ve yapan kişi ile izleyin. Bir müşteri “Neden kayboldu?” diye sorduğunda güvenilir bir geçmişiniz olur.
Durum, etiket, tarih aralığı veya oy sayısına göre filtrelenebilen temel bir CSV dışa aktarım, yol haritası toplantıları ve paydaş güncellemeleri için faydalıdır—herkesin admin UI'sine bağımlı kalmadan.
Bildirimler, portalınızı ilk ziyaretten sonra da faydalı kılar. Doğru yapıldığında tekrar eden “güncelleme var mı?” sorularını azaltır ve kullanıcıları rahatsız etmeden tutar.
Kullanıcı beklentisine uyan küçük bir etkinlik setiyle başlayın:
Mesaj açık olsun: talep başlığı, yeni durum ve doğrudan thread'e dönük bağlantı içersin.
Bir isteği tek tıkla takip/abonelik haline getirmeyi sağlayın. Kullanıcıyı otomatik takip etmeyi düşünün:
Bu kural tekrar eden destek taleplerini azaltır çünkü kullanıcılar güncellemeleri kendi başlarına takip edebilir.
Hızlı geri bildirim için uygulama içi bildirimler (rozet sayısı, bildirim çekmecesi) kullanın. Durum güncellemeleri gibi daha az sık ama önemli değişiklikler için e-posta kullanın.
Kullanıcıları spam etmemek için özet e-postalar (günlük veya haftalık) sunun; çok sayıda takip edilen talebi olan kullanıcılar için özet varsayılan iyi bir seçenektir.
Her e-postada bir abonelikten çıkış linki olmalı ve uygulamada açık bildirim tercihleri (ör. “Sadece durum değişiklikleri”, “Tüm etkinlik”, “Sadece özet”) bulunmalıdır. Bunları /settings/notifications gibi bir ayarlar sayfasından erişilebilir yapın.
İyi bildirim hijyeni güven yaratır—ve güven katılımı artırır.
Oylar, sonrası görülmediğinde anlamsızlaşır. Süreci kapatmanın en basit yolu, aynı durumları kullanan hafif bir yol haritası ve bir changelog ile bağlantı kurmaktır.
Eğer /roadmap gibi bir yol haritası yayımlıyorsanız, durumları herkes için anlaşılır kovalarla eşleyin: “Under Review”, “Planned”, “In Progress” ve “Shipped.” Eşlemeyi tutarlı tutun ki kullanıcılar her durumun ne anlama geldiğini öğrensin.
Her şeyin herkese açık olması gerekmez. Yaygın bir uzlaşma: yüksek seviyeli temaları herkese açık göster, kesin tarihleri ve iç projeleri gizli tut. Bu aşırı vaat vermeyi engellerken oy verenlere güvenilir yol haritası girdisi sağlar.
Bir şey ship edildiğinde yöneticiler talebi “Shipped” olarak işaretleyebilmeli ve bir sürüm referansı ekleyebilmelidir.
İdeal olarak, ship edilen özellik sayfası şunları gösterir:
Bu, oy sisteminizi ölü bir öneri kutusu yerine görünür bir geri bildirim triyaj iş akışına dönüştürür.
/changelog sayfasında sürümler için girişler oluşturun ve her girdiyi ilgili taleplere bağlayın (ve tersi). Örneğin: “SSO eklendi (ilgili: #123, #98).”
Bir fikri destekleyen kullanıcılar bunun yayınlandığını hızlıca doğrulayabilir; yeni ziyaretçiler de duplicate oluşturmadan önce sonuçları inceleyebilir.
Açık bir politika belirleyin: hangi durumlar görünür, oy sayıları açık mı, dahili notlar sadece yöneticiye mi açık vs. Net sınırlar süreçleri tahmin edilebilir kılar.
Bir oylama uygulamasındaki analitik gösteriş amaçlı değil—kararların görünür olmasını sağlar. Doğru panolar üç soruyu hızlıca cevaplamalı:
Güvenebileceğiniz küçük bir setle başlayın:
Triage süresi iç sağlığı gösterir: artarsa kullanıcılar göz ardı edildiğini hissedebilir.
Top kategoruları (gönderim ve oy bazında) ve tekrar eden temaları etiketler veya hafif konu etiketleri ile ortaya çıkarın.
Müşteri meta veriniz varsa (abonelik seviyesi, sektör, hesap büyüklüğü), segmentlere ayırın. Az oy alan bir talep stratejik bir segment için önemli olabilir.
Birkaç anomalik görünüm işinizi kolaylaştırır:
Haftalık inceleme belirleyin: en çok hareket edenler, yaşlanan “New” talepler ve en önemli temalar. Kararları belgeleyin (“merged”, “planned”, “not now”) ki raporlama yalnızca aktiviteyi değil kararları yansıtsın.
Güvenliği erken karar verdiğinizde eklemek daha kolaydır. Bir oylama portalı hesaplar, kullanıcı tarafından oluşturulan içerik ve oy sinyalleriyle uğraşır—bu yüzden gerçek kullanıcıları davet etmeden önce temel korumalar olmalı.
Parolayı destekliyorsanız, modern bir hash algoritması (ör. bcrypt/argon2) kullanın ve düz metin saklamayın.
Kısa ömürlü oturumları tercih edin ve güvenli çerez (HTTP-only, Secure, makul SameSite) kullanın. Veri değiştiren formlar (talep gönderme, oy verme, yorum) için CSRF koruması ekleyin.
Her talep, yorum ve başlığı güvenilmez girdi olarak ele alın:
javascript: gibi zararlı URL'leri engelleyinBu, kullanıcıları kötü amaçlı scriptlerden korur ve UI'nın kararlı kalmasını sağlar.
Oylama sistemleri spam ve "vote storm" çeker. Şunlar için hız sınırlaması ekleyin:
Bunu temel izlemeyle eşleştirin (ani artışlar, tekrarlayan hatalar, tekrar eden duplicate gönderimler). Basit limitler moderasyonu yönetilebilir tutar.
Hangi kişisel verileri neden sakladığınızı karar verin (e-posta giriş için, görünen ad atıf için, IP suistimal önleme için vb.). Minimum tutun, saklama süresini belgeleyin ve gizlilik bildiriminizde erişilebilir yapın.
Düzenlenen bölgelerde kullanıcılarınız varsa GDPR/CCPA temel gereksinimlerini planlayın: erişim isteği, silme isteği ve her alanın kullanım amacını netleştirme.
Tutarlı kurallar oluşturun:
Tutarlılık, fikirlerin kaldırılmasıyla ilgili önyargı suçlamalarını azaltır.
Bir portalın başarısı gösterişli mimariden çok net kurallar ve hızlı iterasyonla gelir. Ekibinizin rahat olduğu bir yığın seçin ve destekleyebileceğiniz şekilde teslim edin.
Uçtan uca "sıkıcı" bir yol seçin:
Geliştirici aşinalığını performans teorisinden önde tutun.
Eğer iş akışını hızlı doğrulamayı hedefliyorsanız (gönderme → arama → oy → durum güncelleme → moderasyon) her şeyi sıfırdan inşa etmeden sohbet tabanlı bir üretken platform olan Koder.ai size başlangıç scaffoldu'nu oluşturup kodu dışa aktarma imkanı sunabilir. Koder.ai, tam uygulamalar (React web, Go + PostgreSQL backend, Flutter mobil) oluşturmak, dağıtım/barındırma ve özel alan adları ile snapshot/rollback destekler.
Dev → staging → production dizilimini erken kurun ki oy kurallarını gerçek veriyi riske atmadan test edebilin.
Planlayın:
Küçük bir uygulama bile güven gerektiren mantık çevresinde teste ihtiyaç duyar:
İyi bir MVP genelde şunları içerir: talep oluşturma, arama, oy verme, durum güncellemeleri ve yönetici triyajı.
Sıkça "sonra" olarak bırakılanlar: SSO, oy ağırlıklandırma, derin entegrasyonlar (Jira/Linear), gelişmiş analizler ve özel roller.
Pilot bir grup davet edin (güç kullanıcılar + dahili ekip), net yönergeler yayınlayın ve insanların gerçekten nasıl gönderip oy verdiğini izleyin.
Kısa bir geri bildirim döngüsü yürütün, sürtünmeyi düzeltin ve erişimi genişletin. Hafif bir /pricing veya /blog güncellemesi beklentileri ayarlamaya ve ilerlemeyi paylaşmaya yardımcı olabilir.
Önce portalın birincil amacını seçin:
Ardından başarı metriklerini tanımlayın (benimseme, daha az tekrar, triage süresi). Bu hedefler oy kurallarını, durumları ve yönetici araçlarını yönlendirecektir.
Pratik bir minimum kullanıcı iş akışı şudur:
Aramanın ön planda olması önemlidir; böylece kullanıcılar yeni bir içerik yaratmak yerine mevcut talepleri oylar ve tekrarların önüne geçilir.
En azından ekibinizin ihtiyacı olan araçlar:
Bu işlerden herhangi birinin uygulama dışında manuel yapılması durum tahtasının güncelliğini korumasını zorlaştırır.
Basit, sürdürülebilir bir model:
İzinleri kırılgan rol mantığı yerine bayraklarla uygulamak daha kolaydır (ör. , , , ).
Yaygın seçenekler:
Zaten bir hesap sisteminiz varsa, ayrı bir giriş gerektirmemesi için onu yeniden kullanın.
İzin verebilirsiniz, ama kötüye kullanımı engelleyecek önlemler koyun:
Bu, katılımı yüksek tutarken moderasyonu tam zamanlı bir işe çevirmemeye yardımcı olur.
Talep nesnesini küçük ama tutarlı tutun:
Ek olarak backend için faydalı alanlar: , , ve bir (merge için).
Açıkça açıklayabileceğiniz bir model seçin:
credits_spent saklayınweight saklayın ve denetim izi tutunHangi modeli seçerseniz seçin, benzersizliği zorunlu kılın (ör. her kullanıcı için her talepte yalnızca bir aktif oy).
Tekrarları "aynı kullanıcı grubuna aynı sonucu isteyen istek" şeklinde tanımlayın; uygulama farklı olsa bile hedef aynıysa duplicate sayılır.
İşleyiş:
Kullanıcılarda kafa karışıklığını azaltmak için hem kopyada hem de canonical kayıtta bir görünürlük sağlayın.
Kullanıcıları meşgul ederken spam yapmamak için beklenen küçük bir bildirim seti kullanın:
Takibi kolaylaştırın (genellikle gönderme/oylama/yorum yapma anında otomatik takip). Kullanıcılara seçenekler sunun:
can_votecan_postcan_moderatecan_admincreated_bycreated_atupdated_atcanonical_request_idHer e-postada abonelikten çıkış linki olmalı ve uygulamada açık bildirim tercihleri (ör. /settings/notifications) bulunmalıdır.