776deaec97
- Added a quick admin link section in the admin dashboard for managing team cards. - Updated the admin licenses template to correct German language spelling. - Improved the appointments template with conditional rendering for test package options. - Enhanced the base template with a logo image and adjusted brand styling. - Updated the license management template for consistent German language usage. - Removed the tutorial template and replaced it with a new admin team management template. - Introduced a new admin team management page allowing for the addition, editing, and deletion of team members.
443 lines
11 KiB
HTML
443 lines
11 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Digitale Schulverwaltung mit Sicherheitsfokus{% endblock %}
|
|
|
|
{% block head %}
|
|
{{ super() }}
|
|
<style>
|
|
.hero {
|
|
margin-top: 1rem;
|
|
padding: 3.2rem;
|
|
border-radius: 22px;
|
|
background: linear-gradient(130deg, #f8f5ee 0%, #ece7d9 60%, #e0eadf 100%);
|
|
border: 1px solid #cfd6cd;
|
|
display: grid;
|
|
grid-template-columns: 1.15fr 0.85fr;
|
|
gap: 1.6rem;
|
|
position: relative;
|
|
overflow: hidden;
|
|
box-shadow: 0 24px 46px rgba(28, 45, 41, 0.08);
|
|
}
|
|
|
|
.hero::after {
|
|
content: "";
|
|
position: absolute;
|
|
right: -60px;
|
|
bottom: -70px;
|
|
width: 220px;
|
|
height: 220px;
|
|
border-radius: 999px;
|
|
background: radial-gradient(circle at center, #b3672e 0%, #b3672e 44%, transparent 72%);
|
|
opacity: 0.12;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.eyebrow {
|
|
display: inline-block;
|
|
margin-bottom: 0.9rem;
|
|
padding: 0.34rem 0.72rem;
|
|
border-radius: 999px;
|
|
font-size: clamp(0.76rem, 0.9vw, 0.88rem);
|
|
font-weight: 700;
|
|
letter-spacing: 0.05em;
|
|
text-transform: uppercase;
|
|
color: #1f5158;
|
|
background: #dbe8e5;
|
|
}
|
|
|
|
.hero h1 {
|
|
font-size: clamp(2rem, 4.8vw, 3.6rem);
|
|
color: #21363b;
|
|
text-wrap: balance;
|
|
}
|
|
|
|
.hero p {
|
|
max-width: 60ch;
|
|
margin-top: 1rem;
|
|
font-size: clamp(1.03rem, 1.3vw, 1.18rem);
|
|
color: #4f666c;
|
|
}
|
|
|
|
.cta-row {
|
|
margin-top: 1.8rem;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.72rem;
|
|
}
|
|
|
|
.btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 999px;
|
|
border: 1px solid transparent;
|
|
padding: 0.7rem 1.2rem;
|
|
font-weight: 700;
|
|
font-size: 0.97rem;
|
|
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
|
}
|
|
|
|
.btn:hover {
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.btn-primary {
|
|
color: #ffffff;
|
|
background: linear-gradient(120deg, #296f78 0%, #1a5057 100%);
|
|
box-shadow: 0 8px 18px rgba(25, 71, 77, 0.24);
|
|
}
|
|
|
|
.btn-secondary {
|
|
color: #24525a;
|
|
background: #ffffff;
|
|
border-color: #bcc9c0;
|
|
}
|
|
|
|
.hero-card {
|
|
align-self: end;
|
|
background: #1f4e55;
|
|
color: #e4f2f1;
|
|
border-radius: 16px;
|
|
padding: 1.2rem;
|
|
border: 1px solid #3a6970;
|
|
}
|
|
|
|
|
|
.hero-card h3 {
|
|
font-size: clamp(1rem, 1.8vw, 1.35rem);
|
|
margin-bottom: 0.55rem;
|
|
}
|
|
|
|
.hero-card p {
|
|
color: #c7dfde;
|
|
font-size: clamp(0.92rem, 1.05vw, 1.03rem);
|
|
margin: 0;
|
|
}
|
|
|
|
.stats {
|
|
margin-top: 0.95rem;
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.stats div {
|
|
padding: 0.55rem 0.62rem;
|
|
border-radius: 10px;
|
|
background: #285e66;
|
|
border: 1px solid #4a7c82;
|
|
}
|
|
|
|
.stats strong {
|
|
display: block;
|
|
color: #ffffff;
|
|
font-size: 1.06rem;
|
|
}
|
|
|
|
.stats span {
|
|
color: #d1e8e6;
|
|
font-size: 0.82rem;
|
|
}
|
|
|
|
.section {
|
|
margin-top: 2rem;
|
|
padding: 1.9rem;
|
|
border-radius: 18px;
|
|
border: 1px solid #d0d7cf;
|
|
background: #ffffff;
|
|
box-shadow: 0 14px 30px rgba(28, 45, 41, 0.05);
|
|
animation: rise 680ms ease both;
|
|
}
|
|
|
|
.section h2 {
|
|
font-size: clamp(1.45rem, 3vw, 2.3rem);
|
|
margin-bottom: 0.4rem;
|
|
color: #21393e;
|
|
}
|
|
|
|
.section-grid {
|
|
margin-top: 1rem;
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 0.8rem;
|
|
}
|
|
|
|
.card {
|
|
padding: 1rem;
|
|
border-radius: 14px;
|
|
border: 1px solid #dae1d8;
|
|
background: linear-gradient(165deg, #fcfcf8 0%, #f4f6ef 100%);
|
|
}
|
|
|
|
.card h3 {
|
|
font-size: clamp(1.04rem, 1.5vw, 1.25rem);
|
|
color: #275058;
|
|
margin-bottom: 0.35rem;
|
|
}
|
|
|
|
.card p {
|
|
font-size: clamp(0.95rem, 1vw, 1.02rem);
|
|
}
|
|
|
|
.routine-list {
|
|
margin-top: 1rem;
|
|
display: grid;
|
|
gap: 0.7rem;
|
|
}
|
|
|
|
.routine {
|
|
padding: 0.9rem 1rem;
|
|
border-radius: 12px;
|
|
border: 1px solid #d2d9d1;
|
|
background: #f8f7f1;
|
|
display: flex;
|
|
gap: 1rem;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.routine b {
|
|
display: block;
|
|
color: #2a4d53;
|
|
margin-bottom: 0.18rem;
|
|
font-size: clamp(1rem, 1.2vw, 1.1rem);
|
|
}
|
|
|
|
.routine span {
|
|
font-size: 0.86rem;
|
|
color: #5c716f;
|
|
border: 1px solid #c5cec5;
|
|
padding: 0.2rem 0.55rem;
|
|
border-radius: 999px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.process {
|
|
margin-top: 1.05rem;
|
|
display: grid;
|
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
gap: 0.6rem;
|
|
}
|
|
|
|
.step {
|
|
padding: 0.78rem 0.65rem;
|
|
text-align: center;
|
|
border-radius: 12px;
|
|
border: 1px solid #d0d8d0;
|
|
background: #f4f6f2;
|
|
}
|
|
|
|
.step strong {
|
|
display: block;
|
|
margin-bottom: 0.2rem;
|
|
font-size: clamp(0.9rem, 1.1vw, 1rem);
|
|
color: #284a50;
|
|
}
|
|
|
|
.step small {
|
|
color: #617572;
|
|
font-size: clamp(0.8rem, 0.86vw, 0.9rem);
|
|
}
|
|
|
|
.contact {
|
|
margin-top: 2rem;
|
|
border-radius: 20px;
|
|
padding: 2rem;
|
|
border: 1px solid #2a636b;
|
|
background: linear-gradient(120deg, #245a61 0%, #1b484f 100%);
|
|
color: #d8ecea;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.contact h2 {
|
|
color: #ffffff;
|
|
font-size: clamp(1.35rem, 3vw, 2.2rem);
|
|
margin-bottom: 0.4rem;
|
|
}
|
|
|
|
.contact p {
|
|
color: #c7e0de;
|
|
font-size: clamp(0.95rem, 1.05vw, 1.08rem);
|
|
}
|
|
|
|
.contact .btn-secondary {
|
|
border-color: rgba(255, 255, 255, 0.45);
|
|
background: rgba(255, 255, 255, 0.14);
|
|
color: #ffffff;
|
|
}
|
|
|
|
|
|
@keyframes rise {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(14px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 980px) {
|
|
.hero {
|
|
grid-template-columns: 1fr;
|
|
padding: 2.1rem;
|
|
}
|
|
|
|
.section-grid {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
|
|
.process {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
@media (max-width: 700px) {
|
|
.section-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.routine {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.process {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
|
|
.contact {
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
padding: 1.5rem;
|
|
}
|
|
|
|
}
|
|
</style>
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<section class="hero" id="top">
|
|
<div>
|
|
<span class="eyebrow">Lehrmittelverwaltungssoftware für Schulen</span>
|
|
<h1>Lehrmittel, Schul-IT und Ausleihen in einem sicheren System.</h1>
|
|
<p>
|
|
Invario ist eine Lehrmittelverwaltungssoftware, die Schulbibliothek, Inventar und digitale Ausleihe zusammenführt. Prozesse bleiben bewusst schlank und schnell, während Sicherheitsfunktionen wie rollenbasierte Rechte, Sitzungsabsicherung und nachvollziehbare Protokolle im Hintergrund dauerhaft aktiv sind.
|
|
</p>
|
|
<div class="cta-row">
|
|
{% if 'username' in session %}
|
|
<a class="btn btn-primary" href="{{ url_for('appointments') }}">Buchungsoption nutzen</a>
|
|
{% else %}
|
|
<a class="btn btn-primary" href="{{ url_for('login') }}">Buchungsoption nutzen</a>
|
|
{% endif %}
|
|
<a class="btn btn-secondary" href="{{ url_for('dienstleistungen') }}">Leistungen ansehen</a>
|
|
<a class="btn btn-secondary" href="{{ url_for('team') }}">Team ansehen</a>
|
|
<a class="btn btn-secondary" href="{{ url_for('kontakt') }}">Direkt kontaktieren</a>
|
|
</div>
|
|
</div>
|
|
<aside class="hero-card" aria-label="Kurzfakten für Schulen">
|
|
<h3>Was Schulen besonders schätzen</h3>
|
|
<p>Klare Abläufe, feste Ansprechpartner und verständliche Oberflächen für den täglichen Einsatz.</p>
|
|
<div class="stats">
|
|
<div><strong>5 Min</strong><span>Einstieg pro Aufgabe</span></div>
|
|
<div><strong>1 Klick</strong><span>Status und Historie</span></div>
|
|
<div><strong>DSGVO</strong><span>Konform dokumentiert</span></div>
|
|
</div>
|
|
</aside>
|
|
</section>
|
|
|
|
<section class="section" id="nutzen" style="animation-delay: 100ms;">
|
|
<h2>Vorteile für Verwaltung und Bibliothek</h2>
|
|
<p>Alle Daten zu Lehrmitteln, Geraeten und Ausleihen sind gebündelt, sodass Rückfragen schnell geklärt werden können.</p>
|
|
<div class="section-grid">
|
|
<article class="card">
|
|
<h3>Lehrmittel pro Klasse steuern</h3>
|
|
<p>Bücher und Unterrichtsmaterialien lassen sich klassenweise ausgeben und zum Schuljahresende sauber rückführen.</p>
|
|
</article>
|
|
<article class="card">
|
|
<h3>Scanner-gestuetzte Ausleihe</h3>
|
|
<p>Barcode- oder QR-Workflows beschleunigen Ausgabe und Rücknahme deutlich, auch bei grossen Bestandsmengen.</p>
|
|
</article>
|
|
<article class="card">
|
|
<h3>IT- und Medienbestand kombiniert</h3>
|
|
<p>Tablets, Laptops, Webcams und Print-Medien werden gemeinsam verwaltet statt in voneinander getrennten Listen.</p>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section" id="alltag" style="animation-delay: 180ms;">
|
|
<h2>Typische Lehrmittel-Szenarien</h2>
|
|
<p>Die folgenden Beispiele orientieren sich an realen Schulablaeufen mit Fokus auf Tempo und Nachvollziehbarkeit.</p>
|
|
<div class="routine-list">
|
|
<div class="routine">
|
|
<div>
|
|
<b>Neue Klassensaetze treffen ein</b>
|
|
Lehrmittel werden etikettiert, Klassen zugeordnet und mit Ausgabehistorie gespeichert.
|
|
</div>
|
|
<span>Lehrmittel</span>
|
|
</div>
|
|
<div class="routine">
|
|
<div>
|
|
<b>Rückfrage zu ausgeliehenen Medien</b>
|
|
Verfügbarkeit, Entleiher und Rückgabedatum sind sofort sichtbar, ohne manuelle Listenpflege.
|
|
</div>
|
|
<span>Ausleihe</span>
|
|
</div>
|
|
<div class="routine">
|
|
<div>
|
|
<b>Defekt bei einem Endgeraet</b>
|
|
Zustand, Schaden und Verantwortlichkeiten werden dokumentiert, inklusive klarer Eskalationswege.
|
|
</div>
|
|
<span>Sicherheit</span>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section" id="sicherheit" style="animation-delay: 220ms;">
|
|
<h2>Erweiterte Sicherheit für den Schulbetrieb</h2>
|
|
<p>Die Plattform setzt auf Datenschutz und Betriebssicherheit, damit personenbezogene Daten und Inventardaten langfristig geschützt bleiben.</p>
|
|
<div class="section-grid">
|
|
<article class="card">
|
|
<h3>Rollen- und Bereichstrennung</h3>
|
|
<p>Bibliothek, Verwaltung und IT erhalten abgestufte Rechte, sodass jede Rolle nur ihre benoetigten Funktionen sieht.</p>
|
|
</article>
|
|
<article class="card">
|
|
<h3>Protokollierung und Nachweis</h3>
|
|
<p>Ausgaben, Rücknahmen und kritische Admin-Aktionen werden dokumentiert und sind jederzeit auditierbar.</p>
|
|
</article>
|
|
<article class="card">
|
|
<h3>Gesicherte Web-Session</h3>
|
|
<p>Sicherheits-Header, HttpOnly-Cookies und klare Session-Richtlinien schützen den laufenden Betrieb vor typischen Webangriffen.</p>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section" id="ablauf" style="animation-delay: 260ms;">
|
|
<h2>So verläuft die Zusammenarbeit</h2>
|
|
<p>Ein klarer Prozess sorgt für Sicherheit, besonders bei begrenzten Zeitfenstern im Schulbetrieb.</p>
|
|
<div class="process" aria-label="Ablauf in fünf Schritten">
|
|
<div class="step"><strong>1. Kennenlernen</strong><small>Ziele klären</small></div>
|
|
<div class="step"><strong>2. Struktur</strong><small>Bestehende Abläufe erfassen</small></div>
|
|
<div class="step"><strong>3. Einrichtung</strong><small>System passgenau einstellen</small></div>
|
|
<div class="step"><strong>4. Schulung</strong><small>Praxisnah einführen</small></div>
|
|
<div class="step"><strong>5. Betrieb</strong><small>Persönlich begleiten</small></div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="contact" id="kontakt">
|
|
<div>
|
|
<h2>Beratung für den nächsten Digitalisierungsschritt</h2>
|
|
<p>Ein kurzes Gespräch schafft Klarheit über Prioritäten, Sicherheitsanforderungen und realistische Einführungsetappen für den Schulbetrieb.</p>
|
|
</div>
|
|
{% if 'username' in session %}
|
|
<a class="btn btn-secondary" href="{{ url_for('appointments') }}">Buchungsoption nutzen</a>
|
|
{% else %}
|
|
<a class="btn btn-secondary" href="{{ url_for('login') }}">Buchungsoption nutzen</a>
|
|
{% endif %}
|
|
</section>
|
|
{% endblock %}
|