Skip to content

Adhvyth-T/IntelliAsset-Itam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IntelliAsset-ITAM πŸš€

License: MIT Python 3.8+ React 18 FastAPI MongoDB

Intelligent IT Asset Management System with AI-Assisted Device Recognition and Live Monitoring

A next-generation ITAM platform that combines multi-modal device scanning, LangChain-powered AI processing, real-time monitoring, and cryptographic audit trails to revolutionize IT asset tracking and management.

Screenshot 2025-11-05 223322
Dashboard Preview


πŸ“‹ Table of Contents


✨ Features

πŸ” Multi-Modal Device Scanner

  • Barcode Scanning: 98.2% success rate with sub-100ms processing
  • QR Code Recognition: 96.8% accuracy for quick device identification
  • OCR Text Extraction: 91.5% accuracy on clear labels using Tesseract
  • Manual Entry: 100% accuracy with validation and auto-complete
  • Intelligent Fallback: Automatically attempts multiple methods for 97.3% overall success

πŸ€– LangChain-Powered AI Agent

  • Context-Aware Processing: Understands device information from unstructured text
  • Intelligent Data Extraction: Automatically identifies manufacturer, model, serial numbers
  • Validation & Confidence Scoring: Suggests categorization with confidence metrics
  • 94.7% Success Rate: Reduces manual data entry by 80-83%

πŸ“Š Real-Time Monitoring

  • Lightweight Agent: <1% CPU usage, <50MB memory footprint
  • Live Metrics Collection: CPU, memory, disk, network statistics
  • Sub-Second Latency: Real-time updates with heartbeat mechanism
  • Proactive Alerts: Detect offline devices within 5 minutes

πŸ” Cryptographic Audit Trail

  • Immutable Chain: SHA-256 hash-based audit records
  • 100% Change Capture: Every asset modification tracked
  • Compliance Ready: SOX, GDPR, ISO 27001 compliant
  • Tamper Detection: Automatic verification on every fetch

πŸ“ˆ Analytics & Reporting

  • Dashboard Analytics: Real-time insights into asset inventory
  • Department-Wise Distribution: Track assets by department and category
  • Compliance Monitoring: Automated status updates based on warranty/audit dates
  • Utilization Reports: Asset aging, status distribution, and cost analysis

πŸ›’ Procurement Management

  • Purchase Request Workflow: Submit, approve, and track asset purchases
  • Budget Tracking: Monitor spending against department budgets
  • Multi-Level Approval: Configurable approval chains
  • Vendor Management: Track suppliers and purchase history

πŸ”’ Security & Authentication

  • JWT-Based Authentication: Secure token-based access control
  • Role-Based Permissions: Admin, Manager, Employee, IT Support roles
  • Bcrypt Password Hashing: Industry-standard security
  • Session Management: Automatic token refresh and logout

πŸ›  Technology Stack

Frontend

  • React 18.x: Component-based UI with hooks
  • Tailwind CSS: Utility-first styling
  • Lucide React: Beautiful icon library
  • Axios: HTTP client for API communication

Backend

  • FastAPI: High-performance async Python framework
  • Pydantic: Data validation and settings management
  • Motor: Async MongoDB driver
  • Python-Jose: JWT token handling
  • Passlib: Password hashing with Bcrypt

AI & Processing

  • LangChain: Framework for LLM-powered applications
  • OpenCV: Image processing and computer vision
  • Tesseract OCR: Optical character recognition
  • Pyzbar: Barcode and QR code decoding

Database

  • MongoDB Atlas: Cloud-native NoSQL database
  • Change Streams: Real-time data change notifications

Monitoring

  • Psutil: Cross-platform system metrics
  • HTTPX: Async HTTP client
  • AsyncIO: Asynchronous I/O operations

πŸ— System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Presentation Layer                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   React UI   β”‚  β”‚   Scanner    β”‚  β”‚   Analytics          β”‚  β”‚
β”‚  β”‚   Dashboard  β”‚  β”‚   Interface  β”‚  β”‚   Visualization      β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               ↕
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       Application Layer                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   FastAPI    β”‚  β”‚  LangChain   β”‚  β”‚   Authentication     β”‚  β”‚
β”‚  β”‚   REST API   β”‚  β”‚  AI Agent    β”‚  β”‚   & Authorization    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               ↕
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          Data Layer                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   MongoDB    β”‚  β”‚    Audit     β”‚  β”‚   Agent Status       β”‚  β”‚
β”‚  β”‚   Assets     β”‚  β”‚    Chain     β”‚  β”‚   Collection         β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               ↕
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Monitoring Agents                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Agent 1    β”‚  β”‚   Agent 2    β”‚  β”‚   Agent N            β”‚  β”‚
β”‚  β”‚   (Device)   β”‚  β”‚   (Device)   β”‚  β”‚   (Device)           β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Getting Started

Prerequisites

Installation

1. Clone the Repository

git clone https://github.com/yourusername/IntelliAsset-ITAM.git
cd IntelliAsset-ITAM

2. Backend Setup

