Skip to content

parijatmukherjee/uplift-forge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

84 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ฅ Uplift Forge

โœจ Your engineering team's performance, forged into something useful.

A desktop app that plugs into JIRA and turns messy ticket data into clear metrics, beautiful charts, and actionable insights. No servers. No Docker. No "let me set up the backend real quick." Just install, connect, and see what your team's been up to. ๐Ÿš€


๐ŸŽฏ What It Does (the short version)

You connect to JIRA. Uplift Forge pulls your tickets, crunches the numbers, and gives you:

  • ๐ŸŽญ 4 Persona-Specific Dashboards โ€” completely different metrics for Engineering Managers, Delivery Managers, Individual Contributors, and Members of Management
  • ๐ŸŒ Cross-Project Aggregation โ€” EM and Management personas track multiple JIRA projects simultaneously with aggregated metrics, epics, and attribution
  • โฑ๏ธ Timeline Engine โ€” extracts status periods, cycle/lead time, rework detection, and flow efficiency from JIRA changelogs (calendar-time based)
  • ๐Ÿ“Š EM Dashboard โ€” cycle time distribution, throughput, contribution spread, aging WIP, bug ratio, rework rate, SP accuracy, first-time pass rate, review duration, work type distribution, lead time breakdown
  • ๐ŸŒŠ DM Flow Dashboard โ€” CFD, lead time histogram, WIP vs limit, tiered aging WIP, blockers, flow efficiency, Monte Carlo forecast, arrival vs departure, batch size trend, time to first activity, lead time breakdown
  • ๐Ÿง‘โ€๐Ÿ’ป IC Personal Dashboard โ€” private cycle time trend, throughput, time-in-status, rework, scope trajectory, team comparison (opt-in), personal goals, SP accuracy, first-time pass rate, review wait time, focus score
  • ๐Ÿ›๏ธ Management Org Dashboard โ€” cross-project organizational health radar with throughput by project, cycle time comparison, bug escape rate, tech debt ratio, flow efficiency, headcount-normalized throughput, traffic-light KPIs, delivery predictability, work type by project
  • ๐Ÿ”๏ธ Epic Tracker โ€” epic-level progress tracking with auto-computed risk scores and delivery risk analysis
  • ๐Ÿค– AI Suggestions โ€” connect OpenAI or Claude to get persona-aware actionable improvement suggestions
  • ๐Ÿ“– Explain Button โ€” every metric has a BookOpen icon that opens a modal explaining the data source, computation formula, filters, and config dependencies. Shows dynamic computation traces with real values (ticket counts, filter results, intermediate calculations) when available.
  • ๐ŸŽฏ High Precision โ€” all metrics now utilize 2 decimal place formatting for surgical performance tracking.

All data stays on your machine. ๐Ÿ  Your credentials live in your OS keychain. ๐Ÿ” Nothing leaves your laptop (except JIRA API calls and optional AI provider calls).


๐Ÿš€ Getting Started

1. Clone & install

git clone git@github.com:pmomio/uplift-forge.git
cd uplift-forge
npm install

2. Fire it up ๐Ÿ”ฅ

npm start

3. ๐Ÿ”— Connect to JIRA

On first launch you'll see a login screen. You need three things:

Field Where to get it
๐ŸŒ JIRA Base URL Your Atlassian URL, e.g. https://your-org.atlassian.net
๐Ÿ“ง Email The email on your Atlassian account
๐Ÿ”‘ API Token Generate one at id.atlassian.com

๐Ÿ” Real-time Verification: Uplift Forge verifies your credentials against the JIRA API before saving them. If your API token is invalid or expired, you'll receive an immediate error message. ๐Ÿ›ก๏ธ

That's it. No OAuth dance, no callback URLs, no environment variables. Your credentials are encrypted at rest using your OS keychain (macOS Keychain / Windows DPAPI). ๐Ÿ›ก๏ธ

4. โš™๏ธ Configure your project

Head to Settings and:

  1. ๐Ÿท๏ธ Set your JIRA Project Key (e.g. ACTIN)
  2. ๐Ÿ“ฅ Click Fetch Fields to load your statuses and optionally select your Story Points field
  3. ๐Ÿšฆ Classify your statuses into Active, Blocked, and Done categories

Hit save, and you're off to the races! ๐Ÿ


๐ŸŽญ Persona System

On first launch, an Onboarding Wizard ๐Ÿง™โ€โ™‚๏ธ guides you through selecting your role. This choice is permanent โ€” reset the app to change it later. ๐Ÿ”’

