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