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
  1. Place the project files in your webroot (example: C:\xampp\htdocs\AssetRadar).
  2. Create a database and import database.sql using phpMyAdmin or the mysql CLI.
  3. Adjust DB credentials in config.php (DB_HOST, DB_USER, DB_PASS, DB_NAME).
  4. 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 connection
  • BASE_URL — base path for links and assets (update when deploying to a subfolder)
Security Notes
  • Ensure display_errors is 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 notifications
  • admin/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
  1. Admin creates/adds an item or imports via CSV.
  2. Item can be assigned to a user (assign_item.php) or left unassigned.
  3. Item status can be updated inline (Working, Damaged, etc.).
  4. Warranties are monitored by the Alerts & Warranties page.
Ticket Lifecycle
  1. User or TL creates a ticket for an item.
  2. Assigned staff can update status and add comments.
  3. When resolved, ticket can be closed — notifications are sent as needed.

Roles & Permissions

Different roles have different capabilities. Below is a summary.

RoleCapabilities
AdminFull inventory management, assign items, manage tickets, view all reports, bulk upload, audit, alerts, and master data.
Team LeaderView/manage team items and tickets, report issues, audit, dashboard widgets, and notifications.
UserView 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 connection
  • inc/auth.php — login helpers and role checks
  • admin/master_data_api.php — CRUD API for master data
  • api/ — 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.sql and ensure migrations ran (e.g., warranty_to vs warranty_expiry).
  • Session warnings: Ensure session_start() is called only once (see config.php for guarded startup).
  • Permission denied / 403: Verify file permissions and that session auth is working for routes that require login.
Debugging Tips
  • Enable display_errors locally 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.