IT operations & support
InfraOps DeskEvery ticket, in its place.
When a ticket is separate from its device and follow-up history, it is hard to know what happened and what needs attention next. This prototype connects all three.
Role & scope
A personal incident and asset management project. The repository contains Python and SQLite; this workspace lets you inspect case history and follow-up actions.
How does it work?
- Browser interface
Create a ticket, select its asset, search records and change status.
- Application rules
A JSON API validates requests; a separate store calculates priority and applies updates.
- Persistent history
Assets, tickets and ticket events are separate tables. A status change appends an event.
The decisions behind it
Why Python and SQLite?
The local prototype runs without accounts or a separate database service. Separating HTTP from the store makes domain rules testable without the UI. A real team deployment would need permissions, backups and a different operating policy.
How is priority calculated?
Impact and urgency each range from 1 to 3. Their sum maps 6 to P1, 5 to P2, 4 to P3, and 2–3 to P4. Targets are illustrative elapsed hours, not employer service agreements.
What if an update fails?
SQLite transactions commit the update and its event together or roll back. User values are passed as SQL parameters rather than assembled into query text.
Inspect the work.
The repository exposes the priority rules, validation, status history and their tests. The portfolio preview also checks delayed incident creation, deadline ordering and invalid request structures.

Project records cover March to October 2026. Inspect cases and add a ticket within the session.