プロジェクト

全般

プロフィール

機能 #103 » dashboard_mockup.html

Redmine Admin, 2025-05-15 03:02

 
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>講師AI分身管理システム - ダッシュボード</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Hiragino Sans', 'ヒラギノ角ゴシック', 'Yu Gothic UI', 'Meiryo', sans-serif;
background-color: #f8f9fb;
color: #2c3e50;
}
.header {
background: linear-gradient(135deg, #4A90B2 0%, #5B9BC4 100%);
color: white;
padding: 1rem 2rem;
display: flex;
justify-content: space-between;
align-items: center;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.logo-section h1 {
font-size: 1.5rem;
font-weight: 600;
}
.user-info {
display: flex;
align-items: center;
gap: 1rem;
}
.container {
display: flex;
min-height: calc(100vh - 70px);
}
.sidebar {
width: 250px;
background: white;
box-shadow: 2px 0 10px rgba(0,0,0,0.05);
padding: 1.5rem 0;
}
.nav-item {
display: flex;
align-items: center;
padding: 1rem 1.5rem;
color: #5a6c7d;
text-decoration: none;
transition: all 0.3s ease;
border-left: 3px solid transparent;
}
.nav-item:hover {
background-color: #f1f3f4;
color: #4A90B2;
border-left-color: #4A90B2;
}
.nav-item.active {
background-color: #e3f2fd;
color: #4A90B2;
border-left-color: #4A90B2;
font-weight: 600;
}
.nav-icon {
margin-right: 0.75rem;
font-size: 1.2rem;
}
.main-content {
flex: 1;
padding: 2rem;
overflow-y: auto;
}
.page-title {
font-size: 2rem;
margin-bottom: 2rem;
color: #2c3e50;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin-bottom: 2rem;
}
.stat-card {
background: white;
padding: 1.5rem;
border-radius: 12px;
box-shadow: 0 2px 15px rgba(0,0,0,0.08);
border-left: 4px solid #4A90B2;
transition: transform 0.2s ease;
}
.stat-card:hover {
transform: translateY(-2px);
box-shadow: 0 5px 25px rgba(0,0,0,0.12);
}
.stat-label {
color: #7f8c8d;
font-size: 0.9rem;
margin-bottom: 0.5rem;
}
.stat-value {
font-size: 2rem;
font-weight: 700;
color: #2c3e50;
}
.stat-change {
font-size: 0.85rem;
margin-top: 0.5rem;
display: flex;
align-items: center;
}
.stat-change.positive {
color: #27AE60;
}
.stat-change.negative {
color: #E74C3C;
}
.content-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
margin-bottom: 2rem;
}
.card {
background: white;
border-radius: 12px;
box-shadow: 0 2px 15px rgba(0,0,0,0.08);
overflow: hidden;
}
.card-header {
padding: 1.5rem;
border-bottom: 1px solid #eee;
display: flex;
justify-content: between;
align-items: center;
}
.card-title {
font-size: 1.2rem;
font-weight: 600;
color: #2c3e50;
}
.card-content {
padding: 1.5rem;
}
.recent-activity {
list-style: none;
}
.activity-item {
display: flex;
align-items: center;
padding: 0.75rem 0;
border-bottom: 1px solid #f1f1f1;
}
.activity-item:last-child {
border-bottom: none;
}
.activity-icon {
width: 40px;
height: 40px;
border-radius: 50%;
background: #e3f2fd;
display: flex;
align-items: center;
justify-content: center;
margin-right: 1rem;
color: #4A90B2;
}
.activity-details {
flex: 1;
}
.activity-text {
font-size: 0.9rem;
color: #5a6c7d;
margin-bottom: 0.25rem;
}
.activity-time {
font-size: 0.8rem;
color: #95a5a6;
}
.quick-actions {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 1rem;
}
.action-btn {
background: #4A90B2;
color: white;
padding: 1rem;
border: none;
border-radius: 8px;
font-size: 0.9rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
text-align: center;
text-decoration: none;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
}
.action-btn:hover {
background: #3d7ba0;
transform: translateY(-1px);
}
.status-indicator {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
margin-right: 0.5rem;
}
.status-indicator.online {
background: #27AE60;
}
.status-indicator.warning {
background: #F39C12;
}
.status-indicator.error {
background: #E74C3C;
}
@media (max-width: 768px) {
.container {
flex-direction: column;
}
.sidebar {
width: 100%;
order: 2;
}
.content-grid {
grid-template-columns: 1fr;
}
.stats-grid {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<header class="header">
<div class="logo-section">
<h1>🎨 講師AI分身管理システム</h1>
</div>
<div class="user-info">
<span>山田 美和子先生</span>
<span class="status-indicator online"></span>
<span>オンライン</span>
</div>
</header>

<div class="container">
<aside class="sidebar">
<nav>
<a href="#" class="nav-item active">
<span class="nav-icon">📊</span>
ダッシュボード
</a>
<a href="#" class="nav-item">
<span class="nav-icon">💬</span>
リアルタイム会話
</a>
<a href="#" class="nav-item">
<span class="nav-icon">📈</span>
分析・レポート
</a>
<a href="#" class="nav-item">
<span class="nav-icon">⚙️</span>
AI設定
</a>
<a href="#" class="nav-item">
<span class="nav-icon">📚</span>
知識ベース管理
</a>
<a href="#" class="nav-item">
<span class="nav-icon">👥</span>
受講者管理
</a>
<a href="#" class="nav-item">
<span class="nav-icon"></span>
FAQ管理
</a>
<a href="#" class="nav-item">
<span class="nav-icon">🔔</span>
通知・アラート
</a>
<a href="#" class="nav-item">
<span class="nav-icon">🔧</span>
システム設定
</a>
</nav>
</aside>

<main class="main-content">
<h1 class="page-title">ダッシュボード</h1>
<div class="stats-grid">
<div class="stat-card">
<div class="stat-label">本日の質問数</div>
<div class="stat-value">127</div>
<div class="stat-change positive">
↗ +15% (昨日比)
</div>
</div>
<div class="stat-card">
<div class="stat-label">アクティブユーザー</div>
<div class="stat-value">15</div>
<div class="stat-change positive">
↗ +3人 (現在)
</div>
</div>
<div class="stat-card">
<div class="stat-label">回答満足度</div>
<div class="stat-value">4.8/5.0</div>
<div class="stat-change positive">
↗ +0.2pt (先週比)
</div>
</div>
<div class="stat-card">
<div class="stat-label">平均回答時間</div>
<div class="stat-value">1.2秒</div>
<div class="stat-change negative">
↗ +0.1秒 (昨日比)
</div>
</div>
</div>

<div class="content-grid">
<div class="card">
<div class="card-header">
<h2 class="card-title">最近のアクティビティ</h2>
</div>
<div class="card-content">
<ul class="recent-activity">
<li class="activity-item">
<div class="activity-icon">💬</div>
<div class="activity-details">
<div class="activity-text">田中さんが照明配置について質問</div>
<div class="activity-time">3分前</div>
</div>
</li>
<li class="activity-item">
<div class="activity-icon"></div>
<div class="activity-details">
<div class="activity-text">AI回答の品質が向上しました</div>
<div class="activity-time">15分前</div>
</div>
</li>
<li class="activity-item">
<div class="activity-icon">📚</div>
<div class="activity-details">
<div class="activity-text">新しいQ&Aが追加されました</div>
<div class="activity-time">1時間前</div>
</div>
</li>
<li class="activity-item">
<div class="activity-icon">👥</div>
<div class="activity-details">
<div class="activity-text">新規受講者が3名登録</div>
<div class="activity-time">2時間前</div>
</div>
</li>
</ul>
</div>
</div>

<div class="card">
<div class="card-header">
<h2 class="card-title">クイックアクション</h2>
</div>
<div class="card-content">
<div class="quick-actions">
<a href="#" class="action-btn">
<span>💬</span>
会話を監視
</a>
<a href="#" class="action-btn">
<span>📝</span>
Q&A追加
</a>
<a href="#" class="action-btn">
<span>⚙️</span>
AI調整
</a>
<a href="#" class="action-btn">
<span>📊</span>
レポート確認
</a>
</div>
</div>
</div>
</div>

<div class="card">
<div class="card-header">
<h2 class="card-title">今日の質問カテゴリー</h2>
</div>
<div class="card-content">
<div style="height: 200px; background: #f8f9fb; border-radius: 8px; display: flex; align-items: center; justify-content: center;">
<div style="text-align: center; color: #7f8c8d;">
<div>📈</div>
<div>グラフ表示エリア</div>
<div style="font-size: 0.9rem; margin-top: 0.5rem;">
インテリア配色: 35% | 家具選び: 28% | レイアウト: 22% | 照明: 15%
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</body>
</html>
(3-3/6)