/RepoRater

Rate GitHubrepos for Develop Experience (DX)

Primary LanguageJavaScriptMIT LicenseMIT

RepoRater

RepoRater

This project allows you to rate GitHub Repositories from the Developer Experience (DX) perspective.

When considering your rating here are a few points you might like to think about:

  • does the Repo have a helpful community?
  • does the Repo have good documentation to enable you to get started?
  • are the maintainers supportive and do they provide useful feedback?

Features

  • Login with GitHub OAuth
  • Rate a Repo
  • List all Repos
  • List popular Repos
  • Leaderboard of most active users
  • README badges
  • Search Repos (coming soon)

Want to see any other features? Open an issue and let us know.

Screenshots

repo-rater-laptop

Technologies used

Quickstart for development

  1. Sign up to Appwrite and create a project (free)
  2. Create database
  3. Create collections app with the attributes
    • ratings: integer
    • repos: integer
    • stars: integer
    • create empty document with 0 for each attribute
  4. Create collections ratings with the attributes
    • url: url
    • username: string
    • rating: integer
  5. Create collections repos with the attributes
    • url: url
    • description: string
    • name: string
    • votes: integer
    • rating: float
    • owner: string
    • logo: string
  6. Copy .env.example template file to .env
  7. Get you private keys from Appwrite and add them to .env template (all data are required)
  8. Create an OAuth app on GitHub and connect it with Appwrite Authentication
  9. Run the development server with:
npm ci
npm run dev
  1. Open http://localhost:3000 with your browser to see the result.

RepoRater Badge in your README

Add the following markdown to your README to show your RepoRater badge and link to rate your repository.

RepoRater

[![RepoRater](https://repo-rater.eddiehub.io/api/badge?owner=EddieHubCommunity&name=RepoRater)](https://repo-rater.eddiehub.io/rate?owner=EddieHubCommunity&name=RepoRater)

Change the owner and name parameters to your GitHub org/username and repository name.

Badge Style

The default badge is "flat" but there are other styles if you prefer. This is done by appending the url with the style parameter.

Here are the options with examples:

style badge
flat flat
flat-square flat-square
for-the-badge for-the-badge
plastic plastic
social social

Badge Format

The default badge format is to show the average rating out of 5. You can also show the percentage. This is done by appending the url with the format parameter.

RepoRater

[![RepoRater](https://repo-rater.eddiehub.io/api/badge?owner=EddieHubCommunity&name=RepoRater)](https://repo-rater.eddiehub.io/rate?owner=EddieHubCommunity&name=RepoRater&format=percentage)
format badge
number RepoRater
percentage RepoRater

GitHub Action

Automatically comment on Issues and Pull Requests to get votes

name: repo-rater
run-name: repo-rater (#${{ github.event.issue.number || github.event.pull_request.number }})

permissions:
  issues: write
  pull-requests: write

on:
  issues:
    types: [closed]
  pull_request:
    types: [closed]

jobs:
  repo-rater:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: xkrishguptaa/action-repo-rater@v1
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

More details https://github.com/xkrishguptaa/action-repo-rater

API (3rd party apps)

You can consume our data for your own apps.

User Leaderboard

GET https://repo-rater.eddiehub.org/api/leaderboard

[
  {
    "username": "eddiejaoude",
    "votes": 5,
    "stars": 13
  },
  {
    "username": "SaraJaoude",
    "votes": 3,
    "stars": 5
  },
  {
    "username": "test2",
    "votes": 2,
    "stars": 9
  }
]

Popular Repos

GET https://repo-rater.eddiehub.org/api/popular

Optional paramater ?minimumVotes=5 (default is 5)

[
  {
    "url": "https://github.com/EddieHubCommunity/BioDrop",
    "logo": "https://avatars.githubusercontent.com/u/66388388?v=4",
    "description": "Connect to your audience with a single link. Showcase the content you create and your projects in one place. Make it easier for people to find, follow and subscribe.",
    "rating": 4.75,
    "votes": 49,
    "owner": "EddieHubCommunity",
    "name": "BioDrop",
    "badgeViews": 143
  },
  {
    "url": "https://github.com/appwrite/appwrite",
    "logo": "https://avatars.githubusercontent.com/u/25003669?v=4",
    "description": "Build like a team of hundreds_",
    "rating": 4.3333333333333,
    "votes": 310,
    "owner": "appwrite",
    "name": "appwrite",
    "badgeViews": 768
  }
]

Community

Come and chat with the community in the EddieHub Discord http://discord.eddiehub.org