Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 AI Enterprise Device Management Assistant

An intelligent AI-powered assistant for Microsoft Intune administration using natural language processing and enterprise REST APIs.

React TypeScript Node.js Gemini License: MIT


📋 Overview

The AI Enterprise Device Management Assistant bridges the gap between IT administrators and complex device management tasks by enabling natural language interactions with Microsoft Intune. Administrators can query device states, apply policies, and trigger remediation workflows simply by describing what they want in plain English — powered by Google Gemini's large language model.


✨ Features

  • 🗣️ Natural Language Interface — Ask questions like "Show me all non-compliant Windows 11 devices" or "Push the VPN profile to the Marketing team"
  • 🔗 Microsoft Intune REST API Integration — Direct, authenticated access to device, policy, and compliance endpoints
  • 🔐 Secure Authentication — Azure AD OAuth 2.0 / MSAL token management with automatic refresh
  • 🤖 Modular LLM Workflows — Structured, reusable Gemini prompt chains with intent recognition and action routing
  • 📊 Device Compliance Dashboard — Real-time visualization of device health, policy status, and alerts
  • Action Execution Engine — Approve, reject, or schedule Intune actions with confirmation flows
  • 📝 Audit Logging — Full history of AI-suggested and admin-executed actions
  • 🔄 Reusable Service Architecture — Decoupled API, AI, and UI layers for maintainability and extensibility

🏗️ Architecture

┌─────────────────────────────────────────────────────────────┐
│                     React Frontend (UI)                     │
│   - Chat Interface   - Dashboard   - Device Explorer        │
└────────────────────────┬────────────────────────────────────┘
                         │ REST
┌────────────────────────▼────────────────────────────────────┐
│                   Node.js Backend (API)                     │
│   - Auth Middleware  - Intent Router  - Action Executor     │
└──────────┬─────────────────────────────┬────────────────────┘
           │ Gemini API                  │ MS Graph / Intune API
┌──────────▼──────────┐      ┌───────────▼────────────────────┐
│   Google Gemini LLM │      │  Microsoft Intune REST APIs    │
│  (Intent + Actions) │      │  (Devices, Policies, Compliance)│
└─────────────────────┘      └────────────────────────────────┘

🛠️ Tech Stack

Layer Technology
Frontend React 18, TypeScript, Tailwind CSS
Backend Node.js, Express.js
AI Engine Google Gemini API
Auth Azure AD, MSAL.js
Device Management Microsoft Intune REST API (MS Graph)
State Management Redux Toolkit
Testing Jest, React Testing Library

🚀 Getting Started

Prerequisites

  • Node.js >= 20.x
  • npm >= 9.x
  • Azure AD App Registration with Intune permissions
  • Google Gemini API key

Installation

# Clone the repository
git clone https://github.com/<your-username>/ai-enterprise-device-management.git
cd ai-enterprise-device-management

# Install frontend dependencies
npm install

# Install backend dependencies
cd server && npm install

Environment Configuration

Create a .env file in the root directory:

# Google Gemini
REACT_APP_GEMINI_API_KEY=your_gemini_api_key

# Azure AD / MSAL
REACT_APP_AZURE_CLIENT_ID=your_azure_client_id
REACT_APP_AZURE_TENANT_ID=your_azure_tenant_id
REACT_APP_AZURE_REDIRECT_URI=http://localhost:3000

# Backend
REACT_APP_API_BASE_URL=http://localhost:5000/api

Create server/.env:

PORT=5000
AZURE_CLIENT_SECRET=your_azure_client_secret
GEMINI_API_KEY=your_gemini_api_key

Running Locally

# Start the frontend
npm start

# Start the backend (in a new terminal)
cd server && npm run dev

The app will be available at http://localhost:3000.


📁 Project Structure

ai-enterprise-device-management/
├── public/
├── src/
│   ├── components/
│   │   ├── Chat/           # Natural language chat interface
│   │   ├── Dashboard/      # Device compliance dashboard
│   │   ├── DeviceExplorer/ # Browse and manage devices
│   │   └── common/         # Shared UI components
│   ├── services/
│   │   ├── geminiService.ts    # Gemini LLM integration
│   │   ├── intuneService.ts    # Intune REST API calls
│   │   └── authService.ts      # Azure AD authentication
│   ├── store/              # Redux store and slices
│   ├── hooks/              # Custom React hooks
│   ├── types/              # TypeScript type definitions
│   └── utils/              # Helper utilities
├── server/
│   ├── routes/             # Express API routes
│   ├── middleware/         # Auth, logging middleware
│   ├── services/           # Backend services
│   └── index.js            # Server entry point
└── README.md

🔐 Security

  • All API keys are stored as environment variables — never committed to source control
  • Backend acts as a secure proxy — Intune API tokens are never exposed to the frontend
  • Azure AD OAuth 2.0 with PKCE for user authentication
  • Role-based access control aligned with Intune administrator roles

🧪 Testing

# Run unit tests
npm test

# Run tests with coverage
npm test -- --coverage

📄 License

This project is licensed under the MIT License.


👤 Author

MugunthGitHub


⭐ If you find this project helpful, please give it a star!

About

AI assistant for Microsoft Intune administration using natural language and enterprise REST APIs. Built with React, TypeScript, Node.js, and Google Gemini.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages