How christophervallesalazar/la-water-watch works
LA Water Watch presents water-system conditions and environmental burden through a map-oriented frontend and a Spring API. The documented backend workflow loads public datasets into persistent records, then serves map, system-detail, ranking, metadata, and address-lookup responses; address lookup geocodes an address before testing it against system boundaries. The frontend excerpt uses demo records and local state, and does not show API wiring, so no frontend-to-API connection is asserted. Some backend subsystem links rely on SOURCE INDEX references rather than full excerpts.
Main entry points: DataLoader.java Data loader · WaterSystemService.java System queries · repository Data repositories · App.tsx Explore page
Components 20
Web experience
- Explore page
frontend/src/App.tsx - Address search
frontend/src/AddressSearch.tsx - Map view
frontend/src/MapView.tsx
API and scoring
- Water endpoints
water-api/src/main/java/org/lawaterwatch/api/controller/WaterController.java - System queries
water-api/src/main/java/org/lawaterwatch/api/service/WaterSystemService.java - Geometry operations
water-api/src/main/java/org/lawaterwatch/api/service/GeoJsonGeometry.java - Address geocoder
water-api/src/main/java/org/lawaterwatch/api/client/CensusGeocodeClient.java - Map response cache
water-api/src/main/java/org/lawaterwatch/api/service/MapResponseCache.java
Data ingestion
- Data loader
water-api/src/main/java/org/lawaterwatch/api/bootstrap/DataLoader.java - Load mappers
water-api/src/main/java/org/lawaterwatch/api/bootstrap/LoadMappers.java - Boundary client
water-api/src/main/java/org/lawaterwatch/api/client/SablClient.java - Violation client
water-api/src/main/java/org/lawaterwatch/api/client/EpaViolationClient.java - CalEnviroScreen client
water-api/src/main/java/org/lawaterwatch/api/client/CalEnviroScreenClient.java
Persistence
- Data repositories
water-api/src/main/java/org/lawaterwatch/api/repository - Water-system records
water-api/src/main/java/org/lawaterwatch/api/entity/WaterSystem.java - water.db
Other components
- Resident
- API client
- Census geocoder
- Public data services
Connections 20
- Resident → Explore page: uses
frontend/src/App.tsx - Explore page → Address search: renders
frontend/src/App.tsx - Explore page → Map view: renders
frontend/src/App.tsx - API client → Water endpoints: requests
water-api/src/main/java/org/lawaterwatch/api/controller/WaterController.java - Water endpoints → System queries: delegates
water-api/src/main/java/org/lawaterwatch/api/controller/WaterController.java - Water endpoints → Map response cache: gets map
water-api/src/main/java/org/lawaterwatch/api/controller/WaterController.java - System queries → Address geocoder: geocodes
water-api/src/main/java/org/lawaterwatch/api/service/WaterSystemService.java - Address geocoder → Census geocoder: queries
water-api/src/main/java/org/lawaterwatch/api/client/CensusGeocodeClient.java - System queries → Geometry operations: rounds geometry
water-api/src/main/java/org/lawaterwatch/api/service/WaterSystemService.java - System queries → Data repositories: queries
water-api/src/main/java/org/lawaterwatch/api/service/WaterSystemService.java - Data loader → Boundary client: fetches boundaries
water-api/src/main/java/org/lawaterwatch/api/bootstrap/DataLoader.java - Data loader → Violation client: fetches violations
water-api/src/main/java/org/lawaterwatch/api/bootstrap/DataLoader.java - Data loader → CalEnviroScreen client: fetches indicators
- Data loader → Load mappers: maps records
water-api/src/main/java/org/lawaterwatch/api/bootstrap/LoadMappers.java - Boundary client → Public data services: requests data
water-api/src/main/java/org/lawaterwatch/api/client/SablClient.java - Violation client → Public data services: requests data
water-api/src/main/java/org/lawaterwatch/api/client/EpaViolationClient.java - CalEnviroScreen client → Public data services: requests data
water-api/src/main/java/org/lawaterwatch/api/client/CalEnviroScreenClient.java - Data loader → Data repositories: persists data
water-api/src/main/java/org/lawaterwatch/api/bootstrap/DataLoader.java - Data repositories → water.db: reads and writes
water-api/src/main/java/org/lawaterwatch/api/repository/WaterSystemRepository.java - Data repositories → Water-system records: stores entities
water-api/src/main/java/org/lawaterwatch/api/repository/WaterSystemRepository.java