File size: 1,503 Bytes
ef4248d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

import tkinter as tk
from tkinter import ttk
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

class Dashboard:
    def __init__(self, root):
        self.root = root
        self.root.title("Cybersecurity Framework Dashboard")
        self.root.geometry("800x600")

        self.metrics = {"Threats Detected": 3, "Active Exploits": 7, "Resolved Alerts": 15}

        self.create_widgets()

    def create_widgets(self):
        ttk.Label(self.root, text="Cybersecurity Dashboard", font=("Arial", 18)).pack(pady=10)

        self.chart_frame = ttk.LabelFrame(self.root, text="System Metrics")
        self.chart_frame.pack(fill="both", expand=True, padx=10, pady=10)

        self.update_chart()

        ttk.Button(self.root, text="Refresh", command=self.refresh_metrics).pack(pady=5)

    def update_chart(self):
        fig = Figure(figsize=(6, 4), dpi=100)
        ax = fig.add_subplot(111)
        ax.bar(self.metrics.keys(), self.metrics.values(), color="skyblue")
        ax.set_title("System Metrics")

        canvas = FigureCanvasTkAgg(fig, master=self.chart_frame)
        canvas.draw()
        canvas.get_tk_widget().pack(fill="both", expand=True)

    def refresh_metrics(self):
        self.metrics["Threats Detected"] += 1
        self.metrics["Active Exploits"] -= 1
        self.metrics["Resolved Alerts"] += 2
        self.update_chart()


if __name__ == "__main__":
    root = tk.Tk()
    app = Dashboard(root)
    root.mainloop()