feat: Implement initial application structure with network view and SVG editor
- Added network-view.js for visualizing network topology with devices and connections. - Introduced svg-editor.js for managing ports on device types with drag-and-drop functionality. - Created bootstrap.php for application initialization, including configuration and database connection. - Established config.php for centralized configuration settings. - Developed index.php as the main entry point with module-based routing. - Integrated _sql.php for database abstraction. - Added auth.php for single-user authentication handling. - Included helpers.php for utility functions. - Created modules for managing connections, device types, devices, and floors. - Implemented database schema in init.sql for locations, buildings, floors, rooms, network outlets, devices, and connections. - Added Docker support with docker-compose.yml for web and database services. - Documented database structure and UI/UX concepts in respective markdown files.
This commit is contained in:
185
init.sql
Normal file
185
init.sql
Normal file
@@ -0,0 +1,185 @@
|
||||
CREATE TABLE locations (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
comment TEXT
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE buildings (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
location_id INT NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
comment TEXT,
|
||||
FOREIGN KEY (location_id) REFERENCES locations(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE floors (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
building_id INT NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
level INT,
|
||||
svg_path VARCHAR(255),
|
||||
comment TEXT,
|
||||
FOREIGN KEY (building_id) REFERENCES buildings(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE rooms (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
floor_id INT NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
number VARCHAR(50),
|
||||
x INT,
|
||||
y INT,
|
||||
width INT,
|
||||
height INT,
|
||||
comment TEXT,
|
||||
FOREIGN KEY (floor_id) REFERENCES floors(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE network_outlets (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
room_id INT NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
x INT,
|
||||
y INT,
|
||||
comment TEXT,
|
||||
FOREIGN KEY (room_id) REFERENCES rooms(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE network_outlet_ports (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
outlet_id INT NOT NULL,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
port_type_id INT,
|
||||
FOREIGN KEY (outlet_id) REFERENCES network_outlets(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE racks (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
floor_id INT NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
height_he INT NOT NULL,
|
||||
comment TEXT,
|
||||
FOREIGN KEY (floor_id) REFERENCES floors(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE device_types (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
category ENUM('switch','server','patchpanel','other') NOT NULL,
|
||||
image_path VARCHAR(255),
|
||||
image_type ENUM('svg','bitmap') NOT NULL,
|
||||
comment TEXT
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE device_type_ports (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
device_type_id INT NOT NULL,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
port_type_id INT,
|
||||
x INT NOT NULL,
|
||||
y INT NOT NULL,
|
||||
metadata JSON,
|
||||
FOREIGN KEY (device_type_id) REFERENCES device_types(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE devices (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
device_type_id INT NOT NULL,
|
||||
rack_id INT,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
rack_position_he INT,
|
||||
rack_height_he INT,
|
||||
serial_number VARCHAR(255),
|
||||
comment TEXT,
|
||||
FOREIGN KEY (device_type_id) REFERENCES device_types(id),
|
||||
FOREIGN KEY (rack_id) REFERENCES racks(id)
|
||||
ON DELETE SET NULL
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE device_ports (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
device_id INT NOT NULL,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
port_type_id INT,
|
||||
status ENUM('active','disabled') DEFAULT 'active',
|
||||
mode VARCHAR(50),
|
||||
vlan_config JSON,
|
||||
FOREIGN KEY (device_id) REFERENCES devices(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE port_types (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
medium ENUM('copper','fiber','coax','other') NOT NULL,
|
||||
comment TEXT
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE connection_types (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
medium ENUM('copper','fiber','coax','other') NOT NULL,
|
||||
duplex ENUM('half','full','custom') DEFAULT 'custom',
|
||||
max_speed VARCHAR(50),
|
||||
color VARCHAR(20),
|
||||
line_style ENUM('solid','dashed','dotted') DEFAULT 'solid',
|
||||
comment TEXT
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE modules (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
module_type VARCHAR(100),
|
||||
comment TEXT
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE module_ports (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
module_id INT NOT NULL,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
port_type_id INT,
|
||||
FOREIGN KEY (module_id) REFERENCES modules(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE device_port_modules (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
device_port_id INT NOT NULL,
|
||||
module_id INT NOT NULL,
|
||||
FOREIGN KEY (device_port_id) REFERENCES device_ports(id)
|
||||
ON DELETE CASCADE,
|
||||
FOREIGN KEY (module_id) REFERENCES modules(id)
|
||||
ON DELETE CASCADE
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE vlans (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
vlan_id INT NOT NULL,
|
||||
name VARCHAR(255),
|
||||
comment TEXT
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE connections (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
connection_type_id INT NOT NULL,
|
||||
|
||||
port_a_type ENUM('device','module','outlet') NOT NULL,
|
||||
port_a_id INT NOT NULL,
|
||||
|
||||
port_b_type ENUM('device','module','outlet') NOT NULL,
|
||||
port_b_id INT NOT NULL,
|
||||
|
||||
vlan_config JSON,
|
||||
mode VARCHAR(50),
|
||||
comment TEXT,
|
||||
|
||||
FOREIGN KEY (connection_type_id) REFERENCES connection_types(id)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
Reference in New Issue
Block a user