Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Building a Local License Manager (LiMa) to Replace SaaS

Description and use

The author built LiMa, a local Python desktop app, to track software licenses and avoid SaaS costs. It uses SQLite for storage, PyQt5 for the UI, plyer for native OS notifications, and Matplotlib for generating report charts. This demonstrates how simple internal tools can replace expensive subscriptions.

Problem

High cost of SaaS Software Asset Management tools for simple license tracking needs, which essentially amount to a SQL table, date notifications, and email recaps.

Outcome

A functional, zero-cost local license manager that provides real-time tracking, native notifications, and automated reporting, eliminating the need for expensive SaaS subscriptions for simple use cases.

Workflow

  • Create a SQLite database with columns for software name and expiration date.
  • Implement a QTimer to refresh the UI every 60 seconds, calculating 'days remaining' dynamically to avoid stale data.
  • Integrate the 'plyer' library to trigger native OS notifications (Windows/macOS/Linux) based on expiration thresholds (30, 14, 7, 3, 1, 0 days).
  • Use Matplotlib to generate a pie chart of expired vs. active licenses.
  • Use smtplib to send an HTML email with the generated chart attached when licenses are in the red zone.
  • Store SMTP credentials securely using the 'keyring' library (recommended improvement).

Evidence

LiMa is a project I built two years ago... The point is that there are small things you can code yourself instead of paying for an annual subscription.

Source

The table has two columns... The number of days remaining is not stored: it's derived in real time on every table refresh.

Source

  • Record date: 2026-09-05T13:58:27.074Z