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
- Host: GitHub
- URL: https://github.com/momenbasel/sprint-planner-extension
- Owner: momenbasel
- Created: 2026-06-23T00:12:11.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-23T00:27:46.000Z (about 1 month ago)
- Last Synced: 2026-07-07T22:22:08.821Z (17 days ago)
- Size: 1.13 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.html
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.