Context
My master’s thesis for the Master’s Degree in Computer Engineering at the Universidade da Coruña. Development data was split between GitHub and Bitbucket, and the impact of AI coding assistants on the teams’ work had to be measured.
Approach
- Sync. A standalone engine, organized as ports and adapters, that runs incremental and full syncs, tracks the state of every run, retries failures and limits concurrency. Identities from the different sources are resolved by email.
- API. An Express API organized in vertical slices, with corporate authentication (SSO/JWT) and Swagger docs, that computes PR, commit and weekly-activity metrics.
- Dashboards. A Next.js app with an AI-adoption view (Copilot active users, prompts, and lines suggested versus accepted) and an organization view (teams, repositories and people), with configurable KPI thresholds and period comparisons.
- Deployment. Every service is packaged with Docker.
Outcome
A complete tool, from ingestion to visualization, that puts the development activity of two platforms and the use of AI assistants in one place. The project was a chance to apply a ports-and-adapters architecture to a system with several data sources, and to design indicators that can be compared from one period to the next.