Projekt byl vypracován v rámci zadání s důrazem na kvalitu implementace, bezpečnost a rozšiřitelnost řešení. Odevzdání proběhlo po uplynutí celé dostupné lhůty záměrně, aby byl prostor na iterace, refaktoring a ověření funkčnosti.
Při vývoji jsem využíval moderní nástroje včetně AI asistence (ChatGPT) jako podpory při hledání řešení a studiu neznámých konceptů. Klíčová rozhodnutí, architektura a finální implementace však vychází z vlastního pochopení problému a postupného ověřování v praxi.
- Registrace uživatele (jméno, příjmení, e-mail, heslo)
- Automatické přiřazení role superadmin prvnímu registrovanému uživateli
- Přihlášení a odhlášení uživatele
- Dvoufaktorová autentizace (TOTP)
- Vícestránkové menu dostupné všem uživatelům
-
Administrace uživatelů:
- přehled registrovaných uživatelů
- editace základních údajů a rolí
- odebrání administrátorských oprávnění
- volitelné odstranění uživatele
- Ošetření vstupů proti XSS s důrazem na čitelnost a udržitelnost kódu
- Logovací systém dostupný pro roli superadmin
- Dynamické načítání produktů v e-shopu pomocí JavaScriptu
- Implementace košíku objednávek ukládaného do cookies včetně ochrany proti manipulaci s cenami
- Dynamické generování testovacích objednávek pro administrátorské role
-
Administrace produktů (včetně cen) dostupná pouze
superadminovi
- formuláře se načítají dynamicky (modal dialog)
Dynamické části aplikace byly zvoleny záměrně jako příležitost osvojit si práci s klientskou logikou a tokem dat mezi frontendem a backendem.
Některé původní nápady byly v průběhu vývoje vědomě opuštěny nebo odloženy, zejména pokud by výrazně navyšovaly komplexitu, neodpovídaly rozsahu zadání nebo by vedly k technicky zavádějícímu řešení.
Koncept interní „sociální sítě“ s údajně „vlastním obsahem“ uživatelů byl opuštěn, jelikož by bez pokročilejší personalizace šlo pouze o obecný feed bez skutečné individualizace. Alternativní řešení (např. personalizované RSS odběry) bylo identifikováno jako možný směr dalšího rozvoje, nikoli jako součást aktuální implementace.
- Stav objednávky
- Filtrování produktů
- Rozšíření práce s obsahem na základě uživatelských preferencí
Pro spuštění projektu doporučuji použít pokročilé editory jako Visual Studio Community nebo JetBrains Rider. Alternativně lze použít i Visual Studio Code s doinstalovaným rozšířením C# Dev Kit, který nainstaluje .NET SDK včetně nástroje dotnet.
- Naklonujte repozitář
git clone https://github.com/danixek/SafeSoft.git
cd SafeSoft - Ověřte připojení k databázi v souboru
appsettings.json
(pokud používáte výchozí nastavení, přeskočte) - Sestavte projekt:
dotnet build
Spuštěním se zkontroluje struktura projektu a automaticky se stáhnou závislosti - NuGet balíčky. - Proveďte migraci databáze:
dotnet ef database update
- Spusťte projekt:
dotnet run
💡 Poznámka: Pokud se příkaz
dotnet efnezdaří, je pravděpodobně potřeba doinstalovat EF CLI nástroj:
dotnet tool install --global dotnet-ef
Po úspěšném spuštění se v konzoli objeví adresa (např. https://localhost:7204). Otevřete ji v prohlížeči – projekt by měl být dostupný. Ve Visual Studiu Community nebo Rideru se aplikace často spustí automaticky s otevřením prohlížeče.