# Navigate to backend directory
cd backend

# Create virtual environment
python -m venv venv

# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

requirements.txt includes:

fastapi>=0.104.0
uvicorn[standard]>=0.24.0
motor>=3.3.0
pydantic>=2.0.0
python-jose[cryptography]>=3.3.0
passlib[bcrypt]>=1.7.4
python-multipart>=0.0.6
httpx>=0.25.0
aiohttp>=3.9.0
psutil>=5.9.0
opencv-python-headless>=4.8.0
pytesseract>=0.3.10
pyzbar>=0.1.9
Pillow>=10.0.0
langchain>=0.1.0
python-dotenv>=1.0.0

3. Frontend Setup

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

4. MongoDB Atlas Setup

  1. Create a MongoDB Atlas account at mongodb.com/cloud/atlas
  2. Create a new cluster (Free tier available)
  3. Create a database user with read/write permissions
  4. Whitelist your IP address (or use 0.0.0.0/0 for development)
  5. Get your connection string

Configuration

Backend Configuration

Create a .env file in the backend/ directory:

# MongoDB Configuration
MONGODB_URL=mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority
DATABASE_NAME=itam
OPENROUTER_API_KEY=your-openrouter-api-key-here

# Security
SECRET_KEY=your-super-secret-key-minimum-32-characters-long
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
REFRESH_TOKEN_EXPIRE_DAYS=7

# Application
DEBUG=True
HOST=0.0.0.0
PORT=8000

# CORS
FRONTEND_URL=http://localhost:3000

Frontend Configuration

Create a .env file in the frontend/ directory:

REACT_APP_API_URL=http://localhost:8000

πŸ’» Usage

Starting the Backend

cd backend

# Make sure virtual environment is activated
source venv/bin/activate  # or venv\Scripts\activate on Windows

# Start the server
uvicorn main:app --reload --host 0.0.0.0 --port 8000

The API will be available at http://localhost:8000

Starting the Frontend

cd frontend
npm start

The application will open at http://localhost:3000

Starting the Monitoring Agent

cd agent
python agent.py

The agent interface will be available at http://127.0.0.1:8081


πŸ“š API Documentation

Authentication Endpoints

Register User

POST /api/auth/register
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john@example.com",
  "password": "securepassword",
  "department": "IT",
  "role": "Admin"
}

Login

POST /api/auth/login
Content-Type: application/json

{
  "email": "john@example.com",
  "password": "securepassword"
}

Asset Endpoints

Get All Assets

GET /api/assets?skip=0&limit=100&status=Active
Authorization: Bearer {token}

Create Asset

POST /api/assets
Authorization: Bearer {token}
Content-Type: application/json

{
  "name": "Dell Laptop",
  "type": "Laptop",
  "category": "Hardware",
  "status": "Active",
  "serialNumber": "SN123456",
  "department": "Engineering",
  "cost": 1500.00
}

Scanner Endpoints

Scan Device

POST /api/scanner/scan
Authorization: Bearer {token}
Content-Type: application/json

{
  "manual_id": "SN123456",
  "scan_type": "manual",
  "auto_add": false
}

Audit Trail Endpoints

Get Asset Audit Chain

GET /api/audit/asset/{asset_id}
Authorization: Bearer {token}

Verify Audit Chain

GET /api/audit/asset/{asset_id}/verify
Authorization: Bearer {token}

For complete API documentation, visit: http://localhost:8000/docs


πŸ“ Project Structure

IntelliAsset-ITAM/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ main.py                 # FastAPI app entry point
β”‚   β”œβ”€β”€ config.py               # Configuration constants
β”‚   β”œβ”€β”€ database.py             # MongoDB connection
β”‚   β”œβ”€β”€ requirements.txt        # Dependencies
β”‚   β”‚
β”‚   β”œβ”€β”€ models/                 # Pydantic models (7 files)
β”‚   β”‚   β”œβ”€β”€ enums.py           # UserRole, ProcurementStatus, etc.
β”‚   β”‚   β”œβ”€β”€ user.py            # User models
β”‚   β”‚   β”œβ”€β”€ asset.py           # Asset models
β”‚   β”‚   β”œβ”€β”€ procurement.py     # Procurement models
β”‚   β”‚   β”œβ”€β”€ audit.py           # Audit chain models
β”‚   β”‚   └── agent.py           # Agent models
β”‚   β”‚
β”‚   β”œβ”€β”€ auth/                   # Authentication (2 files)
β”‚   β”‚   β”œβ”€β”€ security.py        # JWT, password hashing
β”‚   β”‚   └── dependencies.py    # Auth middleware
β”‚   β”‚
β”‚   β”œβ”€β”€ utils/                  # Utilities (2 files)
β”‚   β”‚   β”œβ”€β”€ helpers.py         # Helper functions
β”‚   β”‚   └── audit.py           # Audit chain logic
β”‚   β”‚
β”‚   └── routes/                 # API endpoints (7 files)
β”‚       β”œβ”€β”€ auth.py            # /api/auth/*
β”‚       β”œβ”€β”€ assets.py          # /api/assets/*
β”‚       β”œβ”€β”€ users.py           # /api/users/*
β”‚       β”œβ”€β”€ procurement.py     # /api/procurement/*
β”‚       β”œβ”€β”€ analytics.py       # /api/analytics/*
β”‚       β”œβ”€β”€ audit.py           # /api/audit/*
β”‚       └── agent.py           # /api/agent/*
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ scanner/
β”‚   β”‚   β”‚   β”‚   └── DeviceScanner.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AuthContext.jsx
β”‚   β”‚   β”‚   β”‚   └── ProtectedRoute.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ assets/
β”‚   β”‚   β”‚   β”‚   └── AssetManagement.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ dashboard/
β”‚   β”‚   β”‚   β”‚   └── Dashboard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ common/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Header.jsx
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ErrorAlert.jsx
β”‚   β”‚   β”‚   β”‚   └── NavigationTabs.jsx
β”‚   β”‚   β”‚   └── procurement/
β”‚   β”‚   β”‚       └── ProcurementManagement.jsx
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”‚   β”œβ”€β”€ useAssets.js
β”‚   β”‚   β”‚   └── useUsers.js
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   └── index.js
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ tailwind.config.js
β”‚   └── .env
β”‚
β”œβ”€β”€ agent/
β”‚   β”œβ”€β”€ agent.py                # Monitoring agent
β”‚   └── requirements.txt
β”‚
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ API_Documentation.md
β”‚   β”œβ”€β”€ DEPLOYMENT.md
β”‚   └── USER_GUIDE.md
β”‚
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE
└── README.md

