This page describes DevMetrics from the user's perspective: what they see, what they can do, and how the application behaves at each step. It is organized as a linear walkthrough of the full user journey, followed by a breakdown of each screen.
A first-time user lands on the app, signs in with GitHub, adds a repository to track, waits briefly while it syncs, then explores their coding patterns through charts and metrics. That is the entire flow. There are no settings to configure, no forms to fill out beyond repo selection, and no manual data entry — everything is pulled from GitHub automatically.
/login)What the user sees
A minimal page with a single call to action: a "Sign in with GitHub" button. No username, no password, no email field. The page may include a brief one-line description of what DevMetrics does.
What happens when they click it
The browser redirects to GitHub's OAuth authorization page. GitHub shows the user which permissions DevMetrics is requesting (read:user, user:email, repo) and asks them to approve. If they are already logged in to GitHub, this takes about two seconds. If not, they log in to GitHub first.
After approval
GitHub redirects back to the app at /auth/callback with a token in the URL. The app reads the token, stores it in memory, strips it from the URL bar immediately (so it is never visible in browser history), and redirects the user to the Dashboard. The whole round-trip feels near-instant.
Subsequent visits
If the user closes the tab and comes back, the in-memory token is gone and they land on the Login page again. This is a deliberate security trade-off. The refresh token (stored in sessionStorage) means the same browser tab staying open will silently re-authenticate without the user noticing.
/)What the user sees
The main landing screen after login. It has two zones: a persistent sidebar on the left for navigation, and the main content area on the right.
Sidebar
The sidebar lists: