Getting Started with GitPulse¶
This page guides you through the first steps of using the GitPulse.
1. Login¶
- Open the GitPulse dashboard at the address provided by the administrator
- Click "Sign in with GitLab" - you will be redirected to your GitLab server
- Authorize the application, and after successful login you will see your courses overview
Developer Mode
In developer mode, login with name and role (admin / teacher / student) without GitLab OAuth is also available.
2. Creating a Course¶
Option A - New Course¶
- On the main dashboard, click "Create Course"
- Fill in:
| Field | Description | Example |
|---|---|---|
| Course Code | Unique identifier | ZSI |
| Name | Full course name | Fundamentals of Software Engineering |
| Academic Year | School year | 2025/2026 |
| Semester | Winter / Summer | summer |
- Click "Create"
Option B - Import from GitLab¶
- Click "Import from GitLab"
- Paste a GitLab URL:
- Group URL - imports all subgroups and projects (e.g.
https://git.kpi.fei.tuke.sk/zsi-labs/assignments-2025/a3) - Project URL - imports only a single project (e.g.
https://git.kpi.fei.tuke.sk/zsi-labs/assignments-2025/a3/mines-11679)
- Group URL - imports all subgroups and projects (e.g.
- Fill in code, name, and semester
- Check "Auto-sync" for immediate data download
- Click "Import"
Smart Structure Detection
GitPulse automatically recognizes whether the URL points to a group or a project. When importing a group, subgroups become teams and projects are automatically linked. When importing a single project, one team is created with that project.
Option C - JSON Configuration Import¶
- Click "Import JSON"
- Upload a JSON file with a complete course configuration
- JSON includes settings, compliance checks, rubric, and thresholds
3. Adding Projects¶
Automatic Import from Group¶
If you have projects organized in a GitLab group:
- On the course page, click "Import from GitLab"
- Enter the group URL (e.g.
https://git.kpi.fei.tuke.sk/zsi-labs/assignments-2025/a3) - GitPulse automatically finds all projects and creates teams
Single Project Import¶
- Use "Import from GitLab" with a single project URL
- The system creates one team with the assigned project
- Students are automatically detected from project members
flowchart LR
A["Group URL"] -->|Import| B["GitPulse Course"]
C["Project URL"] -->|Import| B
D["JSON config"] -->|Import| B
B --> E["Teams + Projects + Students"] 4. Data Synchronization¶
After import, you need to synchronize data from GitLab:
- GitPulse automatically starts synchronization if you checked "Auto-sync"
- Or click "Sync All" on the course page
- Monitor progress in the global status bar (top of page)
- After completion, metrics and compliance scores are updated
What gets synchronized?
- Issues - all open and closed
- Merge Requests - with comments and review status
- Pipelines - CI/CD results and coverage
- Commits - history and statistics
- Project members - automatic student detection
5. Student Import (Roster)¶
Automatic Detection¶
Students are automatically imported from GitLab group/project members during import. No manual intervention is needed.
CSV Import (optional)¶
For more precise assignment, you can upload a CSV:
| Text Only | |
|---|---|
- In course settings -> "Roster" tab
- Upload the CSV file
- Check the mapping
- Click "Import"
6. Compliance Controls Setup¶
13 Built-in Controls (R01-R13)¶
Controls are grouped into 4 categories: Issue, MR, Review, and CI.
| Control | Name | Category | Weight | Description |
|---|---|---|---|---|
| R01 | Issue Assigned | Issue | 8 % | Student has at least 1 assigned issue |
| R02 | Branch + MR Created | MR | 6 % | MR source branch follows naming convention (e.g. issue-123-description) |
| R03 | Tests Written | MR | 10 % | At least 1 MR contains test file changes |
| R04 | MR Linked to Issue | MR | 8 % | MR description references an issue |
| R05 | MR Description | MR | 5 % | MR description includes required sections (e.g. Description, Testing) |
| R06 | Code Review Received | Review | 12 % | Student's MR received reviews from ≥ N distinct reviewers (partial scoring) |
| R07 | Code Review Given | Review | 12 % | Student meaningfully reviewed ≥ N distinct peer MRs (partial scoring) |
| R08 | Review Response | Review | 10 % | Author responded to review threads and referenced commits (partial scoring) |
| R09 | MR Approved | Review | 9 % | Student's MR received ≥ N approvals (partial scoring) |
| R10 | Merged by Author | MR | 7 % | Author merged their own MR |
| R11 | MR + Issue Closed | MR | 6 % | Both MR and linked issue are closed |
| R12 | Pipeline Green | CI | 7 % | At least 1 pipeline succeeded with a test job |
Threshold Configuration¶
In course settings -> "Settings" tab -> "Compliance" section:
- Green threshold (default 80%) - team meets requirements
- Yellow threshold (default 50%) - needs attention
- Below yellow threshold - red state
Custom Controls¶
GitPulse also supports custom controls (C01+) for course-specific requirements.
7. First Review¶
After synchronization:
- Open the course page - you'll see a team table with traffic-light status
- Click a team for details (compliance, rubric, analytics)
- Click a student for individual metrics (commits, issues, MR, comments)
Done!
Your course is ready. GitPulse automatically processes new events and updates metrics.
Checklist¶
- Logged in via GitLab OAuth
- Created / imported course
- Imported projects and students
- Data synchronization completed
- Compliance controls and thresholds configured
- Checked dashboard - metrics display correctly
Next Steps¶
- Dashboard and Metrics - Learn how to read metrics
- Result Interpretation - Understand the meaning of scores
- FAQ - Solving common problems