alex 12407b74e4 Initial commit - Stage 1 working version
Saving current working state before proceeding to Stage 2.
Includes:
- Backend: Python-based QC validator with shapefile processing
- Frontend: Drag-and-drop file upload interface
- Sample files for testing
- Documentation and revision history

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 13:43:57 -07:00
..

Auto-LLD QC

Auto-LLD QC is a web-based spatial quality control (QC) tool designed to automate verification checks for fiber network designs. It connects to a PostGIS database and enables users to filter data by market and zone, then run various spatial QC checks via a clean map interface.

🗺️ What It Does

  • Allows users to select a market and zone from dropdowns to load relevant data.
  • Displays map data using Leaflet.js and Turf.js.
  • Enables multiple QC operations via user-triggered buttons:
    • Graph connectivity — ensures all segments are spatially connected.
    • Single-span check — validates that each segment has exactly two vertices.
    • Underground termination check — verifies underground segments end at a pole or handhole.
    • Site presence and location — confirms that sites exist and fall within the correct zone.

🧰 Tech Stack

  • Frontend: HTML, CSS, JavaScript, Leaflet.js, Turf.js
  • Backend: Go (Golang) with Gin
  • Database: PostgreSQL with PostGIS extension
  • Deployment target: Web application (self-hosted or internal use)

📂 Project Structure

auto-lld-qc/
├── frontend/
│   ├── index.html
│   ├── main.js
│   └── styles.css
├── backend/
│   ├── main.go
│   ├── .env
│   ├── go.mod / go.sum
│   ├── models/
│   │   └── models.go
│   └── qc/
│       ├── graph_connect.go
│       ├── handholes.go
│       └── segment_single_span.go
⚙️ Setup & Usage
Prerequisites
Go 1.20+

PostgreSQL + PostGIS

Node.js (optional, for frontend bundling or tooling)

1. Clone the repo
bash
Copy
Edit
git clone https://github.com/yourusername/auto-lld-qc.git
cd auto-lld-qc
2. Configure environment
In backend/.env, set the following variables:

env
Copy
Edit
DB_HOST=your-db-host
DB_PORT=5432
DB_USER=your-user
DB_PASSWORD=your-password
DB_NAME=your-db
3. Run the backend
bash
Copy
Edit
cd backend
go run main.go
4. Open the frontend
Open frontend/index.html in a browser (or serve via a static file server like http-server or Gin).

✅ QC Features (Complete & Planned)
Feature	Status
Graph connectivity check	✅ Done
Segment single-span (2 vertices)	✅ Done
Handhole/Pole connection check	✅ Done
Site existence + zone inclusion	⏳ Planned
Permit validation	⏳ Planned
Access point location validation	⏳ Planned

📌 To-Do
 Complete remaining QC features (site checks, permits, access points)

 Add UI loading indicators and error handling

 Optionally dockerize for easier deployment

 Write unit tests for backend QC logic

🧑‍💻 Developer Notes
Uses GORM for Go/Postgres ORM modeling.

Turf.js handles spatial logic like intersections and geometry analysis on the frontend.

Each QC module is implemented in a separate .go file under /qc, with a dedicated API route.

Modular structure allows for easy addition of new QC checks.

📃 License
MIT License