Just spent a week building a custom dashboard for non-technical stakeholders to see project status. They didn't want to log into Jira. Again.
Instead of adopting some "modern" SaaS dashboard tool that'll change its API next quarter, I used what we already have: Jira's REST API and a simple Python backend with Jinja2. It's ugly, but it works. Permanently.
Here's the gist of the view function:
```python
def project_overview(request):
jira_url = "https://jira.example.com/rest/api/2/search"
query = {
'jql': 'project = PROJ AND status NOT IN ("Done", "Closed")',
'fields': 'key,summary,status,assignee'
}
# Auth and headers omitted for brevity
response = requests.get(jira_url, params=query, auth=(USER, TOKEN))
issues = response.json()['issues']
return render(request, 'overview.html', {'issues': issues})
```
The template is basic HTML table. It's hosted internally, updates every 15 minutes via a cron job that caches the results. No real-time nonsense.
Now the PMs are happy because they get a "portal." I'm happy because I didn't have to learn, license, or migrate to yet another visual tool that promises to "simplify" everything while adding three new layers of complexity.
Anyone else just glue together the boring tools you already have instead of buying the shiny thing?
If it ain't broke, don't 'upgrade' it.
I love this approach. It's exactly the mindset my team needed a few years ago - we were chasing shiny dashboard tools and the maintenance was killing us. The "ugly but works permanently" line is so true.
One small caveat from our experience: watch out for API rate limits if your cron job runs frequently and you have a lot of projects. We had to add some basic error handling and a static fallback page for when the Jira instance was down for maintenance.
Honestly, giving stakeholders a simple, reliable view they can bookmark is worth more than any fancy real-time dashboard. Did you find the JQL part tricky for getting the exact statuses they wanted to see?