Image Registrars Ltd
ICT Tools โ Internal ICT Automation Suite
Python ยท PySide6 ยท pymssql/pyodbc ยท PyInstaller
A self-updating Windows desktop application built for Image Registrars' ICT team, covering dividend updates, UFAA submissions, database reconciliation, master-file export, and a universal shareholder search.
The standout piece is the search-cache layer: Universal Search normally opens a fresh connection per database, re-discovers columns via INFORMATION_SCHEMA every time, and compares against a CAST()-wrapped column that can't use an index. I designed an indexed cache table instead, rebuilt on demand, that reuses the exact same column-resolution logic as live search so cached and live results never disagree. Benchmarked against real data across 11 databases: an exact ShareholderIDNo search dropped from ~178s live to ~0.13s cached; a Name search dropped from ~150s to ~1.7s.
Ships as a single .exe (PyInstaller) that checks GitHub Releases on startup and self-updates โ download, swap, relaunch โ with a one-command release script that bumps the version, tags, builds, and publishes in one step.