-
Analyzing your requirements and generating your app…
-
-
Loading…
+
+
+ SIEM Dashboard
+
+
Overall Security Score
+
{{ security_score }}
+
+
+
+
+
+
+
+
Active Alerts
+
+ {% for alert in alerts %}
+
+
+
{{ alert.title }}
+ {{ alert.timestamp }}
+
+
Source: {{ alert.source }}
+
+ {% endfor %}
+
+
+
+
+
+
+
Live Event Stream
+
+
[2025-12-15 10:30:05] user admin failed to login from 192.168.1.10
+
[2025-12-15 10:30:04] user admin failed to login from 192.168.1.10
+
[2025-12-15 10:30:02] user admin failed to login from 192.168.1.10
+
[2025-12-15 10:25:10] GET /api/users?id=1%27%20OR%201=1 -- 200
+
[2025-12-15 10:15:30] process /usr/bin/unusual_proc started by user root
+
+
+
+
+
+
+
+
+
Top Alert Sources
+
+ -
+ suricata.log
+ 2
+
+ -
+ auth.log
+ 1
+
+ -
+ syslog
+ 1
+
+
+
+
+
-
AppWizzy AI is collecting your requirements and applying the first changes.
-
This page will refresh automatically as the plan is implemented.
-
- Runtime: Django {{ django_version }} · Python {{ python_version }}
- — UTC {{ current_time|date:"Y-m-d H:i:s" }}
-
-
-
-
-{% endblock %}
\ No newline at end of file
+
+{% endblock %}
diff --git a/core/urls.py b/core/urls.py
index 6299e3d..8e0d0ae 100644
--- a/core/urls.py
+++ b/core/urls.py
@@ -1,7 +1,7 @@
from django.urls import path
-from .views import home
+from .views import index
urlpatterns = [
- path("", home, name="home"),
+ path("", index, name="index"),
]
diff --git a/core/views.py b/core/views.py
index c9aed12..fc55881 100644
--- a/core/views.py
+++ b/core/views.py
@@ -6,20 +6,42 @@ from django.shortcuts import render
from django.utils import timezone
-def home(request):
- """Render the landing screen with loader and environment details."""
- host_name = request.get_host().lower()
- agent_brand = "AppWizzy" if host_name == "appwizzy.com" else "Flatlogic"
- now = timezone.now()
-
+def index(request):
+ """Render the SIEM dashboard with mock data."""
context = {
- "project_name": "New Style",
- "agent_brand": agent_brand,
- "django_version": django_version(),
- "python_version": platform.python_version(),
- "current_time": now,
- "host_name": host_name,
- "project_description": os.getenv("PROJECT_DESCRIPTION", ""),
+ "project_name": "SIEM Dashboard",
+ "security_score": 78,
+ "alerts": [
+ {
+ "id": 1,
+ "title": "Multiple failed login attempts",
+ "severity": "critical",
+ "timestamp": "2025-12-15 10:30:00",
+ "source": "auth.log"
+ },
+ {
+ "id": 2,
+ "title": "Potential SQL Injection attempt",
+ "severity": "high",
+ "timestamp": "2025-12-15 10:25:00",
+ "source": "suricata.log"
+ },
+ {
+ "id": 3,
+ "title": "Unusual process execution",
+ "severity": "medium",
+ "timestamp": "2025-12-15 10:15:00",
+ "source": "syslog"
+ },
+ {
+ "id": 4,
+ "title": "Access from a known malicious IP",
+ "severity": "high",
+ "timestamp": "2025-12-15 10:10:00",
+ "source": "suricata.log"
+ }
+ ],
+ "project_description": os.getenv("PROJECT_DESCRIPTION", "A SIEM tool for log analysis."),
"project_image_url": os.getenv("PROJECT_IMAGE_URL", ""),
}
return render(request, "core/index.html", context)
diff --git a/static/css/custom.css b/static/css/custom.css
index 925f6ed..f7cbc53 100644
--- a/static/css/custom.css
+++ b/static/css/custom.css
@@ -1,4 +1,61 @@
-/* Custom styles for the application */
-body {
- font-family: system-ui, -apple-system, sans-serif;
+:root {
+ --bs-dark-rgb: 26, 28, 35;
+ --bs-light-rgb: 224, 224, 224;
+ --primary-ui-color: #252831;
+ --accent-color: #00aaff;
+ --critical-alert-color: #ff4d4d;
+ --high-alert-color: #ff9933;
+ --medium-alert-color: #ffff66;
+ --text-secondary-color: #a0a0a0;
}
+
+body {
+ font-family: 'Inter', sans-serif;
+ background-color: #1a1c23;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: 'Roboto Mono', monospace;
+}
+
+.card {
+ background-color: var(--primary-ui-color);
+}
+
+.security-score {
+ width: 150px;
+ height: 150px;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 2.5rem;
+ font-weight: bold;
+ border: 10px solid var(--accent-color);
+}
+
+.alert-card {
+ border-left: 5px solid;
+}
+
+.alert-critical {
+ border-color: var(--critical-alert-color);
+}
+
+.alert-high {
+ border-color: var(--high-alert-color);
+}
+
+.alert-medium {
+ border-color: var(--medium-alert-color);
+}
+
+.text-secondary {
+ color: var(--text-secondary-color) !important;
+}
+
+.log-line {
+ font-family: 'Roboto Mono', monospace;
+ font-size: 0.9rem;
+ white-space: pre-wrap;
+}
\ No newline at end of file