Skip to main content

enterprise-user-management-system-ai

Full-stack user management system with AI-powered analytics for task tracking, ticket management, and predictive insights

Aller à l'installation

Informations de source

Dépôt
reason-machines/data-skills
Dernière activité de la source
2 août 2026 à 18:28
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-system-ai
description
Full-stack user management system with AI-powered analytics for task tracking, ticket management, and predictive insights
triggers
["set up enterprise user management with AI analytics","create user management dashboard with AI features","implement task tracking with burnout detection","build support ticket system with AI classification","add AI-powered risk detection to user system","configure user management with kanban board","integrate ML analytics for project insights","deploy user management system with FastAPI ML"]
# Enterprise User Management System with AI Analytics > Skill by [ara.so](https://ara.so) — Data Skills collection. A full-stack enterprise user management platform combining React frontend, Node.js backend, and FastAPI ML service. Provides role-based access control, task management with Kanban boards, support ticket system, and AI-powered analytics including risk detection, anomaly detection, burnout analysis, and predictive project insights. ## What It Does - **User Management**: JWT-authenticated system with role-based access (Admin/User) - **Task Tracking**: Kanban board (To Do → In Progress → Done) with time tracking - **Support Tickets**: AI-classified ticket routing and management - **AI Analytics**: Risk prediction, anomaly detection, burnout analysis, project delay prediction - **Real-time Insights**: Dashboard with performance metrics and alerts ## Installation ### Prerequisites ```bash # Required node >= 14.x python >= 3.8 mongodb >= 4.x ``` ### 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 `backend/.env`: ```env PORT=5000 MONGODB_URI=mongodb://localhost:27017/enterprise-user-mgmt JWT_SECRET=your_jwt_secret_key ML_SERVICE_URL=http://localhost:8000 NODE_ENV=development ``` Start backend: ```bash npm start # Runs at http://localhost:5000 ``` ### ML Service Setup ```bash cd ml-service pip install -r requirements.txt ``` Create `ml-service/.env`: ```env MODEL_PATH=./models LOG_LEVEL=INFO BACKEND_URL=http://localhost:5000 ``` Start ML service: ```bash uvicorn main:app --reload --port 8000 # Runs at http://localhost:8000 ``` ### Frontend Setup ```bash cd frontend npm install ``` Create `frontend/.env`: ```env REACT_APP_API_URL=http://localhost:5000 REACT_APP_ML_API_URL=http://localhost:8000 ``` Start frontend: ```bash npm start # Runs at http://localhost:3000 ``` ## Key API Endpoints ### Authentication (Backend) ```javascript // POST /api/auth/register { "name": "John Doe", "email": "john@company.com", "password": "securepass123", "role": "user" // or "admin" } // POST /api/auth/login { "email": "john@company.com", "password": "securepass123" } // Returns: { token: "jwt_token", user: {...} } ``` ### User Management (Backend) ```javascript // GET /api/users - List all users (Admin only) // GET /api/users/:id - Get user by ID // PUT /api/users/:id - Update user // DELETE /api/users/:id - Delete user (Admin only) ``` ### Task Management (Backend) ```javascript // GET /api/tasks - Get user's tasks // POST /api/tasks - Create task { "title": "Implement login feature", "description": "Add JWT authentication", "assignedTo": "user_id", "status": "todo", // todo, in_progress, done "priority": "high", "dueDate": "2026-05-01" } // PATCH /api/tasks/:id - Update task status { "status": "in_progress", "timeSpent": 120 // minutes } ``` ### Support Tickets (Backend) ```javascript // POST /api/tickets - Create ticket { "title": "Unable to access dashboard", "description": "Getting 403 error", "priority": "high", "category": "technical" } // GET /api/tickets - Get tickets // PATCH /api/tickets/:id - Update ticket { "status": "in_progress", "assignedTo": "admin_id" } ``` ### AI Analytics (ML Service) ```python # POST /api/ml/classify-ticket { "title": "Password reset not working", "description": "Clicked forgot password but no email received" } # Returns: { "category": "technical", "priority": "medium", "confidence": 0.89 } # POST /api/ml/detect-risk { "userId": "user_id", "failedLogins": 5, "unusualActivity": true, "accessPatterns": ["night", "weekend"] } # Returns: { "riskScore": 0.76, "riskLevel": "high", "factors": [...] } # POST /api/ml/detect-burnout { "userId": "user_id", "tasksCompleted": 45, "hoursWorked": 65, "overtimeHours": 15, "missedDeadlines": 3 } # Returns: { "burnoutScore": 0.82, "recommendation": "reduce_workload" } # POST /api/ml/predict-delay { "projectId": "proj_123", "tasksRemaining": 12, "averageCompletionTime": 4.5, "teamSize": 5, "complexityScore": 7 } # Returns: { "delayProbability": 0.65, "estimatedDelay": 5 } ``` ## Frontend Integration Examples ### Authentication Flow ```javascript // src/services/authService.js import axios from 'axios'; const API_URL = process.env.REACT_APP_API_URL; export const login = async (email, password) => { const response = await axios.post(`${API_URL}/api/auth/login`, { email, password }); if (response.data.token) { localStorage.setItem('token', response.data.token); localStorage.setItem('user', JSON.stringify(response.data.user)); } return response.data; }; export const logout = () => { localStorage.removeItem('token'); localStorage.removeItem('user'); }; export const getAuthHeader = () => { const token = localStorage.getItem('token'); return token ? { Authorization: `Bearer ${token}` } : {}; }; ``` ### Task Management Component ```javascript // src/components/KanbanBoard.jsx import React, { useState, useEffect } from 'react'; import axios from 'axios'; import { getAuthHeader } from '../services/authService'; const KanbanBoard = () => { const [tasks, setTasks] = useState({ todo: [], in_progress: [], done: [] }); const API_URL = process.env.REACT_APP_API_URL; useEffect(() => { fetchTasks(); }, []); const fetchTasks = async () => { try { const response = await axios.get(`${API_URL}/api/tasks`, { headers: getAuthHeader() }); const grouped = response.data.reduce((acc, task) => { acc[task.status] = acc[task.status] || []; acc[task.status].push(task); return acc; }, {}); setTasks(grouped); } catch (error) { console.error('Failed to fetch tasks:', error); } }; const updateTaskStatus = async (taskId, newStatus) => { try { await axios.patch( `${API_URL}/api/tasks/${taskId}`, { status: newStatus }, { headers: getAuthHeader() } ); fetchTasks(); // Refresh } catch (error) { console.error('Failed to update task:', error); } }; return ( <div className="kanban-board"> {['todo', 'in_progress', 'done'].map(status => ( <div key={status} className="kanban-column"> <h3>{status.replace('_', ' ').toUpperCase()}</h3> {tasks[status]?.map(task => ( <div key={task._id} className="task-card"> <h4>{task.title}</h4> <p>{task.description}</p> <select value={task.status} onChange={(e) => updateTaskStatus(task._id, e.target.value)} > <option value="todo">To Do</option> <option value="in_progress">In Progress</option> <option value="done">Done</option> </select> </div> ))} </div> ))} </div> ); }; export default KanbanBoard; ``` ### AI-Powered Ticket Classification ```javascript // src/components/CreateTicket.jsx import React, { useState } from 'react'; import axios from 'axios'; import { getAuthHeader } from '../services/authService'; const CreateTicket = () => { const [formData, setFormData] = useState({ title: '', description: '' }); const [aiSuggestion, setAiSuggestion] = useState(null); const API_URL = process.env.REACT_APP_API_URL; const ML_API_URL = process.env.REACT_APP_ML_API_URL; const classifyWithAI = async () => { try { const response = await axios.post( `${ML_API_URL}/api/ml/classify-ticket`, { title: formData.title, description: formData.description } ); setAiSuggestion(response.data); } catch (error) { console.error('AI classification failed:', error); } }; const submitTicket = async (e) => { e.preventDefault(); try { await axios.post( `${API_URL}/api/tickets`, { ...formData, category: aiSuggestion?.category || 'general', priority: aiSuggestion?.priority || 'medium' }, { headers: getAuthHeader() } ); alert('Ticket created successfully!'); setFormData({ title: '', description: '' }); setAiSuggestion(null); } catch (error) { console.error('Failed to create ticket:', error); } }; return ( <div className="create-ticket"> <form onSubmit={submitTicket}> <input type="text" placeholder="Ticket Title" value={formData.title} onChange={(e) => setFormData({...formData, title: e.target.value})} /> <textarea placeholder="Description" value={formData.description} onChange={(e) => setFormData({...formData, description: e.target.value})} /> <button type="button" onClick={classifyWithAI}> Get AI Classification </button> {aiSuggestion && ( <div className="ai-suggestion"> <p>Category: {aiSuggestion.category}</p> <p>Priority: {aiSuggestion.priority}</p> <p>Confidence: {(aiSuggestion.confidence * 100).toFixed(1)}%</p> </div> )}
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub