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 | |
|---|---|
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¶
- Architektúra systému - technické detaily
- Ciele diplomovej práce - akademický kontext
- Príručka pre učiteľov - začíname s GitPulse