Aggiunti file prof (db + stylesheet)
This commit is contained in:
@@ -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');
|
||||||
@@ -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; }
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user