# Filmu Katalogs - Moduļa darbs

**Autors:** Guntars Zovskis 
**Tehnoloģijas:** HTML, CSS, JavaScript, PHP, MariaDB  
**Arhitektūra:** Front-end + Back-end (REST API)

---

## Par projektu

Filmu katalogs ir web lietotne filmu, žanru un aktieru pārvaldībai.  
Lietotne darbojas bez pieteikšanās sistēmas — visiem lietotājiem vienāda piekļuve.  
Front-end un Back-end sazinās caur REST API izmantojot HTTP pieprasījumus.

---

## Izmantotās tehnoloģijas

| Daļa | Tehnoloģija | Nolūks |
|------|-------------|--------|
| Front-end | HTML5 | Lapas struktūra |
| Front-end | CSS3 | Vizuālais izskats |
| Front-end | JavaScript (Fetch API) | API pieprasījumi un dinamiskais saturs |
| Back-end | PHP 8 (PDO) | REST API un datubāzes vaicājumi |
| Datubāze | MariaDB | Datu glabāšana |
| Serveris | Apache (XAMPP) | Lokālā izstrāde un failu apkalpošana |

---

## Servera konfigurācija

Lietotne darbojas uz **lokālā XAMPP servera** un pieslēdzas **skolas MariaDB serverim**:

| Parametrs | Vērtība |
|-----------|---------|
| Web serveris | Apache (XAMPP) — `http://localhost` |
| DB serveris | `153.92.1.116` (skolas serveris) |
| DB ports | `3308` |
| Datubāze | `zg_filmu_katalogs` |
| DB lietotājs | `zovskis_g` |

Savienojuma konfigurācija atrodas failā `api/db.php`.

---

## Projekta struktūra

```
filmu_katalogs/
├── README.md               ← Šis fails
├── database.sql            ← Datubāzes izveides skripts
├── api/
│   ├── db.php              ← Datubāzes savienojums (skolas serveris)
│   ├── zanri.php           ← REST API: žanri
│   ├── filmas.php          ← REST API: filmas
│   └── aktieri.php         ← REST API: aktieri
└── frontend/
    ├── index.html          ← Galvenā lapa (3 logi)
    ├── style.css           ← Stili
    └── app.js              ← JavaScript loģika
```

---

## Datubāzes struktūra

**3 tabulas:**

| Tabula | Kolonnas | Apraksts |
|--------|----------|----------|
| **zanri** | id, nosaukums | Filmu žanru saraksts |
| **filmas** | id, nosaukums, gads, zanrs_id | Filmas ar žanra saiti |
| **aktieri** | id, vards, uzvards, filma_id | Aktieri ar filmas saiti |

Tabulas ir savstarpēji saistītas ar FOREIGN KEY saitēm.

---

## Logi

| Logs | Funkcija |
|------|----------|
| **Filmas** | Parāda, pievieno, rediģē un dzēš filmas |
| **Žanri** | Parāda, pievieno un dzēš žanrus |
| **Aktieri** | Parāda, pievieno un dzēš aktierus |

---

## REST API maršruti

| Metode | URL | Darbība |
|--------|-----|---------|
| GET | /api/zanri.php | Iegūst visus žanrus |
| POST | /api/zanri.php | Pievieno žanru |
| DELETE | /api/zanri.php?id=1 | Dzēš žanru |
| GET | /api/filmas.php | Iegūst visas filmas |
| POST | /api/filmas.php | Pievieno filmu |
| PUT | /api/filmas.php?id=1 | Rediģē filmu |
| DELETE | /api/filmas.php?id=1 | Dzēš filmu |
| GET | /api/aktieri.php | Iegūst visus aktierus |
| POST | /api/aktieri.php | Pievieno aktieri |
| DELETE | /api/aktieri.php?id=1 | Dzēš aktieri |

---

## Drošība

- **PDO Prepared Statements** — aizsardzība pret SQL injection
- **HTML ekranēšana (XSS)** — aizsardzība pret ļaunprātīgu kodu
- **HTTP statusa kodi** — 200, 201, 400, 404, 405, 500
- **CORS galvenes** — kontrolēta piekļuve API

---

## Uzstādīšana

1. Iekopē mapi `filmu_katalogs` uz `C:\xampp\htdocs\`
2. Importē `database.sql` phpMyAdmin
3. Palaid XAMPP (Apache + MySQL)
4. Atver: `http://localhost/filmu_katalogs/frontend/`