Persona What You See
๐Ÿ‘ฅ Engineering Manager / VP Home, Metrics, Individual, Epics, Settings โ€” cycle time, throughput, contribution, aging WIP, rework, bug ratio, SP accuracy, first-time pass rate, review duration, work type distribution, lead time breakdown, per-engineer individual metrics. Multi-project support. ๐ŸŒ
๐Ÿ“‹ Delivery Manager Home, Metrics, Epics, Settings โ€” Flow Dashboard (CFD, lead time distribution, WIP vs limits, tiered aging WIP, blockers, flow efficiency, throughput stability, Monte Carlo forecast, arrival vs departure, batch size trend, time to first activity, lead time breakdown) ๐ŸŒŠ
๐Ÿง‘โ€๐Ÿ’ป Individual Contributor Home, Individual, Settings โ€” Private personal dashboard (cycle time trend, throughput, time-in-status, rework, scope trajectory, team comparison, personal goals, SP accuracy, first-time pass rate, review wait time, focus score) ๐ŸŽฏ
๐Ÿ›๏ธ Member of Management Home, Metrics, Epics, Settings โ€” Organizational Health Radar (cross-project throughput, cycle time by project, bug escape rate, tech debt ratio, flow efficiency, headcount-normalized throughput). Multi-project. ๐Ÿ’ผ

Each persona sees genuinely different metrics backed by a shared Timeline Engine that computes status periods, cycle/lead time, rework, and flow efficiency from JIRA changelogs. ๐Ÿ”ง

๐Ÿ”’ Persona Isolation: Each persona can ONLY see its own metrics โ€” IPC handlers enforce persona guards preventing cross-persona data access. To change persona, use "Reset App" in the sidebar (goes back to login โ€” full fresh install state).

๐ŸŒ Multi-Project Support: EM and Management personas can configure multiple JIRA project keys during onboarding and in Settings. Data is aggregated across all projects.


๐Ÿ“‘ The Tabs

๐Ÿ  Home

A persona-aware welcome screen with a getting-started guide. Shows different greetings based on your role. ๐Ÿ‘‹

๐Ÿ‘ฅ Team Metrics (EM: Team Dashboard)

For Engineering Managers โ€” the EM Team Dashboard shows:

  • ๐Ÿ“ˆ Cycle Time Distribution โ€” p50/p85/p95 with 4-week trend
  • ๐Ÿ”„ Throughput by Work Stream โ€” ticket counts and SP by category
  • ๐Ÿ“Š Weekly Throughput โ€” trend chart over 8 weeks
  • ๐Ÿ‘ฅ Contribution Spread โ€” per-engineer output normalized against team average
  • โณ Aging WIP โ€” tickets stuck in active statuses beyond warning/critical/escalation thresholds
  • ๐Ÿ› Bug Ratio by Engineer โ€” quality signal per team member
  • ๐Ÿ” Rework Rate โ€” percentage of tickets with backward status transitions
  • ๐ŸŽฏ SP Estimation Accuracy โ€” active time from history vs estimated (SP ร— sp_to_days ร— 8h)
  • โœ… First-Time Pass Rate โ€” percentage of tickets completed without rework
  • โฑ๏ธ Avg Code Review Duration โ€” time tickets spend in review statuses
  • ๐Ÿ“Š Work Type Distribution โ€” horizontal bar chart by issue type
  • ๐Ÿ“‹ Unestimated Ticket Ratio โ€” % of resolved tickets with no story point estimate
  • ๐Ÿ”€ Lead Time Breakdown โ€” active work vs waiting vs blocked percentages

๐ŸŒŠ Team Metrics (DM: Flow Dashboard)

For Delivery Managers โ€” the DM Flow Dashboard shows:

  • ๐Ÿ“Š Cumulative Flow Diagram โ€” 30-day stacked area chart of daily status counts
  • โฑ๏ธ Lead Time Distribution โ€” p50/p85/p95 with histogram (day-range buckets)
  • ๐Ÿ“‹ WIP Count vs Limit โ€” active ticket count with configurable WIP limit
  • โš ๏ธ Aging WIP (3 tiers) โ€” warning/critical/escalation based on configurable thresholds
  • ๐Ÿšซ Blocker Duration โ€” top blocked tickets sorted by blocked hours
  • ๐ŸŒŠ Flow Efficiency โ€” average and median (active time / lead time)
  • ๐Ÿ“ˆ Throughput Stability โ€” coefficient of variation of weekly throughput (1 - stddev/mean)
  • ๐Ÿ”ฎ Monte Carlo Forecast โ€” 10,000 simulations predicting weeks to complete current WIP (50/85/95% confidence)
  • ๐Ÿ”„ Arrival vs Departure Rate โ€” 12-week dual-line chart of tickets created vs resolved
  • ๐Ÿ“ฆ Batch Size Trend โ€” avg SP per completed ticket each week (12 weeks)
  • โฑ๏ธ Time to First Activity โ€” average time from creation to first active status
  • ๐Ÿ”€ Lead Time Breakdown โ€” active work vs waiting vs blocked percentages

