eser / aya-website

açık yazılım ağı web sitesi kaynak kodları
https://acikyazilimagi.com
Apache License 2.0
35 stars 16 forks source link

Katkı puan sistemi #5

Open eser opened 1 year ago

eser commented 1 year ago

AYA gönüllüler ve gönüllülerin yaptığı katkılar ile devam eden bir organizasyon. Gönüllülerin yapmış olduğu katkıları "görünür" kılmak da bir anlamda, getireceği yankı açısından katkılar kadar önem arz ediyor.

Katkıların biraz daha görselleştirilmesi için puanlama sistemi üzerinde çalışıyorum. Daha önce hem açık-kaynak.org hem de 10forward.io için benzer sistemler çalışmıştım.

Taslak fikir şu şekilde:

AYA'nın mevcut yapısı (#6) Profiller ile ilerliyor.

Her profilde gerçekleşen bir activity olacak. örneğin aşağıdaki örnekte "afet.org" codebase'ine yapılan bir kod geliştirmesi için eser profilinin aktivitesi sistemde kayıt altına alınıyor.

activity: {
  id: "1de3ab",
  sourceProfile: "eser",
  targetProfile: "afet.org",
  type: "codeContribution",
  description: "contributed to afetharita.com",
  createdAt: "2023‐06‐29T10:11:31+00:00",
  points: [],
  badges: [],
}

bu activity için point işlemleri yapılabilecek. örneğin aşağıdaki örnekte "afet.org"a yapmış olduğu katkı için emre kullanıcısı eser'e 100 katkı puanı gönderiyor.

activity: {
  id: "1de3ab",
  sourceProfile: "eser",
  targetProfile: "afet.org",
  type: "codeContribution",
  description: "contributed to afetharita.com",
  createdAt: "2023‐06‐29T10:11:31+00:00",
  points: [
    {
      from: "emre",
      qty: 100,
      createdAt: "2023‐06‐29T10:11:31+00:00",
    },
  ],
  badges: [],
}

yine aynı activity için badge de tanımlanabilecek. örneğin aşağıdaki örnekte "afet.org"a yapmış olduğu "ilk" katkı için emre kullanıcısı eser'e "contributor" ve "go developer" badge'i tanımlıyor.

activity: {
  id: "1de3ab",
  sourceProfile: "eser",
  targetProfile: "afet.org",
  type: "codeContribution",
  description: "contributed to afetharita.com",
  createdAt: "2023‐06‐29T10:11:31+00:00",
  points: [
    {
      from: "emre",
      qty: 100,
      createdAt: "2023‐06‐29T10:11:31+00:00",
    },
  ],
  badges: [
    {
      id: "contributor",
      from: "emre",
      createdAt: "2023‐06‐29T10:11:31+00:00",
    },
    {
      id: "go-developer",
      from: "emre",
      createdAt: "2023‐06‐29T10:11:31+00:00",
    },
  ],
}