Skip to content

danixek/SafeSoft

Repository files navigation

🧩 Přehled projektu

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.

SafeSoft

✅ Implementované funkce (dle zadání)

  • 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)

SafeSoft

  • 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

SafeSoft

🚀 Funkce nad rámec zadání

  • 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

SafeSoft

  • 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)

SafeSoft

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.

SafeSoft

🧠 Architektonická a produktová rozhodnutí

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.

🔧 Funkce plánované do budoucna

  • 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.

  1. Naklonujte repozitář
    git clone https://github.com/danixek/SafeSoft.git
    cd SafeSoft
  2. Ověřte připojení k databázi v souboru appsettings.json
    (pokud používáte výchozí nastavení, přeskočte)
  3. Sestavte projekt:
    dotnet build
    Spuštěním se zkontroluje struktura projektu a automaticky se stáhnou závislosti - NuGet balíčky.
  4. Proveďte migraci databáze:
    dotnet ef database update
  5. Spusťte projekt:
    dotnet run

💡 Poznámka: Pokud se příkaz dotnet ef nezdaří, 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.

About

SafeSoft - firemní webová stránka s důrazem na bezpečnost. Součástí je i implementovaná ochrana proti XSS a javascriptové REST API formuláře.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors