223 lines
11 KiB
HTML
223 lines
11 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de" class="dark">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Futuristisches Projektmanagement Dashboard</title>
|
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
<script>
|
|
tailwind.config = {
|
|
darkMode: 'class',
|
|
theme: {
|
|
extend: {
|
|
colors: {
|
|
primary: '#3B82F6',
|
|
secondary: '#1E40AF',
|
|
dark: '#111827',
|
|
},
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
<style>
|
|
.glassmorphism {
|
|
background: rgba(30, 64, 175, 0.1);
|
|
backdrop-filter: blur(10px);
|
|
border-radius: 10px;
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="bg-gray-900 text-white">
|
|
<div class="flex h-screen overflow-hidden">
|
|
<!-- Sidebar -->
|
|
<aside class="w-64 glassmorphism hidden md:block">
|
|
<div class="p-6">
|
|
<h1 class="text-2xl font-bold text-primary">ProjektMaster</h1>
|
|
<nav class="mt-6">
|
|
<a href="#" class="block py-2 px-4 text-gray-300 hover:bg-primary hover:text-white rounded transition-colors">Dashboard</a>
|
|
<a href="#" class="block py-2 px-4 text-gray-300 hover:bg-primary hover:text-white rounded transition-colors">Projekte</a>
|
|
<a href="#" class="block py-2 px-4 text-gray-300 hover:bg-primary hover:text-white rounded transition-colors">Aufgaben</a>
|
|
<a href="#" class="block py-2 px-4 text-gray-300 hover:bg-primary hover:text-white rounded transition-colors">Team</a>
|
|
<a href="#" class="block py-2 px-4 text-gray-300 hover:bg-primary hover:text-white rounded transition-colors">Berichte</a>
|
|
<a href="#" class="block py-2 px-4 text-gray-300 hover:bg-primary hover:text-white rounded transition-colors">Einstellungen</a>
|
|
</nav>
|
|
</div>
|
|
</aside>
|
|
|
|
<!-- Main Content -->
|
|
<main class="flex-1 overflow-y-auto">
|
|
<header class="bg-dark p-4 flex justify-between items-center glassmorphism">
|
|
<h2 class="text-2xl font-semibold">Dashboard</h2>
|
|
<div class="flex items-center space-x-4">
|
|
<button class="bg-primary text-white px-4 py-2 rounded hover:bg-secondary transition-colors">Neues Projekt</button>
|
|
<img src="https://via.placeholder.com/40" alt="User Avatar" class="w-10 h-10 rounded-full">
|
|
</div>
|
|
</header>
|
|
|
|
<div class="p-6 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
<!-- Project Overview -->
|
|
<div class="glassmorphism p-6">
|
|
<h3 class="text-xl font-semibold mb-4">Projektübersicht</h3>
|
|
<div class="space-y-2">
|
|
<div class="flex justify-between">
|
|
<span>Aktive Projekte</span>
|
|
<span class="text-primary">{{ active_projects }}</span>
|
|
</div>
|
|
<div class="flex justify-between">
|
|
<span>Abgeschlossene Projekte</span>
|
|
<span class="text-green-500">{{ completed_projects }}</span>
|
|
</div>
|
|
<div class="flex justify-between">
|
|
<span>Überfällige Aufgaben</span>
|
|
<span class="text-red-500">{{ overdue_tasks }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Task Progress -->
|
|
<div class="glassmorphism p-6">
|
|
<h3 class="text-xl font-semibold mb-4">Aufgabenfortschritt</h3>
|
|
<div class="relative pt-1">
|
|
<div class="flex mb-2 items-center justify-between">
|
|
<div>
|
|
<span class="text-xs font-semibold inline-block py-1 px-2 uppercase rounded-full text-primary bg-primary bg-opacity-20">
|
|
Fortschritt
|
|
</span>
|
|
</div>
|
|
<div class="text-right">
|
|
<span class="text-xs font-semibold inline-block text-primary">
|
|
{{ task_progress }}%
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="overflow-hidden h-2 mb-4 text-xs flex rounded bg-primary bg-opacity-20">
|
|
<div style="width:{{ task_progress }}%" class="shadow-none flex flex-col text-center whitespace-nowrap text-white justify-center bg-primary"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Team Performance -->
|
|
<div class="glassmorphism p-6">
|
|
<h3 class="text-xl font-semibold mb-4">Team-Leistung</h3>
|
|
<div class="space-y-4">
|
|
{% for member in team_performance %}
|
|
<div class="flex items-center">
|
|
<img src="{{ member.avatar }}" alt="{{ member.name }}" class="w-10 h-10 rounded-full mr-4">
|
|
<div class="flex-1">
|
|
<div class="flex justify-between items-center mb-1">
|
|
<span class="font-medium">{{ member.name }}</span>
|
|
<span class="text-sm text-primary">{{ member.tasks_completed }} Aufgaben</span>
|
|
</div>
|
|
<div class="w-full bg-gray-700 rounded-full h-2.5">
|
|
<div class="bg-primary h-2.5 rounded-full" style="width: {{ member.performance }}%"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Project Timeline -->
|
|
<div class="glassmorphism p-6 col-span-full">
|
|
<h3 class="text-xl font-semibold mb-4">Projekt-Zeitlinie</h3>
|
|
<div class="relative">
|
|
<!-- This is a placeholder for a JavaScript-powered Gantt chart -->
|
|
<div class="bg-gray-800 h-64 rounded-lg flex items-center justify-center">
|
|
<span class="text-gray-500">Hier wird ein interaktives Gantt-Diagramm angezeigt</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Recent Activities -->
|
|
<div class="glassmorphism p-6">
|
|
<h3 class="text-xl font-semibold mb-4">Letzte Aktivitäten</h3>
|
|
<ul class="space-y-4">
|
|
{% for activity in recent_activities %}
|
|
<li class="flex items-center">
|
|
<span class="w-2 h-2 bg-primary rounded-full mr-3"></span>
|
|
<span>{{ activity.user }} {{ activity.action }} {{ activity.item }}</span>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- Resource Allocation -->
|
|
<div class="glassmorphism p-6">
|
|
<h3 class="text-xl font-semibold mb-4">Ressourcenzuweisung</h3>
|
|
<div class="space-y-4">
|
|
{% for resource in resources %}
|
|
<div>
|
|
<div class="flex justify-between items-center mb-1">
|
|
<span>{{ resource.name }}</span>
|
|
<span class="text-sm text-primary">{{ resource.allocation }}%</span>
|
|
</div>
|
|
<div class="w-full bg-gray-700 rounded-full h-2.5">
|
|
<div class="bg-primary h-2.5 rounded-full" style="width: {{ resource.allocation }}%"></div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Risk Assessment -->
|
|
<div class="glassmorphism p-6">
|
|
<h3 class="text-xl font-semibold mb-4">Risikobewertung</h3>
|
|
<div class="grid grid-cols-2 gap-4">
|
|
{% for risk in risks %}
|
|
<div class="text-center">
|
|
<div class="inline-flex items-center justify-center w-16 h-16 rounded-full {{ risk.color }} mb-2">
|
|
{{ risk.level }}
|
|
</div>
|
|
<p class="text-sm">{{ risk.name }}</p>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
<!-- Placeholder for JavaScript libraries -->
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
<script>
|
|
// Hier würden die JavaScript-Funktionen für Interaktivität und Datenvisualisierung implementiert werden
|
|
// Beispiel für ein einfaches Chart:
|
|
const ctx = document.getElementById('myChart').getContext('2d');
|
|
new Chart(ctx, {
|
|
type: 'bar',
|
|
data: {
|
|
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
|
|
datasets: [{
|
|
label: '# of Votes',
|
|
data: [12, 19, 3, 5, 2, 3],
|
|
backgroundColor: [
|
|
'rgba(255, 99, 132, 0.2)',
|
|
'rgba(54, 162, 235, 0.2)',
|
|
'rgba(255, 206, 86, 0.2)',
|
|
'rgba(75, 192, 192, 0.2)',
|
|
'rgba(153, 102, 255, 0.2)',
|
|
'rgba(255, 159, 64, 0.2)'
|
|
],
|
|
borderColor: [
|
|
'rgba(255, 99, 132, 1)',
|
|
'rgba(54, 162, 235, 1)',
|
|
'rgba(255, 206, 86, 1)',
|
|
'rgba(75, 192, 192, 1)',
|
|
'rgba(153, 102, 255, 1)',
|
|
'rgba(255, 159, 64, 1)'
|
|
],
|
|
borderWidth: 1
|
|
}]
|
|
},
|
|
options: {
|
|
scales: {
|
|
y: {
|
|
beginAtZero: true
|
|
}
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |