A small full-stack web app for logging IT support tickets and tracking hardware assets — built as a practical learning project to develop hands-on experience with the tech stack used in business/IT support roles.
- Log and manage support tickets — create a ticket, move it through Open → In Progress → Resolved.
- Track hardware assets — add assets (laptops, monitors, etc.) with an asset tag, type, and who they're assigned to.
- Export the asset inventory as XML — click "Export Asset List as XML" to download a structured XML report of all assets.
- Filter tickets by status dynamically, without reloading the page.
| Skill | Where it shows up |
|---|---|
| Python (Flask) | app.py — all backend routes and logic |
| SQL (SQLite) | Ticket and asset data stored in helpdesk.db |
| JavaScript (vanilla) | static/js/app.js — fetches data, updates the page live |
| HTML5 / CSS3 | templates/index.html, static/style.css |
| XML | /api/assets/export.xml — generates an XML report |
# 1. Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate
# on Windows: venv\Scripts\Activate.ps1
# 2. Install dependencies
pip install flask
# 3. Run the app
python app.py
# 4. Open your browser to:
http://localhost:5000The database (helpdesk.db) is created automatically the first time you run it.
it-helpdesk/
├── app.py # Flask backend (routes, database logic, XML export)
├── templates/
│ └── index.html # Main page
├── static/
│ ├── style.css # Styling
│ └── js/
│ └── app.js # Frontend logic (fetch calls, DOM updates)
└── README.md
- Add user login (Flask sessions) to simulate multiple support agents
- Add a "priority" sort so High priority tickets show first
- Add basic form validation feedback (e.g. red border on empty title)
- Deploy it on a free host (Render, PythonAnywhere) so it's live, not just local
- Write a few unit tests using Python's
unittestorpytest
Built to develop practical, demonstrable experience with Python web development, SQL, JavaScript, and XML — directly relevant to junior IT/software support roles that combine business application development with day-to-day IT support.