Představ si, že jsi ve hře. Každý hráč má svou postavu – někdo je rytíř, někdo kouzelník, někdo léčitel. Každá postava má jiné schopnosti a může dělat jiné věci. Podobně je to i v informačním systému. Každý, kdo systém používá, má svou roli a může dělat jen určité věci. V této kapitole se podíváme na to, jak poznat svou roli a co to pro tebe znamená.
Už víme, že informační systém je jako mozek, který pomáhá organizacím (škole, obchodu) fungovat. Sbírá, ukládá a zpracovává data.
Informační systém (IS) je organizovaný systém pro sběr, ukládání, zpracování a šíření dat a informací, který pomáhá lidem a organizacím plnit jejich úkoly a rozhodovat se.
Když používáš informační systém, vždycky v něm máš nějakou roli. Tvoje role určuje, co v systému smíš a co nesmíš dělat. Je to jako mít klíče – některé klíče ti otevřou jen tvůj pokoj, jiné klíče otevřou celou školu.
Role uživatele v informačním systému je soubor práv a povinností, které má konkrétní uživatel. Určuje, k jakým informacím má přístup a jaké činnosti může v systému provádět.
Mít různé role je velmi důležité pro:
Tvoji roli ti obvykle řekne ten, kdo ti přístup do systému dává (např. učitel, správce systému). A co můžeš dělat, poznáš podle toho, jaké možnosti ti systém nabízí.
Když víš, jakou máš roli, je dobré si uvědomit, jaké konkrétní činnosti v systému provádíš.
Podívejme se, jak se liší role a činnosti pro různé uživatele ve školním informačním systému.
| Role uživatele | Typické činnosti |
|---|---|
| Žák | Prohlížení známek, rozvrhu, docházky; čtení zpráv; odevzdávání úkolů. |
| Učitel | Zadávání známek; zapisování docházky; vytváření a úprava rozvrhu pro svou třídu; posílání zpráv žákům a rodičům. |
| Rodič | Prohlížení známek a docházky svého dítěte; čtení zpráv od učitelů. |
| Ředitel/Správce IS | Měnění rozvrhů celé školy; přidávání a odebírání uživatelů; přístup ke všem datům; nastavení celého systému. |
Informační systémy jsou dnes všude – ve školách, v obchodech, u lékaře, na úřadech. Učíme se je používat, abychom si zjednodušili život. Je ale důležité si uvědomit, že každý systém má svá pravidla a že naše role v něm určuje, co smíme a co ne. Respektování těchto pravidel a pochopení, proč existují, je základem zodpovědného chování v digitálním světě.
RBAC je standardní model řízení přístupu:
Principle of Least Privilege: Každý uživatel má pouze ta oprávnění, která nezbytně potřebuje ke své práci. Nic víc.
Kritické operace vyžadují více osob:
Správa identit v organizaci zahrnuje:
Dokončujeme projekt Evidence studentů. V této kapitole přidáš export dat a finalizuješ projekt.
# utils/export.py
"""Modul pro export dat."""
import csv
import json
from datetime import datetime
def export_csv(data, filename):
"""Export dat do CSV souboru."""
if not data:
print("❌ Žádná data k exportu!")
return
with open(filename, 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=data[0].keys())
writer.writeheader()
writer.writerows(data)
print(f"✅ Exportováno do {filename}")
def export_json(data, filename):
"""Export dat do JSON souboru."""
# Převod datetime objektů na string
def serialize(obj):
if hasattr(obj, 'isoformat'):
return obj.isoformat()
return str(obj)
with open(filename, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2, default=serialize)
print(f"✅ Exportováno do {filename}")
def generuj_report(db):
"""Generuje textový report."""
stat = db.statistiky()
studenti = db.vsichni()
report = f"""
================================================================================
EVIDENCE STUDENTŮ - REPORT
Vygenerováno: {datetime.now().strftime('%d.%m.%Y %H:%M')}
================================================================================
STATISTIKY:
-----------
Celkem studentů: {stat['pocet']}
Počet tříd: {stat['pocet_trid']}
SEZNAM STUDENTŮ:
----------------
"""
for s in studenti:
report += f" • {s['jmeno']} {s['prijmeni']} ({s['trida'] or '-'})\n"
return report
# Přidej do menu:
print("8. Export dat")
# Přidej funkci:
def export_menu(db):
print("\n📤 EXPORT DAT")
print("1. Export do CSV")
print("2. Export do JSON")
print("3. Generovat report (TXT)")
volba = input("Vyber formát: ")
studenti = db.vsichni()
if volba == "1":
export_csv(studenti, f"export_{datetime.now():%Y%m%d}.csv")
elif volba == "2":
export_json(studenti, f"export_{datetime.now():%Y%m%d}.json")
elif volba == "3":
report = generuj_report(db)
filename = f"report_{datetime.now():%Y%m%d}.txt"
with open(filename, 'w', encoding='utf-8') as f:
f.write(report)
print(f"✅ Report uložen: {filename}")
# Přidej všechny změny
git add .
# Finální commit
git commit -m "Dokončení projektu Evidence studentů v1.0.0
- Kompletní CRUD operace pro studenty
- Propojení Python + MySQL
- CLI interface
- Export do CSV, JSON, TXT report
- Testy a dokumentace"
# Vytvoř tag
git tag -a v1.0.0 -m "První stabilní verze"
# Push včetně tagu
git push origin main --tags
evidence-studentu/
├── .git/
├── .gitignore ✅
├── LICENSE ✅ MIT
├── README.md ✅ Dokumentace
├── main.py ✅ CLI aplikace
├── db/
│ ├── __init__.py
│ └── connection.py ✅ MySQL připojení
├── models/
│ ├── __init__.py
│ └── student_db.py ✅ CRUD operace
├── utils/
│ ├── __init__.py
│ └── export.py ✅ Export funkcí
├── sql/
│ ├── schema.sql ✅ Struktura DB
│ └── queries.sql ✅ Ukázkové dotazy
└── tests/
└── test_student.py ✅ Testy
🏆 SQL PROJEKT DOKONČEN! 🏆