OWASP / OWASP/Nest

Setup Contribution Recognition Data Models

Open
#4,702 0 comments 0 reactions 1 assignee Claimed by @anurag2787 View on GitHub
enhancement gsoc2026:contributor-recognition-program
Dominant language
Python
Stars
451
Forks
702
Avg merge
22h 59m
Merged PRs (30d)
91

Description

Community & Support: [LinkedIn Group](https://www.linkedin.com/groups/14656108/) · [Slack #project-nest](https://owasp.slack.com/archives/project-nest)

Active project leaders: Arkadii Yakovets -- [GitHub](https://github.com/arkid15r/) · [LinkedIn](https://www.linkedin.com/in/arkid15r/) · [Slack](https://owasp.slack.com/team/U060W3NKLTF); Kate Golovanova -- [GitHub](https://github.com/kasya/) · [LinkedIn](https://www.linkedin.com/in/kate-golovanova/) · [Slack](https://owasp.slack.com/team/U07PWB1JZ6Z)

[Contributing](https://github.com/owasp/nest/blob/main/CONTRIBUTING.md) · [Code of Conduct](https://github.com/owasp/nest/blob/main/CODE_OF_CONDUCT.md) · [GSoC Mentors](https://github.com/owasp/nest/blob/main/MENTORS.md)

---

### Description

Create the core data models for the OWASP Contributor Recognition Program.

The system should use existing GitHub contribution data already available in OWASP Nest and support contribution scoring, contributor tiers, certificates, and leaderboard tracking.

## Models

### ScoringWeight

Stores configurable contribution weights used for scoring.

#### Fields

- `event_type`
- `score`
- `daily_cap`
- `is_active`

#### Supported event types

- `pr_merged`
- `pr_opened`
- `issue_opened`

#### Default scoring

| Contribution Type | Score |
|-------------------|-------|
| PR merged | 10 |
| PR opened | 5 |
| Issue opened | 3 |

---

### ContributionScore

Stores aggregated contributor score and tier information.

#### Fields

- `user`
- `total_score`
- `tier`
- `last_computed`

#### Supported tiers

- `bronze`
- `silver`
- `gold`
- `platinum`

---

### Certificate

Tracks contributor certificate metadata issued at tier milestones.

Certificates dynamically generated during download using stored metadata

#### Fields

- `id`
- `user`
- `tier`
- `score_at_issue`
- `issued_at`
- `is_revoked`

### LeaderboardSnapshot

Stores contributor ranking snapshots for leaderboard history and rank tracking.

#### Fields

- `user`
- `snapshot_date`
- `global_rank`
- `project_rank`
- `score`
- `tier`
- `project`

**Are you going to work on implementing this?**

- [x] Yes
- [ ] No

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.