AOSSIE-Org / AOSSIE-Org/OrgExplorer

[FEATURE]: Add Repository Health Score Filters and Sorting

Aberta
#143 1 comentário 0 reações 1 responsável Reivindicada por @zaibamachhaliya Ver no GitHub
enhancement
Linguagem predominante
JavaScript
Estrelas
34
Forks
92
Merge médio
8d 7h
PRs com merge (30d)
12

Descrição

### Feature and its Use Cases

## Feature Overview

The Repositories page already computes useful repository metrics such as **Health Score** and **Activity Classification** (Thriving, Active, Dormant, and Hibernating). However, users currently cannot use these metrics to quickly explore or analyze repositories.

This feature proposes adding filtering and sorting capabilities based on repository health and activity so that users can easily focus on repositories matching their interests.

---

## Proposed Features

### 1. Health Score Filter

Allow users to filter repositories based on their health score.

Suggested categories:

- Healthy (70–100)
- Moderate (40–69)
- Poor (0–39)

Users should be able to select one or multiple categories.

---

### 2. Activity Status Filter

Allow filtering repositories using the existing activity classification.

Available options:

- Thriving
- Active
- Dormant
- Hibernating

This will help users quickly identify actively maintained or inactive repositories.

---

### 3. Sorting Options

Provide additional sorting options such as:

- Health Score (High → Low)
- Health Score (Low → High)
- Recently Updated
- Stars
- Forks

Sorting should work together with all active filters.

---

### 4. Combined Filtering

Users should be able to combine multiple filters simultaneously.

Example:

- Healthy repositories
- Thriving repositories
- JavaScript repositories

and then sort them by Health Score or Stars.

---

### 5. Reset Filters

Provide a single button to reset all filters and restore the complete repository list.

---

## Benefits

This feature would significantly improve repository exploration by allowing users to:

- Quickly discover high-quality repositories.
- Identify inactive repositories.
- Compare repositories more efficiently.
- Improve overall usability of the Repositories page.
- Make better decisions during organization analysis.

---

## Expected Behaviour

- Filtering should happen instantly without reloading the page.
- Existing search functionality should continue working.
- Filters should work together without conflicts.
- Repository statistics should remain unchanged.
- The implementation should be responsive and work well on both desktop and mobile devices.

---

## Possible UI

Repositories Page

Search Repository

Health Score

☐ Healthy
☐ Moderate
☐ Poor

Activity

☐ Thriving
☐ Active
☐ Dormant
☐ Hibernating

Sort By

• Health Score
• Recently Updated
• Stars
• Forks

[Reset Filters]

### Additional Context

The repository health score and activity classification are already computed as part of the analytical model. This feature aims to make those existing metrics more useful by allowing users to filter and sort repositories based on them.

The implementation can reuse the existing repository metadata, including:

- healthScore
- activityClassification
- language
- pushed_at
- stargazers_count
- forks_count

Possible implementation areas include:

- RepositoriesPage.jsx
- analytics.js (if helper functions are needed)
- A reusable filter component (optional)

This feature should work entirely with the data that is already available after analysis, so no additional GitHub API requests would be required.

---

I have reviewed the existing implementation and I'm really excited to work on this feature. I would love to implement it following the project's coding standards and UI consistency.

If this feature is approved, kindly assign this issue to me. Thank you!

### Code of Conduct

- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and will post updates there
- [x] I have searched existing issues to avoid duplicates

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.