version 2.0 | refactor

changed structure of codebase. also include docker files for easy deployment
This commit is contained in:
2025-12-03 15:07:36 -07:00
parent 456d486d39
commit a709c80f38
21 changed files with 2532 additions and 81535 deletions

98
init-db.sql Normal file
View File

@@ -0,0 +1,98 @@
CREATE TABLE routes (
route_id VARCHAR(50) PRIMARY KEY,
agency_id VARCHAR(50),
route_short_name VARCHAR(50),
route_long_name VARCHAR(255),
route_desc TEXT,
route_type INT,
route_url VARCHAR(255),
route_color VARCHAR(10),
route_text_color VARCHAR(10)
);
CREATE TABLE trips (
trip_id VARCHAR(50) PRIMARY KEY,
route_id VARCHAR(50),
service_id VARCHAR(50),
shape_id VARCHAR(50),
trip_headsign VARCHAR(255),
trip_short_name VARCHAR(50),
direction_id INT,
block_id VARCHAR(50),
wheelchair_accessible INT,
bikes_allowed INT,
FOREIGN KEY (route_id) REFERENCES routes(route_id)
);
CREATE TABLE stops (
stop_id VARCHAR(50) PRIMARY KEY,
stop_code VARCHAR(50),
stop_name VARCHAR(255),
stop_desc TEXT,
stop_lat DOUBLE,
stop_lon DOUBLE,
zone_id VARCHAR(50),
stop_url VARCHAR(255),
location_type INT DEFAULT NULL,
parent_station VARCHAR(50),
stop_timezone VARCHAR(50),
wheelchair_boarding INT DEFAULT NULL
);
CREATE TABLE stop_times (
trip_id VARCHAR(50),
arrival_time VARCHAR(20),
departure_time VARCHAR(20),
stop_id VARCHAR(50),
stop_sequence INT,
stop_headsign VARCHAR(255),
pickup_type INT,
drop_off_type INT,
shape_dist_traveled DOUBLE NOT NULL DEFAULT 0
timepoint INT,
PRIMARY KEY (trip_id, stop_id, stop_sequence),
FOREIGN KEY (trip_id) REFERENCES trips(trip_id),
FOREIGN KEY (stop_id) REFERENCES stops(stop_id)
);
CREATE TABLE shapes (
shape_id VARCHAR(50),
shape_pt_lat DOUBLE,
shape_pt_lon DOUBLE,
shape_pt_sequence INT,
shape_dist_traveled DOUBLE,
PRIMARY KEY (shape_id, shape_pt_sequence)
);
-- Realtime: vehicle positions
CREATE TABLE rt_vehicle_positions (
vehicle_id VARCHAR(50),
trip_id VARCHAR(50),
route_id VARCHAR(50),
lat DOUBLE,
lon DOUBLE,
bearing INT,
speed DOUBLE,
timestamp BIGINT,
PRIMARY KEY (vehicle_id)
);
-- Realtime: trip updates
CREATE TABLE rt_trip_updates (
trip_id VARCHAR(50),
stop_id VARCHAR(50),
arrival_time BIGINT,
departure_time BIGINT,
delay INT,
schedule_relationship VARCHAR(20),
PRIMARY KEY (trip_id, stop_id),
FOREIGN KEY (stop_id) REFERENCES stops(stop_id)
);
-- Realtime: alerts
CREATE TABLE rt_alerts (
alert_id VARCHAR(50) PRIMARY KEY,
header TEXT,
description TEXT,
cause VARCHAR(50),
effect VARCHAR(50),
timestamp BIGINT
);