Hackathon Dashboard v0.1.8

How it works ten pictures, about 3 minutes

Play it as a video

Hackathon Dashboard

How it works, first the big picture, then what is inside.

  • Records
  • Documents
  • Second look
  • Risks
  • Company AI
  • Where it runs

Hackathon Dashboard. How it works, in three minutes.

Maria, service desk lead, 9:02

How many P1 are open?

What is the response time for a P1?

Two questions, two different places to look.

Maria leads the service desk. At 9:02 she has two questions.

Questionin plain words Routerdecides and says why Recordsone safe function of six Documentsfive passages, citations Second looka different model Answerwith the reason

The router reads the question and says where it goes and why: "the question says 'how many', which asks about the records".

One box. The router reads the question, decides where it goes, and says why.

Questionin plain words Routerdecides and says why Recordsone safe function of six Documentsfive passages, citations Second looka different model Answerwith the reason
Records: count, group, oldest, resolved in n days, average, overview. Filters checked against known values. No free queries.
Documents: the five best passages by word scoring; the answer comes only from them and cites [1], [2].

Records: one safe function from a list of six. Documents: the five best passages, with citations.

Questionin plain words Routerdecides and says why Recordsone safe function of six Documentsfive passages, citations Second looka different model Answerwith the reason
Rules first: every citation must point to a real passage. Then a different model reads the passages and the answer: YES or NO.
The answer is never hidden. The badge says checked or not confirmed, with the reason.

Second look: a different model checks the answer against the passages. Checked, or not confirmed.

All records
P1 open for more than 3 days
One person with far more open records than the average
On hold, untouched for 14 days
A jump in one category this week
Next step for each, and the records behind it

No model here: exact numbers, and the page always loads.

Risks: four plain rules over the records, and the next step for each.

Text
Mask
emails, phones, long numbers become [email], [phone], [number]; if it fails, nothing is sent
Audit
provider, model, sizes, timing; never the text; sealed on disk
Power Automate + AI Builder
Bedrock, company AWS
fast, balanced, best, tiebreak
Company GPU box
Offline demo, always last

Company AI only, through one door: masked first, logged, provider chosen by purpose.

Laptop
Azure App Service
AWS box, HTTPS
Phone, same page
Teams card and @ask replies
SharePoint snapshot

Everything kept on disk is encrypted at rest and decrypted only in memory.

Runs on a laptop, in Azure and in AWS. Phone, Teams card, SharePoint snapshot. Encrypted at rest.

  • router.py reads the question, picks the lane, says why
  • review.py citation rules, then a second model says yes or no
  • risks.py four rules over the records, next step for each
  • dashboard_qa.py six safe functions, a validator, two planners
  • docs_core.py chunks, word scoring, the five best passages
  • ai_lane.py the one door: mask, audit, providers, model tiers
  • sealed.py encryption at rest: DPAPI on Windows, AES-256-GCM on Linux
  • teams_card.py the Adaptive Card and the webhook
  • export_static.py the snapshot and the PDF
  • app/views/*.py one file per page; the navigation finds it

Under the hood: one small file per box. A new page is one Python file plus one template.

Ask it anything.

  • Fictional data, fixed seed
  • 115 tests before every change
  • Works offline
  • Company AI only, masked first

Fictional data. 115 tests. Works offline. Ask it anything.