An open API service indexing awesome lists of open source software.

https://github.com/momenbasel/sprint-planner-extension

Chrome side panel extension for visual Jira sprint planning
https://github.com/momenbasel/sprint-planner-extension

Last synced: 10 days ago
JSON representation

Chrome side panel extension for visual Jira sprint planning

Awesome Lists containing this project

README

          

# Sprint Planner — Chrome Extension

A Chrome extension for planning Jira sprints with a Gantt view, days-off support, and one-click due date sync.

Built with zero infrastructure: each user connects their own Jira API token. Works for any Jira Cloud organisation.

---

## Features

- **Gantt chart** with calendar-accurate bar placement — bars never appear on vacation or holiday days
- **Days off & public holidays** — individual per-person or team-wide blocking
- **Regression story detection** — flags missing regression test stories before planning
- **Missing estimate detection** — highlights subtasks with no estimate (uses 2h default)
- **Apply to Jira** — writes planned due dates directly via the Jira REST API
- **Caching** — sprint data is cached in chrome.storage for instant re-use without re-fetching
- **Multi-squad** — works for any Jira project key (HRM, APL, ATH, or custom)

## Working day logic

| Day | Behaviour |
|---|---|
| Monday | Ceremony day — regression stories get 2h slot, regular work starts Tuesday |
| Tuesday–Thursday | Full dev days (configurable hours/day, default 6h) |
| Friday | Weekend — skipped |
| Saturday | Weekend — skipped |
| Sunday | Dev day (working week: Sun–Thu) |

---

## Installation

### From the `builds/` folder (quickest — no build step needed)

1. Download `builds/sprint-planner-extension-v1.zip` (or the latest version)
2. Unzip it
3. Open Chrome → `chrome://extensions`
4. Enable **Developer mode** (top-right toggle)
5. Click **Load unpacked** → select the unzipped folder
6. The 📋 icon appears in your toolbar

### From source

```bash
git clone https://github.com/your-org/sprint-planner-extension
cd sprint-planner-extension
# No build step — it's plain JS (ES modules)
# Load the folder directly in Chrome as an unpacked extension
```

---

## Setup (first time)

1. Click the 📋 toolbar icon
2. You'll be prompted to **Set up Jira connection**
3. Enter:
- **Jira base URL** — e.g. `https://your-org.atlassian.net`
- **Email** — the email you use to log in to Jira
- **API token** — create one at [id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens)
4. Click **Test connection** to verify, then **Save & continue**

Your credentials are stored in `chrome.storage.local` — they never leave your browser.

---

## Usage

1. **Choose a project** — HRM, APL, ATH, or type a custom key
2. **Fetch from Jira** — pulls the active sprint, all stories, and all subtask estimates
3. **Add days off** — individual vacations and/or public holidays
4. **Generate plan** — instant Gantt computed in your browser (zero network calls)
5. **Review dates** — optionally edit planned due dates in the Review tab
6. **Apply to Jira ✓** — writes `duedate` field to each story via the Jira REST API

---

## Architecture

```
sprint-planner-extension/
├── manifest.json # Chrome extension manifest v3
├── popup.html # Main UI (all screens)
├── popup.js # App controller (ES module)
├── settings.html # First-time auth setup
├── settings.js # Credential management
├── styles.css # Shared styles
├── src/
│ ├── jira-api.js # Atlassian REST API v3 client
│ └── scheduler.js # Sprint scheduling engine (pure JS, no deps)
├── icons/ # Extension icons
└── builds/ # Pre-packaged ZIP files for easy install
```

### Why no OAuth?

For internal team tools, API tokens are simpler and just as secure:
- No redirect URI, no OAuth server, no client secrets in the code
- Tokens can be scoped and revoked per-user in the Atlassian account settings
- Credentials are stored encrypted by Chrome, never transmitted outside your org's Jira instance

If you want OAuth 2.0 (3LO) for a public-facing version, that requires a backend — see the `docs/` folder for that path.

---

## API calls made

| Call | Endpoint |
|---|---|
| Fetch stories | `GET /rest/api/3/search?jql=project=X AND sprint in openSprints()...` |
| Fetch subtasks | `GET /rest/api/3/search?jql=issue in (...)` |
| Apply due dates | `PUT /rest/api/3/issue/{key}` with `{ fields: { duedate: "YYYY-MM-DD" } }` |
| Test connection | `GET /rest/api/3/myself` |

All calls go directly from the extension to your Jira instance (declared in `host_permissions` in `manifest.json` — Chrome grants cross-origin access for declared hosts).

---

## Releases

| Version | Date | Notes |
|---|---|---|
| v1.0.0 | 2026-04-25 | Initial release — HRM/APL/ATH support, Gantt, days off, apply to Jira |

---

## Development

No build tooling required. The extension uses native ES modules — just edit files and reload in `chrome://extensions`.

To add a new quick-select project, add a button to `popup.html`:
```html
NEW · New Squad
```

---

## Claude artifact (interim tool)

While this extension is in development, the team is using a Claude artifact version of the same tool. The latest artifact HTML is in `builds/sprint-planner-claude-artifact-latest.html` — it can be loaded directly in any browser for a standalone read-only preview.