Jak przekształcić swój profil GitHub w ultimatywną kartę piłkarską
Większość profili GitHub wygląda tak samo. Nudna zielona siatka commitów, kilka standardowych badge'y pokazujących języki programowania i licznik wyświetleń prosto z połowy lat 2000. Kilka dni temu natknąłem się na projekt GitFut, który rozwiązuje ten problem w nieoczekiwany sposób. Przekształca aktywność dewelopera w pełnoprawną kartę gracza w stylu FIFA Ultimate Team z oceną do 99, pozycją na boisku i zestawem trofeów.
Autor projektu Younesfdj podszedł do tego jak skrupulatny analityk sportowy. Serwis nie bierze liczb z sufitu i nie prosi o wypełnianie ankiet. Uderza do GraphQL API GitHuba, pobiera historię konta i mapuje metryki na sześć atrybutów piłkarskich.
Sześć atrybutów i obliczanie pozycji
Zamiast zwykłych linii kodu, serwis ocenia Twój faktyczny wkład w open source i repozytoria robocze. Każdy atrybut piłkarski jest powiązany z konkretną akcją:
- PAC (Tempo) jest obliczane na podstawie liczby commitów w ostatnim roku kalendarzowym. Im regularniej pushujesz kod, tym wyższe tempo.
- SHO (Strzały) zależy od liczby gwiazdek zebranych przez Twoje repozytoria.
- PAS (Podania) odzwierciedla pracę zespołową, łącząc wysłane pull requesty i liczbę obserwujących.
- DRI (Drybling) pokazuje różnorodność języków programowania w Twoim portfolio.
- DEF (Obrona) opiera się na liczbie przeprowadzonych przeglądów kodu i zamkniętych issue.
- PHY (Kondycja) ocenia całkowitą objętość wkładu przez cały okres istnienia konta.
Podstawowe atrybuty mają twardy sufit na poziomie 88. Aby przedostać się do kategorii 90+ i zdobyć status Ikony, jeden udany rok nie wystarczy. Potrzebujesz lat konsekwentnej pracy i prawdziwego wpływu na społeczność.
Określanie pozycji działa w interesujący sposób. Algorytm patrzy na balans statystyk: deweloper skupiony na gwiazdkach i popularnych wydaniach trafia do ataku (pozycja ST lub RW), podczas gdy ktoś, kto lubi zamykać issue'y i robić przeglądy, staje się cofniętym rozgrywającym.
Ochrona przed spamem commitów
Głównym problemem każdego rankingu GitHub są boty spamujące i auto-commity. GitFut rozwiązał to matematycznie.
Cała roczna aktywność jest ważona za pomocą wzoru logarytmicznego:
yearScore = 4·log(commits) + 3·log(PRs) + 3·log(reviews) + 2·log(issues) + 2·log(private)
Logarytm szybko się nasyca. Jeśli skrypt generuje 20 000 commitów w pustym repozytorium, wniesie 17,2 punktu. Tymczasem prawdziwy deweloper z 800 commitami, 80 PR-ami, 80 przeglądami i 40 issue'ami w ciągu roku otrzyma 26 punktów. Zróżnicowana aktywność jest znacznie wyżej oceniana przez algorytm niż głupie nabijanie licznika.
Pokój trofeów i Złote Piłki
Jeśli karta przekroczyła próg 80 overall ratingu, profil staje się elegible dla nagród:
- Ballon d'Or. Przyznawany za rok kalendarzowy, który znacząco przekroczył Twoją średnią kariery. Musisz zgromadzić co najmniej 2000 wkładów i wykazać wynik 1,2 razy wyższy od mediany.
- WC Golden Ball. Przyznawany za skok produktywności podczas rzeczywistych Mistrzostw Świata (od 2010 do 2026). Wymagania są skromniejsze dla starszych turniejów, ponieważ w 2010 roku samo posiadanie commitów już wyróżniało konto.
- Golden Boot. Dynamiczne trofeum za obecną formę. Jest przyznawane pozycjom atakującym z oceną Strzałów wynoszącą 80 lub wyższą. Jeśli gwiazdki na świeżych repozytoriach spadną, but trafi do kogoś innego.
- World Cup Trophy. Specjalny puchar dla wszystkich deweloperów, którzy mają Hiszpanię wpisaną w swoim profilu (zwycięzca MŚ-2026 w ustawieniach serwisu).
Trofea na stronie profilu są wyświetlane za pomocą wstępnie wyrenderowanych sprite'ów (skrypt bake-award-sprites.ts), więc przeglądarka nie musi ładować ciężkiego silnika 3D.
Jak osadzić kartę na swoim profilu
Karta jest generowana w locie i dostarczana jako statyczny obraz. Wystarczy dodać jedną linię do Markdowna swojego profilu:
[](https://gitfut.com/YOUR_USERNAME)
Obraz jest cache'owany przez Redis i aktualizuje się w miarę pushowania kodu i zbierania przeglądów. Jeśli chcesz wymusić zmianę flagi kraju na karcie, możesz dodać parametr do URL: ?country=KZ lub ?country=RS.
Projekt ma kompaktowy stack: Next.js, TypeScript, Tailwind do stylowania i Redis do cache'owania odpowiedzi z GraphQL API.
Dla kogo jest ten projekt
GitFut prawdopodobnie nie pomoże Ci przejść surowej rozmowy kwalifikacyjnej w korporacji, ale to świetna alternatywa dla nudnych widgetów README. Projekt jest zrobiony z duszą, wzory uczciwie uwzględniają pracę zespołową, a system nagród dodaje emocji do regularnego zamykania pull requestów. Udaj się na stronę, wpisz swoją nazwę użytkownika i sprawdź, na jaką pozycję algorytm Cię wyśle.
Powiązane projekty


