Building a Local License Manager (LiMa) to Replace SaaS
说明与用途
作者开发了本地 Python 桌面应用 LiMa 来跟踪软件许可证,以避免 SaaS 费用。它使用 SQLite 进行存储,PyQt5 用于界面,plyer 用于原生操作系统通知,Matplotlib 用于生成报告图表。这展示了如何用简单的内部工具替代昂贵的订阅服务。
问题
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.
结果
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.
工作流
- 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).
证据
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.
The table has two columns... The number of days remaining is not stored: it's derived in real time on every table refresh.
- 记录日期: 2026-09-05T13:58:27.074Z