Pomôžte nám zlepšiť dokumentáciu GitPulse. Vyplniť dotazník.

Prehľad projektu

  • Pre: Všetci
  • Vyžaduje: Nič

Čo je GitPulse?

GitPulse je webová aplikácia, ktorá automaticky analyzuje aktivitu študentov na GitLab projektoch a poskytuje učiteľom objektívne metriky pre hodnotenie tímovej práce a DevOps praktík.

Cieľová skupina

Primárni používatelia

RolaPoužitie
Učiteľ/CvičiaciMonitorovanie aktivity, hodnotenie, identifikácia problémov
Správca kurzuKonfigurácia kurzov, správa používateľov
OperátorNasadenie, údržba, monitoring systému

Sekundárni používatelia

  • Študenti - nepriamy prístup cez transparentné metriky
  • Administrátori - správa celej inštancie

Kľúčové funkcie

1. Zber dát z GitLab

sequenceDiagram
    participant G as GitLab
    participant W as Webhook Handler
    participant Q as Redis Queue
    participant P as Event Processor
    participant D as Database

    G->>W: Push/MR/Issue Event
    W->>W: Validate signature
    W->>Q: Enqueue event
    Q->>P: Process event
    P->>D: Store metrics

GitPulse prijíma webhooky z GitLab a spracováva:

  • Push events - commity, zmeny súborov
  • Merge request events - vytvorenie, review, merge
  • Note events - komentáre, code review
  • Pipeline events - CI/CD builds
  • Issue events - správa úloh

2. Compliance hodnotenie

Systém hodnotí 13 DevOps praktík (R01-R13):

KódKontrolaKategóriaVáha
R01Issue AssignedIssue8 %
R02Branch + MR CreatedMR6 %
R03Tests WrittenMR10 %
R04MR Linked to IssueMR8 %
R05MR DescriptionMR5 %
R06Code Review ReceivedReview12 %
R07Code Review GivenReview12 %
R08Review ResponseReview10 %
R09MR ApprovedReview9 %
R10Merged by AuthorMR7 %
R11MR + Issue ClosedMR6 %
R12Pipeline GreenCI7 %
R13Commit QualityCommit0 % (opt-in)

3. Dashboard a analýza

  • Real-time dashboard - aktuálny stav všetkých tímov so SSE živými aktualizáciami
  • Team drill-down - detailná analýza konkrétneho tímu
  • Student detail - príspevky jednotlivca s rozpisom kontrol
  • Export - CSV export dát, JSON export/import konfigurácie kurzu
  • LLM analýza - voliteľná AI analýza merge requestov s redakciou osobných údajov, v produkcii vypnutá
  • E-mailové notifikácie - automatické oznámenia o kurzoch a hodnotení

Technologický stack

flowchart TB
    subgraph "Frontend"
        D["Dashboard - Jinja2/HTML"]
    end
    
    subgraph "Backend"
        A["FastAPI"] --> B["SQLAlchemy"]
        A --> C["Redis"]
        W["RQ Workers"]
    end
    
    subgraph "Data"
        B --> P[("PostgreSQL")]
        C --> R[("Redis")]
    end
    
    subgraph "External"
        G["GitLab API"]
    end
    
    A --> G
    W --> G
KomponentTechnológiaÚčel
API ServerFastAPIREST API, webhook handling
DatabasePostgreSQLPerzistentné dáta
Cache/QueueRedisCaching, job queue
WorkersRQ (Redis Queue)Background processing
FrontendJinja2 + htmx + Alpine.jsServer-side rendering with component macros

Nasadenie

GitPulse je navrhnutý pre nasadenie pomocou Docker Compose:

services:
  api:           # FastAPI aplikácia
  worker:        # RQ worker (high / default / low)
  postgres:      # Databáza
  redis:         # Cache a queue
  gitpulse-docs: # Dokumentácia (Hugo)
  caddy:         # Reverse proxy s HTTPS

GitPulse nepoužíva scheduler ani cron. Všetky úlohy sú spúšťané webhookmi alebo explicitnými akciami v rozhraní.

Limity a obmedzenia

Aktuálne obmedzenia. - Podporuje iba GitLab (nie GitHub, Bitbucket) - Self-hosted GitLab musí byť dostupný z VM - Vyžaduje GitLab API token s dostatočnými právami

Ďalšie čítanie