Aggiunti file prof (db + stylesheet)

This commit is contained in:
2026-03-31 08:27:06 +02:00
commit 4cc95c523f
2 changed files with 250 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
CREATE DATABASE IF NOT EXISTS Aeroporto;
USE Aeroporto;
CREATE TABLE PASSEGGERO (
idPassaporto VARCHAR(20) PRIMARY KEY,
cognome VARCHAR(50) NOT NULL,
nome VARCHAR(50) NOT NULL,
nazionalita VARCHAR(50),
dataNascita DATE,
email VARCHAR(100)
);
CREATE TABLE VOLO (
numeroVolo VARCHAR(10) PRIMARY KEY,
compagnia VARCHAR(50) NOT NULL,
destinazione VARCHAR(50) NOT NULL
);
CREATE TABLE PRENOTAZIONE (
idPrenotazione INT AUTO_INCREMENT PRIMARY KEY,
dataPrenotazione DATE NOT NULL,
prezzo DECIMAL(10, 2),
classe VARCHAR(20),
idPassaporto VARCHAR(20),
numeroVolo VARCHAR(10),
FOREIGN KEY (idPassaporto) REFERENCES PASSEGGERO(idPassaporto),
FOREIGN KEY (numeroVolo) REFERENCES VOLO(numeroVolo)
);
CREATE TABLE BAGAGLIO (
idBagaglio INT AUTO_INCREMENT PRIMARY KEY,
dataImbarco DATE NOT NULL,
peso DECIMAL(5, 2),
smarrito TINYINT(1),
idPassaporto VARCHAR(20),
FOREIGN KEY (idPassaporto) REFERENCES PASSEGGERO(idPassaporto)
);
INSERT INTO PASSEGGERO (idPassaporto, cognome, nome, nazionalita, dataNascita, email) VALUES
('AB12345', 'Rossi', 'Marco', 'Italiana', '1980-05-15', 'marco.rossi@email.it'),
('XY98765', 'Bianchi', 'Luca', 'Italiana', '1992-10-20', 'luca.bianchi@email.it'),
('US55555', 'Smith', 'John', 'USA', '1975-03-12', 'john.smith@usmail.com'),
('FR11111', 'Dupont', 'Jean', 'Francia', '1988-07-14', NULL),
('DE22222', 'Muller', 'Hans', 'Germania', '1990-11-30', 'hans.m@de.com'),
('ES33333', 'Garcia', 'Maria', 'Spagnola', '1995-02-28', 'maria.g@es.com'),
('RO99999', 'Romano', 'Giulia', 'Italiana', '2000-01-01', NULL),
('PT44444', 'Silva', 'Joao', 'Portoghese', '1985-06-10', 'joao@pt.com'),
('CA77777', 'Wilson', 'Emma', 'Canada', '1998-12-25', 'emma.w@ca.com'),
('NE00000', 'Neri', 'Fantasma', 'Italiana', '1999-09-09', 'neri@test.it');
INSERT INTO VOLO (numeroVolo, compagnia, destinazione) VALUES
('AZ202', 'Alitalia', 'Roma'),
('LH404', 'Lufthansa', 'Berlino'),
('RY123', 'Ryanair Express', 'Londra'),
('DL100', 'Delta', 'New York'),
('AF505', 'Air France', 'Parigi'),
('GH000', 'Ghost Air', 'Nessun Luogo');
INSERT INTO PRENOTAZIONE (dataPrenotazione, prezzo, classe, idPassaporto, numeroVolo) VALUES
('2024-09-01', 45.00, 'Economy', 'AB12345', 'AZ202'),
('2024-10-05', 150.00, 'Business', 'XY98765', 'AZ202'),
('2024-11-12', 1200.00, 'First', 'US55555', 'DL100'),
('2024-09-15', 80.00, 'Economy', 'FR11111', 'AF505'),
('2024-10-20', 60.00, 'Economy', 'DE22222', 'RY123'),
('2024-12-01', 300.00, 'Business', 'ES33333', 'LH404'),
('2024-08-30', 400.00, 'Business', 'AB12345', 'DL100'),
('2024-10-01', 35.00, 'Economy', 'RO99999', 'AZ202');
INSERT INTO BAGAGLIO (dataImbarco, peso, smarrito, idPassaporto) VALUES
('2024-09-01', 15.50, 0, 'AB12345'),
('2024-10-05', 20.00, 0, 'XY98765'),
('2024-10-05', 10.50, 0, 'XY98765'),
('2024-12-05', 23.00, 0, 'US55555'),
('2024-12-15', 22.00, 1, 'US55555'),
('2024-12-20', 18.00, 0, 'US55555'),
('2024-12-25', 12.00, 0, 'US55555'),
('2024-09-15', 19.00, 0, 'FR11111'),
('2024-11-30', 25.00, 0, 'CA77777');
+172
View File
@@ -0,0 +1,172 @@
/* ==========================================================================
1. VARIABILI E COLORI (Design Tokens 2026)
========================================================================== */
:root {
/* Palette 2026: Basata su "Cloud Dancer" (bianco caldo) e accenti vibranti */
--bg-page: #f9f9fb; /* Sfondo chiaro e riposante */
--text-main: #1a1a1c; /* Testo quasi nero per massimo contrasto */
--text-muted: #64748b; /* Testo secondario */
--primary: #2563eb; /* Blu moderno e saturo */
--primary-hover: #1d4ed8;
--accent: #f59e0b; /* Ambra per richiamare l'attenzione */
/* Colori per i Form */
--input-bg: #ffffff;
--input-border: #e2e8f0;
--input-focus: #3b82f6;
--error: #ef4444;
--success: #10b981;
/* Spaziature e Bordi */
--radius: 12px;
--shadow-sm: 0 1px 3px rgba(0,0,0,0.1);
--shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1);
}
/* Modalità Notte Automatica */
@media (prefers-color-scheme: dark) {
:root {
--bg-page: #0f172a;
--text-main: #f8fafc;
--text-muted: #94a3b8;
--input-bg: #1e293b;
--input-border: #334155;
}
}
/* ==========================================================================
2. TIPOGRAFIA E TESTO NELLA PAGINA
========================================================================== */
body {
font-family: 'Inter', system-ui, -apple-system, sans-serif;
background-color: var(--bg-page);
color: var(--text-main);
line-height: 1.6;
/* Tipografia fluida: scala tra 16px e 18px in base alla finestra */
font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
margin: 0;
padding: 2rem;
}
p {
margin-bottom: 1.5rem;
max-width: 70ch; /* Limita la larghezza per una lettura ottimale */
}
/* ==========================================================================
3. TITOLI (H1, H2, H3)
========================================================================== */
h1, h2, h3 {
margin-top: 2.5rem;
margin-bottom: 1rem;
font-weight: 800;
line-height: 1.2;
color: var(--primary);
}
h1 { font-size: clamp(2rem, 5vw, 3.5rem); letter-spacing: -0.02em; }
h2 { font-size: clamp(1.5rem, 4vw, 2.25rem); color: var(--text-main); }
h3 { font-size: clamp(1.25rem, 3vw, 1.75rem); border-left: 4px solid var(--accent); padding-left: 1rem; }
/* ==========================================================================
4. FORM E INPUT (Stile Moderno)
========================================================================== */
form {
display: flex;
flex-direction: column;
gap: 1.5rem;
max-width: 500px;
background: var(--input-bg);
padding: 2rem;
border-radius: var(--radius);
box-shadow: var(--shadow-md);
}
.form-group {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
label {
font-weight: 600;
font-size: 0.9rem;
}
input, textarea, select {
padding: 0.75rem 1rem;
border: 2px solid var(--input-border);
border-radius: 8px;
background-color: var(--input-bg);
color: var(--text-main);
transition: all 0.2s ease;
font-size: 1rem;
}
input:focus {
outline: none;
border-color: var(--input-focus);
box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
}
/* Feedback validazione nativa senza JS */
input:invalid:not(:placeholder-shown) { border-color: var(--error); }
input:valid:not(:placeholder-shown) { border-color: var(--success); }
button {
background-color: var(--primary);
color: white;
padding: 0.8rem 1.5rem;
border: none;
border-radius: 8px;
font-weight: 700;
cursor: pointer;
transition: background 0.3s ease;
}
button:hover { background-color: var(--primary-hover); }
/* ==========================================================================
5. TABELLE (Stile Minimalista Bento)
========================================================================== */
.table-container {
overflow-x: auto; /* Rende la tabella scrollabile su mobile */
margin: 2rem 0;
border-radius: var(--radius);
box-shadow: var(--shadow-sm);
}
table {
width: 100%;
border-collapse: collapse;
background: var(--input-bg);
text-align: left;
}
th, td {
padding: 1rem 1.5rem;
border-bottom: 1px solid var(--input-border);
}
th {
background-color: var(--primary);
color: white;
font-weight: 600;
text-transform: uppercase;
font-size: 0.8rem;
letter-spacing: 0.05em;
position: sticky; /* Header fisso allo scroll */
top: 0;
}
tr:last-child td { border-bottom: none; }
/* Effetto riga al passaggio del mouse */
tr:hover td {
background-color: rgba(37, 99, 235, 0.05);
}
@media (max-width: 600px) {
th, td { padding: 0.75rem; font-size: 0.9rem; }
}