๐Ÿง‘โ€๐Ÿ’ป Individual Metrics (EM: Individual Dashboard)

For Engineering Managers โ€” per-engineer metrics with team averages:

  • ๐Ÿ“Š Engineer Output Comparison โ€” bar chart of tickets and SP per engineer
  • ๐Ÿƒ Expandable Engineer Cards โ€” cycle time p50/p85, rework rate, bug ratio, SP accuracy, first-time pass rate, complexity, focus ratio
  • โš–๏ธ Team Averages Bar โ€” baseline comparison for all metrics (includes SP accuracy + first-time pass)
  • ๐ŸŽจ Color-coded โ€” green/red vs team average (lower-is-better for cycle time, rework, bugs)

๐ŸŽฏ Individual Metrics (IC: Personal Dashboard)

For Individual Contributors โ€” private personal metrics with growth framing:

  • ๐Ÿ“ˆ Cycle Time Trend โ€” weekly p50 over 8 weeks
  • ๐Ÿ“Š Weekly Throughput โ€” tickets done per week
  • ๐Ÿ• Time in Each Status โ€” how your time is distributed across workflow states
  • ๐Ÿ” Rework Rate โ€” your rework trend over time
  • ๐Ÿ“ Scope Trajectory โ€” average SP per ticket by month (are you taking on more complex work?)
  • โณ My Aging WIP โ€” your in-progress tickets with days-in-status
  • ๐Ÿ‘ฅ Team Comparison (opt-in) โ€” anonymous team medians for benchmarking
  • ๐ŸŽฏ Goal Progress โ€” personal targets vs current performance
  • ๐ŸŽฏ SP Estimation Accuracy โ€” your estimates vs actual active time from history
  • โœ… First-Time Pass Rate โ€” percentage of your tickets completed without rework
  • โฑ๏ธ Code Review Wait Time โ€” average time your tickets spend in review
  • ๐ŸŽฏ Focus Score โ€” percentage of product work vs bugs/maintenance

๐Ÿ›๏ธ Team Metrics (Management: Org Dashboard)

For Members of Management โ€” organizational health radar across all projects:

  • ๐ŸŽซ Total Tickets โ€” volume KPI across all projects
  • ๐Ÿ› Bug Escape Rate โ€” bugs รท total stories with traffic-light indicator (green <10%, amber <20%, red โ‰ฅ20%)
  • ๐Ÿ”ง Tech Debt Ratio โ€” capacity on bugs + tech debt vs features with traffic-light indicator
  • ๐ŸŒŠ Flow Efficiency โ€” aggregate active time / lead time with traffic-light indicator
  • ๐Ÿ‘ค Headcount-Normalized Throughput โ€” tickets รท number of tracked engineers
  • ๐Ÿ“Š Cycle Time p85 by Project โ€” horizontal bar chart comparing projects
  • ๐Ÿ“ˆ Throughput Trend by Project โ€” multi-line chart (one line per project over 8 weeks)
  • ๐Ÿ“Š Weekly Throughput โ€” aggregate bar chart
  • ๐Ÿ“Š Delivery Predictability โ€” coefficient of variation per project (color-coded: green <30%, amber 30-50%, red >50%)
  • ๐Ÿ“Š Work Type by Project โ€” stacked horizontal bars showing issue type breakdown per project

๐Ÿ”๏ธ Epic Tracker

Track epic-level delivery progress ๐Ÿ“‹. Available for Engineering Managers and Delivery Managers.

  • ๐Ÿ“Š Summary stats โ€” total epics, high/medium/low risk counts
  • ๐Ÿƒ Epic cards โ€” expandable with progress bars, risk badges, ticket counts
  • โš ๏ธ Auto-computed risk scores โ€” weighted formula based on progress, overdue, blocked, bugs
  • ๐Ÿค– AI Risk Analysis โ€” per-epic AI suggestions for risk mitigation

๐Ÿ”ง Settings

  • ๐Ÿ”’ Your Role โ€” read-only badge (set during onboarding, immutable)
  • ๐Ÿ”— JIRA Connection โ€” project key, data range, field mappings
  • ๐Ÿ“Š Metrics โ€” SP calibration, tracked engineers, status classification
  • ๐Ÿ“ Attribution โ€” visual rule builder for TPD BU and Work Stream
  • ๐Ÿ–ฅ๏ธ Application โ€” AI provider setup, version info, update check

๐Ÿ”ง Timeline Engine

The Timeline Engine extracts flow data from JIRA changelogs using calendar time:

  • ๐Ÿ“Š Status Periods โ€” every period a ticket spent in each status, with duration and category (active/wait/blocked/done)
  • โฑ๏ธ Cycle Time โ€” first active status to done (calendar hours)
  • ๐Ÿ“ Lead Time โ€” created to done (calendar hours)
  • ๐ŸŒŠ Flow Efficiency โ€” active time / lead time ร— 100
  • ๐Ÿ” Rework Detection โ€” backward transitions in status order (e.g. Code Review โ†’ In Progress)
  • โณ Days in Current Status โ€” for aging WIP detection