🀝 Contributing

We welcome contributions to IntelliAsset-ITAM! Here's how you can help:

How to Contribute

  1. Fork the Repository
  2. Create a Feature Branch
    git checkout -b feature/AmazingFeature
  3. Commit Your Changes
    git commit -m 'Add some AmazingFeature'
  4. Push to the Branch
    git push origin feature/AmazingFeature
  5. Open a Pull Request

Development Guidelines

  • Follow PEP 8 for Python code
  • Use ESLint and Prettier for JavaScript/React
  • Write meaningful commit messages
  • Add tests for new features
  • Update documentation as needed

Areas for Contribution

  • 🎨 UI/UX improvements
  • πŸ› Bug fixes and issue resolution
  • πŸ“š Documentation enhancements
  • πŸ§ͺ Test coverage expansion
  • 🌐 Internationalization (i18n)
  • πŸ”Œ Third-party integrations
  • πŸš€ Performance optimizations

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ“Š Performance Benchmarks

Metric Value
Device Identification Accuracy 95%+
Manual Data Entry Reduction 80-83%
Audit Time Reduction 60-70%
Scanner Success Rate 97.3%
Monitoring Latency <1 second
Agent CPU Usage <1%
Agent Memory Footprint <50MB
API Response Time <500ms
Database Query Time <200ms
System Uptime 99%+
Concurrent Users Supported 25+
Assets Managed (Tested) 1500+

🎯 Use Cases

IT Departments

  • Track laptops, desktops, servers, and network equipment
  • Automate device onboarding and offboarding
  • Monitor device health and performance in real-time
  • Ensure compliance with warranty and audit schedules

Educational Institutions

  • Manage classroom technology and lab equipment
  • Track student device assignments
  • Monitor equipment utilization across departments
  • Plan technology refresh cycles

Healthcare Organizations

  • Track medical devices and diagnostic equipment
  • Ensure calibration and maintenance schedules
  • Comply with regulatory requirements
  • Optimize equipment allocation

Manufacturing Facilities

  • Manage production equipment and tools
  • Monitor asset health for predictive maintenance
  • Track equipment across multiple locations
  • Optimize utilization and reduce downtime

πŸ—Ί Roadmap

Phase 1: Enhanced AI & Scanning

  • Advanced transformer models (TrOCR, LayoutLM)
  • Improved OCR accuracy to 96-98%
  • Multi-language support
  • Batch scanning capabilities

Phase 2: Mobile & Offline

  • Native iOS/Android apps
  • Offline-first architecture
  • AR-based asset tracking
  • Mobile label printing

Phase 3: Enterprise Integration

  • ServiceNow connector
  • Jira Service Management
  • SAP/Oracle ERP integration
  • Active Directory sync

Phase 4: Advanced Analytics

  • Digital twin simulation
  • Predictive maintenance ML models
  • Cost optimization recommendations
  • Sustainability metrics

πŸ›‘οΈ Security

Security Features

  • Authentication: JWT-based stateless authentication
  • Authorization: Role-based access control (RBAC)
  • Password Security: Bcrypt hashing with salt
  • Audit Logging: Immutable cryptographic audit trail
  • Input Validation: Pydantic models prevent injection attacks

Reporting Security Issues

If you discover a security vulnerability, please email: security@intelliasset.dev


πŸ“§ Contact

πŸ™ Acknowledgments

Built with amazing open-source technologies:


⭐ Star this repository if you find it helpful!

About

IT Asset Management System

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors