Preskočiť na obsah

Prehľad projektu

Č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 spolupráce a DevOps praktík.

Cieľová skupina

Primárni používatelia

Rola Použitie
Učiteľ/Cvičiaci Monitorovanie aktivity, hodnotenie, identifikácia problémov
Správca kurzu Konfigurácia kurzov, správa používateľov
Operátor Nasadenie, ú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ód Kontrola Kategória Váha
R01 Issue Assigned Issue 8 %
R02 Branch + MR Created MR 6 %
R03 Tests Written MR 10 %
R04 MR Linked to Issue MR 8 %
R05 MR Description MR 5 %
R06 Code Review Received Review 12 %
R07 Code Review Given Review 12 %
R08 Review Response Review 10 %
R09 MR Approved Review 9 %
R10 Merged by Author MR 7 %
R11 MR + Issue Closed MR 6 %
R12 Pipeline Green CI 7 %

3. Gaming detection

GitPulse detekuje podozrivé správanie:

Detekované vzory

  • Commit spam - veľa malých commitov bez obsahu
  • LGTM reviews - prázdne code review
  • Review rings - vzájomné review bez skutočnej kontroly
  • Last-minute burst - všetka práca pred deadline

4. Dashboard a reporty

  • Real-time dashboard - aktuálny stav všetkých tímov
  • Team drill-down - detailná analýza konkrétneho tímu
  • Student detail - príspevky jednotlivca
  • Export - HTML, PDF, CSV reporty

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
Komponent Technológia Účel
API Server FastAPI REST API, webhook handling
Database PostgreSQL Perzistentné dáta
Cache/Queue Redis Caching, job queue
Workers RQ (Redis Queue) Background processing
Frontend Jinja2 + htmx + Alpine.js Server-side rendering with component macros

Nasadenie

GitPulse je navrhnutý pre nasadenie pomocou Docker Compose:

YAML
1
2
3
4
5
6
7
services:
  api:        # FastAPI aplikácia
  worker:     # RQ worker pre pozadie úlohy
  scheduler:  # Periodické úlohy
  postgres:   # Databáza
  redis:      # Cache a queue
  caddy:      # Reverse proxy s HTTPS

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
  • Maximálne odporúčané: 50 projektov, 500 študentov

Ďalšie čítanie