Status classification is configurable in Settings: Active Statuses, Blocked Statuses, Done Statuses. ๐Ÿ”ง


๐Ÿ›ก๏ธ Privacy & Security

  • ๐Ÿ  Local-first: All data lives on your machine. No servers, no telemetry, no tracking.
  • ๐Ÿ” Encrypted credentials: API tokens are stored using your OS's native secure storage (macOS Keychain, Windows DPAPI).
  • ๐Ÿ“œ GDPR consent: Users agree to a Privacy Policy and Terms of Service on first login.
  • ๐Ÿ’ฃ Reset anytime: The "Reset App" button in the sidebar wipes all stored data, credentials, and AI keys โ€” returning you to the login page (fresh install state).

The only external calls are to the JIRA REST API (your instance) and GitHub (for update checks). ๐Ÿ”—


๐Ÿ› ๏ธ Development

๐Ÿ’ป Commands

Command What it does
npm start ๐Ÿ”ฅ Launch in dev mode (Vite HMR + Electron)
npm test ๐Ÿงช Run all tests
npm run test:watch ๐Ÿ‘€ Watch mode
npm run test:coverage ๐Ÿ“Š Coverage report
npm run lint ๐Ÿ” ESLint
npm run test:e2e ๐ŸŽญ Run all e2e tests
npm run test:e2e:headed ๐Ÿ‘€ Run e2e tests with visible window
npm run test:all ๐Ÿงช๐ŸŽญ Run unit + e2e tests
npm run package ๐Ÿ“ฆ Package the app
npm run make ๐Ÿ—๏ธ Build distributables (DMG / Squirrel / ZIP)
npm run publish ๐Ÿš€ Publish to GitHub Releases

๐Ÿ—๏ธ Tech Stack

Layer Tech
Runtime โšก Electron 33
Frontend โš›๏ธ React 19, ๐ŸŽจ Tailwind CSS 4, ๐Ÿ“ˆ Recharts, โœจ Lucide icons
Language ๐Ÿ“˜ TypeScript 5.9 (strict mode)
Build ๐Ÿ”จ Electron Forge + Vite
Testing ๐Ÿงช Vitest + Testing Library + jsdom
Date/Time ๐Ÿ• Luxon (timezone-aware)
Storage ๐Ÿ’พ electron-store (JSON on disk)
Auth ๐Ÿ”‘ API token, encrypted via safeStorage

๐Ÿ“ Project Layout

src/
  main/           ๐Ÿ–ฅ๏ธ Electron main process
    auth/           ๐Ÿ” Credential storage (OS keychain)
    ipc/            ๐Ÿ“ก IPC handler registrations
    services/       ๐Ÿง  Business logic (config, JIRA, tickets, metrics, timeline, em/dm/ic/cto metrics, field engine, projects, updates)
  renderer/       ๐ŸŽจ React frontend
    pages/          ๐Ÿ“„ Home, Login, EmTeamDashboard, EmIndividualDashboard, DmFlowDashboard, IcPersonalDashboard, CtoOrgDashboard, Attribution, Epic Tracker
    components/     ๐Ÿงฉ Sidebar, ConfigPanel, TicketTable, RuleBuilder, OnboardingWizard, etc.
  shared/         ๐Ÿค Types and IPC channel constants
test/
  main/           ๐Ÿงช Service unit tests

๐Ÿงช Testing

Unit Tests: 675 tests across 33 test suites (Vitest + Testing Library). Coverage thresholds enforced:

Metric Threshold
โœ… Statements 90%
๐Ÿ”€ Branches 80%
โšก Functions 85%
๐Ÿ“ Lines 90%

E2E Tests: ~54 end-to-end tests using Playwright + Electron ๐ŸŽญ. Tests launch the real packaged app with an isolated user-data directory and a local JIRA mock server.


๐Ÿ“ฆ Building for Distribution

# ๐ŸŽ macOS DMG
npm run make

# ๐ŸŒ All platforms (DMG, Squirrel installer, ZIP)
npm run make

Releases are published to GitHub via npm run publish. The app checks for updates automatically every 4 hours โฐ (or manually from Settings).


๐Ÿ“œ License

GNU GPL v3


Built with โค๏ธ by Parijat Mukherjee

About

A desktop app that plugs into JIRA and turns messy ticket data into clear metrics, beautiful charts, and actionable insights. No servers. No Docker. No "let me set up the backend real quick." Just install, connect, and see what your team's been up to. ๐Ÿš€

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages