An open API service indexing awesome lists of open source software.

https://github.com/o2sa/devimpact

A smart platform to compare developers by real impact in open-source β€” not just stars and followers
https://github.com/o2sa/devimpact

analytics comparison dashboard data-visualization developer-tools github github-api graphql nextjs nodejs octokit react scoring-system typescript

Last synced: 2 days ago
JSON representation

A smart platform to compare developers by real impact in open-source β€” not just stars and followers

Awesome Lists containing this project

README

          

# πŸš€ DevImpact

![License](https://img.shields.io/github/license/o2sa/devimpact)
![Stars](https://img.shields.io/github/stars/o2sa/devimpact)
![Forks](https://img.shields.io/github/forks/o2sa/devimpact)
![Issues](https://img.shields.io/github/issues/o2sa/devimpact)
![Pull Requests](https://img.shields.io/github/issues-pr/o2sa/devimpact)
![Last Commit](https://img.shields.io/github/last-commit/o2sa/devimpact)

![Next.js](https://img.shields.io/badge/Next.js-16+-black?logo=next.js)
![TypeScript](https://img.shields.io/badge/TypeScript-blue?logo=typescript)
![Node.js](https://img.shields.io/badge/Node.js-green?logo=node.js)
![GraphQL](https://img.shields.io/badge/GraphQL-pink?logo=graphql)

## Preview


DevImpact comparison tables and analytics chart

**DevImpact** is an open-source platform that compares software developers based on their real impact in the open-source ecosystem β€” not just raw numbers.

It evaluates developers using a smart scoring system that considers:

- Repository quality πŸ“¦
- Pull request impact πŸ”€
- Community contributions πŸ’¬

---

## 🌟 Why DevImpact?

Traditional metrics (followers, stars, commit counts) are often misleading.

DevImpact focuses on:

- βœ… Quality over quantity
- βœ… Real contributions to valuable projects
- βœ… Fair comparison between developers

---

## 🧠 Scoring System Overview

Each developer is evaluated using three main scores:

### πŸ“¦ Repo Score (Builder Impact)

Measures the quality and impact of repositories owned by the user.

Factors include:

- Stars ⭐
- Forks 🍴
- Watchers

---

### πŸ”€ PR Score (Contribution Impact)

Measures contributions to **other developers' repositories**.

βœ” Only merged PRs are counted
βœ” PRs to the user's own repositories are excluded

Factors include:

- Target repository quality
- PR size (additions/deletions)
- Repository popularity
- Contribution diversity

---

### πŸ’¬ Contribution Score (Community Impact)

Measures community engagement.

Includes:

- Issues opened in external repositories
- Discussions participation

⚠️ Does NOT include commits or PRs (to avoid duplication)

---

### πŸ† Final Score

The final score is a weighted combination:

```
Final Score =
0.45 Γ— Repo Score +
0.45 Γ— PR Score +
0.10 Γ— Contribution Score
```

πŸ‘‰ The ContributionScore is capped to prevent abuse.

---

## βš–οΈ Key Design Principles

- ❌ No self-inflation (own PRs excluded)
- πŸ“‰ Diminishing returns to prevent spam
- 🎯 External impact is prioritized
- βš–οΈ Balanced scoring between builders and contributors

---

## πŸ–₯️ Features

- πŸ” Compare two GitHub users side-by-side
- πŸ“Š Visual score breakdown (charts & insights)
- 🧠 Smart ranking system
- 🌍 Localization support (EN / AR)
- ⚑ Fast API powered by GitHub GraphQL
- 🧩 Extensible scoring system

---

## πŸ› οΈ Tech Stack

### Frontend

- Next.js (App Router)
- TypeScript
- Tailwind CSS
- Recharts

### API

- Node.js + Express
- GitHub GraphQL API
- Octokit

---

## πŸš€ Getting Started

### 1. Clone the repo

```bash
git clone https://github.com/O2sa/DevImpact.git
cd DevImpact
```

---

### 2. Install dependencies

```bash
pnpm install
```

---

### 3. Set up environment variables

Create a `.env` file:

```
GITHUB_TOKEN=your_github_token
```

---

### 4. Run the app

```bash
pnpm run dev
```

---

---

## πŸ“‘ API Example

The compare endpoint accepts one or more `username` query parameters.

### Example request

```bash
curl "api/compare?username=devimpact&username=octocat"
```

### Example response

```json
{
"success": true,
"users": [
{
"username": "octocat",
"name": "The Octocat",
"avatarUrl": "https://avatars.githubusercontent.com/u/583231?v=4",
"repoScore": 87,
"prScore": 64,
"contributionScore": 42,
"finalScore": 73,
"topRepos": [],
"topPullRequests": []
}
]
}
```

## 🌍 Localization

- Supported languages: English πŸ‡ΊπŸ‡Έ, Arabic πŸ‡ΈπŸ‡¦
- Automatically detects user language
- Allows manual switching
- Easy to add new languages via `/locales`

---

## 🀝 Contributing

Contributions are welcome!

### How to contribute:

1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Open a pull request

---

### Contribution ideas:

- Improve scoring algorithm
- Add new metrics
- Enhance UI/UX
- Add new languages 🌍

---

## ⚠️ Limitations

- GitHub API rate limits
- Some private contributions are not accessible
- Scoring system is heuristic (not perfect)

---

## πŸ’‘ Inspiration

DevImpact was created to answer a simple question:

> β€œWho really has more impact in open-source?”

---

## ⭐ Support

If you like this project:

- ⭐ Star the repo
- πŸ› Report issues
- πŸ’‘ Suggest features