Skip to content

Natoshka/scoring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Repository Scoring App

This is a Spring Boot application that fetches and scores GitHub repositories based on stars, forks, and update recency.

Features

  • Search GitHub repositories by language and date of creation
  • Score repositories by stars, forks, and freshness
  • Display results in a stylish, sortable table. It includes lightweight frontend (index.html) using HTML, JavaScript, and DataTables)

Environment

  • Java Version: 17
  • Build Tool: Gradle 8.11.1

How to Build

1. Ensure annotation processing is enabled:

For IntelliJ IDEA:
Go to File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors and enable "Annotation Processing".

2. Configure GitHub Token (Optional but Recommended)

Why it's important:

  • Without a token, GitHub limits you to 60 requests/hour
  • With a token, you get 5000 requests/hour

The app will still work without a token, but you may run into limitations if testing frequently.

Steps:

  1. Go to https://github.com/settings/tokens
  2. Click "Generate new token (classic)"
  3. You don't need to select any scopes
  4. Copy your token
  5. Edit application.properties and paste your token:
github.api.token=ghp_your_token_here

3. Run the App

Build the application:

./gradlew clean build

Run the application:

./gradlew bootRun

Run the test suite (except integration tests):

./gradlew test

Run the test suite with integration tests:

./gradlew integrationTest

4. Then open a browser at:

http://localhost:8080/index.html


API Documentation

Swagger UI is available to explore and test the APIs:

Technologies Used

  • Java 17
  • Gradle 8.11.1
  • Spring Boot 3
  • Spring WebFlux (with WebClient)
  • DataTables.js
  • HTML + JS + CSS (no frameworks)

About

GitHub Repository Scoring App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published