Knihovna/README.md
2025-11-03 12:27:27 +01:00

152 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Knihovna
## Struktura projektu
Projekt je organizován do několika klíčových částí:
```shell
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](docs/db-erd.svg)
### `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:
```bash
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
```bash
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:
```bash
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í
3.
## 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