IT Asset Tracker
Manage inventory, assign assets, track issues, and monitor notifications — all in one modern, responsive platform.
System Overview
The IT Asset Tracker is a web-based platform for managing IT inventory, tracking asset assignments, reporting issues, and monitoring notifications. It supports three user roles: Admin, Team Leader, and User.
- Mobile-friendly, modern UI with Bootstrap 5
- Role-based dashboards and navigation
- Live charts, widgets, and quick actions
- Search, filter, pagination, and CSV export for tables
- Inline editing and instant notifications
Quick Start
Requirements
- PHP 8.0+ with mysqli and mbstring extensions
- MySQL/MariaDB 5.7+
- Apache or nginx webserver (XAMPP bundled Apache works well)
Installation
- Place the project files in your webroot (example:
C:\xampp\htdocs\AssetRadar). - Create a database and import
database.sqlusing phpMyAdmin or the mysql CLI. - Adjust DB credentials in
config.php(DB_HOST, DB_USER, DB_PASS, DB_NAME). - Point your browser to the site and login using seeded accounts (see below).
Seeded Accounts
The sample database contains default users for quick testing: admin, team leader, and user (see README for exact credentials or check database.sql).
Configuration
Key File: config.php
Main configuration is in config.php. Important constants:
DB_HOST, DB_USER, DB_PASS, DB_NAME— database connectionBASE_URL— base path for links and assets (update when deploying to a subfolder)
Security Notes
- Ensure
display_errorsis disabled in production. - Use strong DB credentials and limit DB user privileges where possible.
- Consider enabling HTTPS and HSTS for production deployments.
Database Schema (Highlights)
The project uses a small relational schema. Key tables include:
- users — user accounts, roles and team associations.
- roles — role definitions (admin/tl/user).
- items — inventory items (asset_tag, item_name, category_id, warranty_to, assigned_to).
- tickets — issue reports linked to items and users.
- notifications — in-app notifications for users.
Adding a Column / Migration
Use SQL migrations in the migrations/ folder or run manual ALTER statements. Example to add a warranty column:
ALTER TABLE items ADD COLUMN warranty_expiry DATE DEFAULT NULL;
API Endpoints (Overview)
The app exposes a small internal API used by the UI under /api/ and /admin/master_data_api.php. Important endpoints:
/api/items.php— item listing and quick operations/api/tickets.php— ticket actions and status updates/api/notifications.php— fetch and mark notificationsadmin/master_data_api.php— CRUD for master data (roles, teams, categories, users, items, vendors)
Most endpoints accept and return JSON and rely on session-based authentication (the user must be logged in).
Workflows
Inventory Lifecycle
- Admin creates/adds an item or imports via CSV.
- Item can be assigned to a user (assign_item.php) or left unassigned.
- Item status can be updated inline (Working, Damaged, etc.).
- Warranties are monitored by the Alerts & Warranties page.
Ticket Lifecycle
- User or TL creates a ticket for an item.
- Assigned staff can update status and add comments.
- When resolved, ticket can be closed — notifications are sent as needed.
Roles & Permissions
Different roles have different capabilities. Below is a summary.
| Role | Capabilities |
|---|---|
| Admin | Full inventory management, assign items, manage tickets, view all reports, bulk upload, audit, alerts, and master data. |
| Team Leader | View/manage team items and tickets, report issues, audit, dashboard widgets, and notifications. |
| User | View assigned items, report issues, track ticket status, receive notifications. |
Key Features
Inventory Management
- View, search, filter, and export inventory
- Assign items to users/teams (admin)
- Inline editing for item condition and ownership
Ticketing System
- Report issues for assets
- Track ticket status and history
- Quick actions: close, update status, assign
- Role-based ticket view and update
Notifications
- Live notification dropdown with auto-refresh
- Mark as read, instant updates, and links to tickets
Dashboard & Widgets
- Role-specific dashboard cards and charts
- Recent tickets, items needing attention, quick links
How to Use
Login & Navigation
- Login with your credentials to access your dashboard
- Use the top navigation bar for quick access to features
Managing Inventory
- Admins can add, edit, assign, and bulk upload items
- Team Leaders can view team items and audit
- Users see only their assigned items
Reporting & Tracking Issues
- Report issues from your dashboard or item view
- Track ticket status and add comments
- Admins and TLs can update status and close tickets
Notifications
- Check the bell icon for new notifications
- Click to view details or mark as read
Technical Details
- Built with PHP, MySQL, Bootstrap 5, Chart.js
- Role-based access control and secure authentication
- AJAX for live updates and quick actions
- Responsive design for desktop and mobile
Files of Interest
config.php— application bootstrap and DB connectioninc/auth.php— login helpers and role checksadmin/master_data_api.php— CRUD API for master dataapi/— lightweight internal API endpoints
Troubleshooting
Common Errors
- Unknown column in SQL: This usually means the code expects a column name different from the DB. Check
database.sqland ensure migrations ran (e.g.,warranty_tovswarranty_expiry). - Session warnings: Ensure
session_start()is called only once (seeconfig.phpfor guarded startup). - Permission denied / 403: Verify file permissions and that session auth is working for routes that require login.
Debugging Tips
- Enable
display_errorslocally and check Apache/PHP error logs. - Use the browser DevTools Network tab to inspect AJAX requests and responses.
FAQ
How do I change the base URL?
Edit BASE_URL in config.php to match the deployment path (e.g., /assetradar or /).
How do I add more roles?
Insert new records in the roles table and adjust any role-based checks in inc/auth.php if necessary.
Changelog
- 2025-09-13 — Project scaffold and initial sample data (database.sql)
- 2025-10-18 — Documentation styling and sidebar improvements
Support & Contact
For help, feature requests, or bug reports, contact your system administrator or IT support team.