# Skolēnu pārvaldības sistēma

Tīmekļa lietotne skolas skolēnu, klašu un vecāku pārvaldībai.

## Projekta struktūra

```
3 logi/
├── frontend/
│   ├── students.html          # 1. logs — skolēnu saraksts
│   ├── add_student.html       # 2. logs — jauna skolēna pievienošana
│   ├── student_profile.html   # 3. logs — profils un rediģēšana
│   ├── css/
│   │   └── style.css          # Galvenā stillapsa (tumšais dizains)
│   └── js/
│       ├── students.js        # Saraksta loģika
│       ├── add_student.js     # Pievienošanas formas loģika
│       ├── profile.js         # Profila loģika
│       └── notify.js          # Stilizētu paziņojumu sistēma
├── backend/
│   ├── db.php                 # PDO datubāzes savienojums
│   └── api/
│       ├── students.php       # REST API skolēniem (GET/POST/PUT/DELETE)
│       ├── parents.php        # REST API vecākiem (GET/POST)
│       └── classes.php        # REST API klasēm (GET/POST ar upsert)
├── db/
│   └── create_tables.sql      # Datubāzes shēma un testa dati
└── README.md
└──RESOURCES.md
```

## Funkcionalitāte

**1. logs — Skolēnu saraksts (`students.html`)**
- Parāda visus skolēnus no datubāzes
- Filtrēšana pēc klases
- Meklēšana pēc vārda un uzvārda
- Kārtošana pēc kolonnu virsrakstiem
- Pāreja uz skolēna profilu

**2. logs — Pievienot skolēnu (`add_student.html`)**
- Ievada jauna skolēna vārdu, uzvārdu, klasi
- Izvēlas esošu vecāku vai pievieno jaunu
- Validācija pirms nosūtīšanas
- Dati tiek saglabāti datubāzē

**3. logs — Skolēna profils (`student_profile.html`)**
- Parāda skolēna datus (vārds, uzvārds, klase, vecāks)
- Rediģēšanas režīms ar formu
- Skolēna dzēšana ar apstiprinājuma dialogu
- Stilizēti paziņojumi par darbību rezultātiem

## Uzstādīšana

1. Augšupielādē projektu uz servera
2. Izveido datubāzi, izpildot `db/create_tables.sql`
3. Pielāgo savienojuma datus failā `backend/db.php`:
   - `$dbHost` — servera adrese un ports
   - `$dbName` — datubāzes nosaukums
   - `$dbUser` — lietotājvārds
   - `$dbPass` — parole
4. Atver `frontend/students.html` pārlūkprogrammā


## Izmantotās tehnoloģijas

- **Frontend:** HTML5, CSS3 (Grid, Flexbox), Vanilla JavaScript (ES6+, Fetch API)
- **Backend:** PHP 8 (PDO, REST API)
- **Datubāze:** MySQL ar InnoDB dzinēju, ārējās atslēgas

## Drošība

- Visi datubāzes vaicājumi izmanto sagatavotus priekšrakstus (prepared statements)
- Lietotāja ievade tiek validēta gan klientā, gan serverī
- HTTP atbildes kodi tiek korektā veidā atgriezti
