Add Road Trip Planner template with interactive map and trip management features

- Implemented a new HTML template for the Road Trip Planner.
- Integrated Leaflet.js for interactive mapping and routing.
- Added functionality for searching and selecting parks to include in a trip.
- Enabled drag-and-drop reordering of selected parks.
- Included trip optimization and route calculation features.
- Created a summary display for trip statistics.
- Added functionality to save trips and manage saved trips.
- Enhanced UI with responsive design and dark mode support.
This commit is contained in:
pacnpal
2025-08-15 20:53:00 -04:00
parent da7c7e3381
commit b5bae44cb8
99 changed files with 18697 additions and 4010 deletions

129
scripts/ci-start.sh Executable file
View File

@@ -0,0 +1,129 @@
#!/bin/bash
# ThrillWiki Local CI Start Script
# This script starts the Django development server following project requirements
set -e # Exit on any error
# Configuration
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
LOG_DIR="$PROJECT_DIR/logs"
PID_FILE="$LOG_DIR/django.pid"
LOG_FILE="$LOG_DIR/django.log"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Logging function
log() {
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
log_success() {
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
log_error() {
echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
# Create logs directory if it doesn't exist
mkdir -p "$LOG_DIR"
# Change to project directory
cd "$PROJECT_DIR"
log "Starting ThrillWiki CI deployment..."
# Check if UV is installed
if ! command -v uv &> /dev/null; then
log_error "UV is not installed. Please install UV first."
exit 1
fi
# Stop any existing Django processes on port 8000
log "Stopping any existing Django processes on port 8000..."
if lsof -ti :8000 >/dev/null 2>&1; then
lsof -ti :8000 | xargs kill -9 2>/dev/null || true
log_success "Stopped existing processes"
else
log "No existing processes found on port 8000"
fi
# Clean up Python cache files
log "Cleaning up Python cache files..."
find . -type d -name "__pycache__" -exec rm -r {} + 2>/dev/null || true
log_success "Cache files cleaned"
# Install/update dependencies
log "Installing/updating dependencies with UV..."
uv sync --no-dev || {
log_error "Failed to sync dependencies"
exit 1
}
# Run database migrations
log "Running database migrations..."
uv run manage.py migrate || {
log_error "Database migrations failed"
exit 1
}
# Collect static files
log "Collecting static files..."
uv run manage.py collectstatic --noinput || {
log_warning "Static file collection failed, continuing anyway"
}
# Start the development server
log "Starting Django development server with Tailwind..."
log "Server will be available at: http://localhost:8000"
log "Press Ctrl+C to stop the server"
# Start server and capture PID
uv run manage.py tailwind runserver 0.0.0.0:8000 &
SERVER_PID=$!
# Save PID to file
echo $SERVER_PID > "$PID_FILE"
log_success "Django server started with PID: $SERVER_PID"
log "Server logs are being written to: $LOG_FILE"
# Wait for server to start
sleep 3
# Check if server is running
if kill -0 $SERVER_PID 2>/dev/null; then
log_success "Server is running successfully!"
# Monitor the process
wait $SERVER_PID
else
log_error "Server failed to start"
rm -f "$PID_FILE"
exit 1
fi
# Cleanup on exit
cleanup() {
log "Shutting down server..."
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if kill -0 $PID 2>/dev/null; then
kill $PID
log_success "Server stopped"
fi
rm -f "$PID_FILE"
fi
}
trap cleanup EXIT INT TERM