Skip to main content

enterprise-user-management-ai-system

Full-stack user management system with AI-powered analytics, task tracking, and intelligent ticket routing

Aller à l'installation

Informations de source

Dépôt
reason-machines/data-skills
Dernière activité de la source
2 août 2026 à 15:29
Langue détectée de SKILL.md
anglais
Étoiles
5
Forks
1

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
enterprise-user-management-ai-system
description
Full-stack user management system with AI-powered analytics, task tracking, and intelligent ticket routing
triggers
["set up enterprise user management with AI","implement user management system with task tracking","create admin dashboard with AI analytics","build user management app with ticket system","add AI-based risk detection to user management","integrate ML service for user behavior analysis","configure Kanban board with time tracking","deploy enterprise user management system"]
# Enterprise User Management AI System > Skill by [ara.so](https://ara.so) — Data Skills collection. A full-stack enterprise user management system featuring AI-powered analytics, task management with Kanban boards, support ticket handling, and intelligent insights including risk detection, anomaly detection, and burnout analysis. ## What It Does This system provides: - **User Management**: Role-based access control, authentication with JWT - **Task Management**: Kanban boards (To Do → In Progress → Done) with time tracking - **Support System**: Ticket creation, tracking, and AI-based classification - **AI Analytics**: Risk prediction, anomaly detection, burnout analysis, project delay prediction - **Admin Controls**: User CRUD operations, audit logs, organization analytics - **Real-time Insights**: Performance metrics, workload analysis, suspicious activity alerts ## Installation ### Prerequisites ```bash # Node.js 14+ for backend/frontend # Python 3.8+ for ML service # MongoDB running locally or remote connection ``` ### Clone and Setup ```bash git clone https://github.com/Nareshkumar2583/Enterprise-User-Management-System-with-AI-Analytics.git cd Enterprise-User-Management-System-with-AI-Analytics ``` ### Backend Setup ```bash cd backend npm install # Create .env file cat > .env << EOF PORT=5000 MONGODB_URI=mongodb://localhost:27017/enterprise-user-mgmt JWT_SECRET=${JWT_SECRET} JWT_EXPIRE=7d ML_SERVICE_URL=http://localhost:8000 EOF npm start # Backend runs at http://localhost:5000 ``` ### ML Service Setup ```bash cd ml-service pip install -r requirements.txt # Create .env file for ML service cat > .env << EOF MODEL_PATH=./models LOG_LEVEL=INFO EOF uvicorn main:app --reload --host 0.0.0.0 --port 8000 # ML service runs at http://localhost:8000 ``` ### Frontend Setup ```bash cd frontend npm install # Create .env file cat > .env << EOF REACT_APP_API_URL=http://localhost:5000/api REACT_APP_ML_URL=http://localhost:8000 EOF npm start # Frontend runs at http://localhost:3000 ``` ## Key API Endpoints ### Authentication ```javascript // Register new user POST /api/auth/register { "name": "John Doe", "email": "john@example.com", "password": "securepass123", "role": "user" // or "admin" } // Login POST /api/auth/login { "email": "john@example.com", "password": "securepass123" } // Returns: { token, user: { id, name, email, role } } ``` ### User Management (Admin) ```javascript // Get all users GET /api/users Headers: { Authorization: "Bearer ${JWT_TOKEN}" } // Update user PUT /api/users/:userId { "name": "Updated Name", "role": "admin", "status": "active" } // Delete user DELETE /api/users/:userId ``` ### Task Management ```javascript // Create task POST /api/tasks { "title": "Implement new feature", "description": "Build user profile page", "assignedTo": "userId", "status": "todo", // todo, inprogress, done "priority": "high", "dueDate": "2026-05-01" } // Update task status PATCH /api/tasks/:taskId/status { "status": "inprogress", "timeSpent": 3600 // seconds } // Get user tasks GET /api/tasks/user/:userId ``` ### Support Tickets ```javascript // Create ticket POST /api/tickets { "subject": "Login issue", "description": "Cannot access dashboard", "priority": "high", "category": "technical" } // Get tickets (admin) GET /api/tickets?status=open&priority=high // Update ticket PATCH /api/tickets/:ticketId { "status": "resolved", "resolution": "Password reset sent" } ``` ### AI Analytics Endpoints ```javascript // Risk prediction POST /api/ai/risk-prediction { "userId": "user123", "taskLoad": 15, "overdueCount": 3, "avgCompletionTime": 72 } // Returns: { riskLevel: "high", probability: 0.78, factors: [...] } // Anomaly detection POST /api/ai/anomaly-detection { "userId": "user123", "loginTime": "2026-04-15T03:30:00Z", "location": "unusual-ip", "activityPattern": [...] } // Returns: { isAnomaly: true, score: 0.85, reason: "..." } // Burnout analysis POST /api/ai/burnout-analysis { "userId": "user123", "weeklyHours": 65, "taskCount": 25, "overtimeFrequency": 0.8 } // Returns: { burnoutRisk: "high", recommendation: "..." } // Project delay prediction POST /api/ai/project-prediction { "projectId": "proj123", "tasksCompleted": 40, "tasksRemaining": 60, "averageVelocity": 8, "deadline": "2026-06-01" } // Returns: { delayProbability: 0.65, estimatedCompletion: "2026-06-15" } ``` ## Frontend Integration Examples ### Authentication Hook ```javascript // hooks/useAuth.js import { useState, useEffect } from 'react'; import axios from 'axios'; const API_URL = process.env.REACT_APP_API_URL; export const useAuth = () => { const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { const token = localStorage.getItem('token'); if (token) { axios.defaults.headers.common['Authorization'] = `Bearer ${token}`; fetchUser(); } else { setLoading(false); } }, []); const fetchUser = async () => { try { const res = await axios.get(`${API_URL}/auth/me`); setUser(res.data.user); } catch (error) { localStorage.removeItem('token'); } finally { setLoading(false); } }; const login = async (email, password) => { const res = await axios.post(`${API_URL}/auth/login`, { email, password }); localStorage.setItem('token', res.data.token); axios.defaults.headers.common['Authorization'] = `Bearer ${res.data.token}`; setUser(res.data.user); return res.data; }; const logout = () => { localStorage.removeItem('token'); delete axios.defaults.headers.common['Authorization']; setUser(null); }; return { user, loading, login, logout, isAdmin: user?.role === 'admin' }; }; ``` ### Kanban Board Component ```javascript // components/KanbanBoard.jsx import React, { useState, useEffect } from 'react'; import axios from 'axios'; import './KanbanBoard.css'; const API_URL = process.env.REACT_APP_API_URL; const KanbanBoard = ({ userId }) => { const [tasks, setTasks] = useState({ todo: [], inprogress: [], done: [] }); const [loading, setLoading] = useState(true); useEffect(() => { fetchTasks(); }, [userId]); const fetchTasks = async () => { try { const res = await axios.get(`${API_URL}/tasks/user/${userId}`); const grouped = res.data.reduce((acc, task) => { acc[task.status].push(task); return acc; }, { todo: [], inprogress: [], done: [] }); setTasks(grouped); } catch (error) { console.error('Error fetching tasks:', error); } finally { setLoading(false); } }; const updateTaskStatus = async (taskId, newStatus) => { try { await axios.patch(`${API_URL}/tasks/${taskId}/status`, { status: newStatus }); fetchTasks(); } catch (error) { console.error('Error updating task:', error); } }; const TaskCard = ({ task, status }) => ( <div className="task-card" draggable> <h4>{task.title}</h4> <p>{task.description}</p> <div className="task-meta"> <span className={`priority ${task.priority}`}>{task.priority}</span> <span className="due-date">{new Date(task.dueDate).toLocaleDateString()}</span> </div> <select value={status} onChange={(e) => updateTaskStatus(task._id, e.target.value)} > <option value="todo">To Do</option> <option value="inprogress">In Progress</option> <option value="done">Done</option> </select> </div> ); if (loading) return <div>Loading tasks...</div>; return ( <div className="kanban-board"> {['todo', 'inprogress', 'done'].map(status => ( <div key={status} className="kanban-column"> <h3>{status.replace(/([A-Z])/g, ' $1').toUpperCase()}</h3> <div className="task-list"> {tasks[status].map(task => ( <TaskCard key={task._id} task={task} status={status} /> ))} </div> </div> ))} </div> ); }; export default KanbanBoard; ``` ### AI Risk Dashboard Component ```javascript // components/AIRiskDashboard.jsx import React, { useState, useEffect } from 'react'; import axios from 'axios'; const API_URL = process.env.REACT_APP_API_URL; const AIRiskDashboard = ({ userId }) => { const [riskData, setRiskData] = useState(null); const [burnoutData, setBurnoutData] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { fetchAIAnalytics(); }, [userId]); const fetchAIAnalytics = async () => { try { const [riskRes, burnoutRes] = await Promise.all([ axios.post(`${API_URL}/ai/risk-prediction`, { userId }), axios.post(`${API_URL}/ai/burnout-analysis`, { userId }) ]); setRiskData(riskRes.data); setBurnoutData(burnoutRes.data); } catch (error) { console.error('Error fetching AI analytics:', error); } finally { setLoading(false); } }; if (loading) return <div>Analyzing data...</div>; return ( <div className="ai-dashboard"> <div className="risk-card"> <h3>Risk Level</h3> <div className={`risk-indicator ${riskData.riskLevel}`}>
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub