Go to file
2025-11-10 12:30:23 +01:00
docs feat: bug fixes, basic set of tests 2025-11-10 12:30:23 +01:00
Knihovna@9398c1a6de docs: testy 2025-11-10 11:00:36 +01:00
Normalizace docs: testy 2025-11-10 11:00:36 +01:00
src feat: bug fixes, basic set of tests 2025-11-10 12:30:23 +01:00
.gitignore feat: basic DB setup 2025-11-03 12:21:01 +01:00
Database.cs feat: bug fixes, basic set of tests 2025-11-10 12:30:23 +01:00
docker-compose.yaml feat: add docker compose and Dockerfile 2025-11-03 11:44:11 +01:00
Dockerfile chore(docker): remove unneeded deps 2025-11-03 12:21:32 +01:00
Knihovna.csproj feat: bug fixes, basic set of tests 2025-11-10 12:30:23 +01:00
Program.cs feat: bug fixes, basic set of tests 2025-11-10 12:30:23 +01:00
README.md Team work added 2025-11-03 12:27:27 +01:00

Knihovna

Struktura projektu

Projekt je organizován do několika klíčových částí:

Knihovna/
│
├── src/ # Zdrojové soubory  zde bude vaše implementace
│ ├── Funkce1.cs
│ ├── Funkce2.cs
│ └── ...
│
├── Database.cs # Definice databázových tabulek a datových modelů
│
├── Program.cs # Hlavní vstupní bod programu (spuštění aplikace)
│
└── docs/ # Dokumentace a zadání pro jednotlivé týmy
├── TymA.md
├── TymB.md
└── ...

Popis hlavních souborů

./src/

  • každý tým implementuje své funkce v samostatném souboru, abychom se vyhnuli git konfliktům
  • Například funkci pro vyhledávání knih uložte do souboru VyhledavaniKnih.cs.
  • Tento přístup zajišťuje přehlednost, modularitu a snadné testování.

Important

Všechny proměnné se pojmenovávají v angličtině ve stylu PascalCase, to stejné platí pro názvy souborů.

Database.cs

  • Obsahuje definici tabulek a datových struktur, které reprezentují databázi (např. Knihy, Ctenari, Vypujcky).
  • Není vhodné měnit strukturu bez předchozí domluvy s ostatními členy týmu, protože soubor je sdílený v rámci celého projektu.

Databaze

Program.cs

  • Slouží jako hlavní vstupní bod aplikace.
  • Zde se spouští program, načítají data a volají funkce z adresáře src.
  • Tento soubor zajišťuje propojení všech částí projektu.

Postup při přidávání vaší práce

Klonování repozitáře

Stáhněte si projekt lokálně pomocí GITu:

git clone https://gitea.homework.zip/shinya/Knihovna.git

Tímto příkazem vytvoříte lokální kopii projektu na vašem počítači.

Úpravy a implementace

Vytvořte nebo upravte soubory v adresáři ./src/.

Dodržujte strukturu projektu a konvence psaní kódu.

Průběžně testujte své změny (např. pomocí dotnet run).

Pokud nemate dotnet tak docker compose up -d a docker exec -it knihovna bash Tam mate prostredi s nainstalovanym dotnetem a vsemi dependencies

Commit a push

Jakmile máte změny hotové, proveďte následující příkazy:

Dodržujte conventional commits: https://www.conventionalcommits.org/en/v1.0.0/

Cheatsheet: https://ashababnoor.github.io/cheatsheets/cheatsheets/conventional-commits

git add .
git commit -m "feat: funkce vyhledávání knih"
git push

Tímto nahrajete změny zpět na server.

Pozor: Před odesláním změn vždy nejprve stáhněte aktuální verzi projektu:

git pull
  • a vyřešte případné konflikty, pokud se vyskytnou.

Zadání projektů

V adresáři ./docs se nachází zadání pro jednotlivé týmy. Každý tým má svůj vlastní soubor (např. TymA.md, TymB.md), který obsahuje:

  • konkrétní popis úkolu,
  • technické požadavky,
  • a případně hodnoticí kritéria.

Info

  • Přidat, upravit, vypsat, vymazat knihy

  • Filtrace knih podle autora atd...

  • Počet dostupných výtisků

  1. Přidat knihu
  2. Upravit knihu
  3. Vymazat knihu
  • Vyhledávat podle konkrétního specifikovaného parametru
  • Vyhledávat podle názvu, autora
  • Filtrace podle autora, nakladatelství
  • Filtrování na serveru
  • Implementace uživatele a jeho výpůjček
  • Kniha má maximálně 6/7 autorů

Práce

  1. Struktura databáze
  2. Informace z databáze zpracování

Funkce

  • GetBooks() param. filter wrapper function, pick if by name or author
    • GetBooksByAuthor() param. filter
    • GetBooksByName() param. filter
    • GetStolenBooks() param. filter
    • GetAvailableBooks() param. filter
  • GetBorrowedBooks() param. userID
  • GetBookInfo() param. knihaID
  • AddBook() param. KnihaInfo
  • RemoveBook() param. knihaID
  • EditBook() param. knihaID
  • AddAuthor() param. AutorInfo
  • EditAuthor() param. AutorID
  • AddNakladatelstvi() param. NakladatelstviInfo
  • EditNakladatelstvi() param. NakladatelstviID