İçeriğe geç

Vaka çalışmasıYayında

Hockey Pick’em & Sub Pulse

Reddit’in geliştirici platformunda iki uygulama: ücretsiz bir hokey tahmin oyunu ve moderatörler için uyarılı haftalık sağlık raporu.

Rol
Tek başıma — tasarım, kod, politikalar, yayın
Ne zaman
2026
  • Backend
  • Full-stack

Sub Pulse’un sayfası henüz herkese açık değil; politikaları açık. Kaynak kod gizli.

Kimin için

  • Para, oran ya da ayrı bir site olmadan günlük bir tahmin oyunu isteyen Reddit’teki hokey toplulukları.
  • Topluluklarının ve mod kuyruklarının nasıl gittiğini her hafta beş araç açmadan bilmek isteyen subreddit moderatörleri.

Ne yaptım

  • Hockey Pick’em: oyuncuların kazananı seçip uzatmayı tahmin ettiği günlük bir maç listesi; tahminler maç başlayınca sunucuda kilitleniyor, canlı periyot ve süre, sezonluk ve haftalık liderlik tabloları ve isteğe bağlı flair.
  • Sub Pulse: modmail’e (isteğe bağlı Discord ya da Telegram’a) giden tek sayfalık haftalık özet — aktivite, büyüme, mod kuyruğu, mod işlemleri, banlar, admin işlemleri — ayrıca histerezisli uyarılar ve yalnızca modların gördüğü bir panel postu.
  • Her şey Devvit’in serverless runtime’ında çalışıyor: scheduler işleri, Reddit’in barındırdığı Redis ve beyan edilmiş bir dış alan adı izin listesi.
  • İki uygulamanın kullanım koşullarını ve gizlilik politikalarını yazıp yayınladım; veri silmeyi baştan kurdum: kullanıcı bazlı silme, silinen hesaplar için günlük tarama ve saklama süreleri.

Nasıl çalışıyor

  1. 1Kur ve seç

    Moderatör uygulamayı kurar ve lig modunu ya da bir takımı (Pick’em), ya da özet kanalını ve uyarı seviyelerini (Sub Pulse) seçer. O seçene kadar hiçbir şey paylaşılmaz.

  2. 2Zamanla

    Saatlik ve beş dakikalık işler fikstürü ve canlı skorları senkronlar ya da mod kuyruğunu yoklayıp günün sayaçlarını toplar.

  3. 3Oyna / izle

    Oyuncular maç başlamadan tahmin yapar; moderatörler canlı bir panel postu ve kuyruk taşınca bir uyarı alır — başlarken bir kez, düzelince bir kez.

  4. 4Puanla / raporla

    Biten maçlar kısa parçalar halinde tam bir kez puanlanır; her pazartesi özet, haftayı bir önceki haftayla karşılaştırır.

  5. 5Unut

    Saklama süreleri, kullanıcılar için bir silme düğmesi ve silinen hesaplar için günlük tarama, yalnızca uygulamanın ihtiyaç duyduğunu tutar.

Önemli kararlar

  1. 01

    Tam bir kez, parça parça puanla

    Yerine: Maçlar bitince her şeyi tek uzun bir işte puanlamak.

    Neden: Serverless işlerin süre sınırı var ve tekrar denenebiliyorlar. Biten her maç en fazla yirmi saniyelik parçalarla tam bir kez puanlanıyor; büyük bir topluluk birkaç koşuda bitiyor ve bir retry asla iki kez puan vermiyor.

  2. 02

    Histerezisli state machine olarak uyarılar

    Yerine: Eşik her aşıldığında uyarı göndermek.

    Neden: Sınırının etrafında gezinen bir kuyruk moderatörleri beş dakikada bir rahatsız ederdi. Her uyarı başladığında bir kez, eşiğin yarısının altına inince bir kez tetikleniyor; admin işlemi uyarıları saatte en fazla bire toplanıyor.

  3. 03

    İçeriği değil, sayıları sakla

    Yerine: Daha zengin raporlar için post ve modmail metinlerini tutmak.

    Neden: Moderatörler hiç sahip olmadığı şeyi sızdıramayacak bir araca güvenir. Sub Pulse süreli sayaçlar ve kimlikler tutuyor, metinleri asla; iki uygulama da neyi ne kadar sakladığını açıkça belgeliyor.

  4. 04

    Kanal başına sahiplenilen gönderim

    Yerine: Özeti tek geçişte bütün kanallara göndermek.

    Neden: Modmail, Discord ve Telegram birbirinden bağımsız bozuluyor. Her kanal haftalık gönderimini sahipleniyor; bir sonraki saatlik tetik yalnızca başarısız olanı yeniden deniyor — kimse aynı özeti iki kez almıyor.

Mimari

REDDITSlate & dashboard postsDevvit Web · ReactMod menu & settingskurulum bazlı ayarlarDevvit runtimeSERVERLESSServer handlerstahmin · kilit · menüişlemleriScheduler5 dk · saatlik · günlükişleroku · yazVERIRedisReddit’te · TTL’liReddit APImod log · kuyruk ·modmailDIŞ SERVISLERHockey feedherkese açık fikstür veskorDiscord · Telegramisteğe bağlı özet veuyarılar↑ yayına alırTESLIMATVitest33 test dosyasıdevvit publishsürümlü yayınPoliciesGitHub Pages

İki uygulama da aynı şekilde: arayüz bir Reddit postunda, mantık Devvit’in serverless handler’ları ve scheduler’ında, durum Reddit’in barındırdığı Redis’te.

Sayılar

uygulama, Reddit’in platformunda
2
test dosyası
33
canlı skor ve kuyruk yoklama aralığı
5 dk
saklanan post ya da modmail metni
0

Teknolojiler

Platform

  • Devvit Web
  • Reddit API
  • Scheduler
  • Redis

Uygulama

  • TypeScript
  • React
  • Vite
  • Tailwind CSS

Kalite

  • Vitest
  • ESLint

Uzun versiyonu ister misin — kod, pipeline, ödünleşimler?

E-posta gönder
Sıradaki vaka çalışmasıPostgradiaKoçların, öğrencilerin ve velilerin aynı haftalık plan üzerinden çalıştığı bir koçluk platformu.