Oppilaitoksen kurssienhallintajärjestelmä, jossa voidaan hallinnoida oppilaita, opettajia, kursseja ja kurssi-ilmoittautumisia.
- Jenni: Tietokantasuunnittelu ja -toteutus
- Vesku: Backend-arkkitehtuuri ja tietokantayhteys
- Eevert: Lomakkeet ja CRUD-toiminnot
- Meleqe: Näkymät ja raportit
- Teemu: UI/UX ja viimeistely
oppilas_id(PK, INT, AUTO_INCREMENT)etunimi(VARCHAR 50)sukunimi(VARCHAR 50)syntymaaika(DATE)vuosikurssi(INT, 1-3)
opettaja_id(PK, INT, AUTO_INCREMENT)etunimi(VARCHAR 50)sukunimi(VARCHAR 50)aine(VARCHAR 100)
tila_id(PK, INT, AUTO_INCREMENT)tila_nimi(VARCHAR 50, UNIQUE)paikkoja(INT)
kurssi_id(PK, INT, AUTO_INCREMENT)kurssin_tunnus(VARCHAR 20, UNIQUE)kurssi_nimi(VARCHAR 100)kurssikuvaus(TEXT)aloituspaiva(DATE)lopetuspaiva(DATE)opettaja_id(FK viittaaopettajat)tila_id(FK viittaatilat)
ilmoittautuminen_id(PK, INT, AUTO_INCREMENT)opiskelija_id(FK viittaaoppilaat)kurssi_id(FK viittaakurssit)ilmoittautumispaiva(DATETIME)- UNIQUE constraint: (
opiskelija_id,kurssi_id)
opettajat(1) → (n)kurssittilat(1) → (n)kurssitoppilaat(n) ↔ (n)kurssit(ilmoittautuminen-välitaulu)
nakyma_kaynnissa_olevat_kurssit– Käynnissä olevat kurssit ja ilmoittautuneetnakyma_tulevat_kurssit– Tulevat kurssit ja vapaat paikatnakyma_ylibuukatut_kurssit– Kurssit, joissa ilmoittautuneita enemmän kuin kapasiteettinakyma_kurssit_taydellinen– Kurssien tiedot, opettaja, tila, ilmoittautuneet ja vapaita paikkojanakyma_opettajat_kurssit– Opettajien tiedot ja heidän kurssinsanakyma_opiskelijat_kurssit– Opiskelijan kurssit ja opettajatnakyma_opiskelijat_aktiivisuus– Opiskelijan aktiivisuuskurssimäärien perusteellanakyma_tilat_kaytto– Tilojen käyttöaste ja status
- Käynnistä XAMPP (Apache + MySQL)
- Avaa phpMyAdmin: http://localhost/phpmyadmin
- Luo uusi tietokanta:
kurssienhallinta - Valitse tietokanta
- Klikkaa Import
- Valitse tiedosto:
kurssienhallinta.sql - Klikkaa Go
Luo tiedosto config/db_connect.php:
<?php
$host = 'localhost';
$db = 'kurssienhallinta';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
try {
$pdo = new PDO($dsn, $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("Tietokantayhteys epäonnistui: " . $e->getMessage());
}
?>Kurssinäkymä: Näyttää kurssin tiedot, opettajan, tilan ja ilmoittautuneet opiskelijat
Opiskelijanäkymä: Näyttää opiskelijan tiedot ja kurssit joille hän on ilmoittautunut
Opettajanäkymä: Näyttää opettajan tiedot ja kurssit joita hän opettaa
Tilanäkymä: Näyttää tilan tiedot ja kurssit jotka pidetään tilassa (+ kapasiteettivaroitus)
Lisää/muokkaa/poista opettajia
Lisää/muokkaa/poista oppilaita
Lisää/muokkaa/poista kursseja
Lisää/muokkaa/poista tiloja
Lisää/poista kurssi-ilmoittautumisia
Tietokannassa on valmiina:
- 5 opettajaa
- 5 tilaa (kapasiteetit: 20-40 oppilasta)
- 5 kurssia (eri aineita)
- 8 oppilasta (vuosikurssit 1-3)
- 17 kurssi-ilmoittautumista
Tietokanta: MySQL / MariaDB
Backend: PHP 8.x
Frontend: HTML5, CSS3, JavaScript
Palvelin: Apache (XAMPP)
PROJEKTIRAKENNE
kurssienhallinta/
├── screenshots/
│ ├── 1_taulut.png
│ ├── 2_er_diagram.png
│ └── 3_testidata.png
├──kurssienhallinta
│ ├── add_edit_kurssi.php/
│ ├── add_edit_opettaja.php/
│ ├── add_edit_oppilas.php/
│ ├── add_edit_tila.php/
│ ├── config.php/
│ ├── db.php/
│ ├── ilmoittaudu.php/
│ ├── index.php/
│ ├── kurssi.php/
│ ├── opettajat.php/
│ ├── oppilaat.php/
│ ├── poista_ilmo.php/
│ ├── tilat.php/
├── er-kaavio
├── README.md
├── kurssienhallinta.sql
1. Kopioi projektikansio: C:\xampp\htdocs\kurssienhallinta\
2. Tuo tietokanta (ks. Asennus)
3. Avaa selaimessa: http://localhost/kurssienhallinta/
Käyttäjien kirjautuminen (admin/opiskelija)
Arvosanojen hallinta
Läsnäolojen seuranta
Kurssien hakutoiminto
Ilmoittautumisen vahvistusviestit
Raporttien vienti PDF:ksi
Projekti tehty osana Juhannuskukkulan tietokantakurssia.
Tiimi: Meleqe, Teemu, Vesku, Eevert ja Jenni
Päivämäärä: Lokakuu 2025
LISENSSI
Tämä projekti on tehty opetuskäyttöön.