# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview Auto-LLD QC is a web-based spatial quality control tool for fiber network designs. It connects to a PostGIS database to run automated QC checks on network segments through a map interface. ## Commands ### Backend Development ```bash cd Backend go run main.go # Start the server (default port 8080) go mod tidy # Clean up dependencies ``` ### Frontend Development - Frontend is static HTML/CSS/JavaScript served from `Frontend/` directory - Open `Frontend/index.html` in browser or use static file server - Backend serves frontend at root path when running ## Architecture ### Backend Structure (Go + Gin) - **main.go**: Main server setup, database connection, API routes - **models/models.go**: GORM database models for segments, sites, poles, access points - **qc/**: Quality control modules (graph_connect.go, handholes.go, segment_single_span.go) - **db/connect.go**: Database connection utilities ### Frontend Structure - **index.html**: Main UI with market/zone dropdowns and QC control buttons - **main.js**: JavaScript handling map display (Leaflet), API calls, QC operations - **styles.css**: UI styling ### Database Integration - Uses PostGIS spatial database with configurable schema/table names - Environment variables in `.env` control database connection and table configuration - Key tables: segments (main data), sites, poles, access_points, map_projects ### API Endpoints - `/api/markets` - Get available market/project options - `/api/zones` - Get zones for selected market - `/api/segments` - Get segment data as GeoJSON - `/api/sites`, `/api/poles`, `/api/access_points` - Get spatial features - `/api/qc/*` - QC check endpoints (connectivity, single-span, etc.) ### QC Module Pattern Each QC check follows this pattern: 1. Separate Go file in `/qc` directory 2. Route registration function called from main.go 3. Returns GeoJSON FeatureCollection of affected segments 4. Updates `qc_flag` column to mark issues ### Environment Configuration Backend uses environment variables for database connection and table/column names: - DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME - SCHEMA_NAME, SEGMENT_TABLE, ZONE_COLUMN, MAPID_COLUMN, etc. - SERVER_PORT for web server port ### Key Technologies - **Backend**: Go 1.24+, Gin web framework, GORM ORM, PostGIS - **Frontend**: Vanilla JavaScript, Leaflet.js for maps, Turf.js for spatial operations - **Database**: PostgreSQL with PostGIS extension