feat:Team analytics UI
What does this MR do and why?
This MR introduces a Team Analytics Dashboard in Streamlit that reads team configuration from a CSV file and displays GitLab analytics at both team and individual levels.
Key Features:
-
Upload a CSV file containing:
team_name-
username(GitLab usernames)
-
Displays:
- Team-level totals:
- Commits
- Merge Requests
- Issues
- Projects
- Groups
- Individual-level stats for each team member
- Team-level totals:
-
Adds a Date Filter (Start Date / End Date) that:
- Filters commits, merge requests, and issues
- Applies to both team and individual views
-
Implements:
- Section-wise loading (Commits, Issues, MRs load independently)
- Proper
st.session_statehandling -
st.cache_data(ttl=300)for optimized API calls - Clear Filter button that resets:
- Dates
- Cached section data
- Pagination (if applicable)
Why?
- Improves visibility of team productivity
- Enables configurable team management using CSV
- Prevents duplicate API calls
- Ensures scalable and production-ready architecture
- Improves UX with independent section loading
References
- GitLab API Documentation
- Streamlit Documentation (Session State & Cache Data)
- Internal Team Analytics Requirement
Screenshots or screen recordings
Screenshots attached below showing:
- CSV upload section
- Team summary view
- Individual member analytics
- Date filter applied
- Clear filter functionality
| Before | After |
|---|---|
| No team analytics | Team & Individual analytics dashboard with date filtering |
How to set up and validate locally
- Clone the repository
git clone <repo-url> cd <project-folder>