Skip to content

Releases: Wal33D/us-school-districts-api

v0.1.6 - Production-Ready US School Districts API

30 Jul 10:12

Choose a tag to compare

🎉 Overview

Updated release of the US School Districts API with corrected versioning. This high-performance, memory-optimized service provides accurate school district lookups based on geographic coordinates using official NCES boundary data.

✨ Key Features

Core Functionality

  • School District Lookup: Get district information by latitude/longitude
  • Batch Lookups: Support for multiple coordinate lookups
  • CLI Tool: Built-in command-line interface for testing
  • Official Data: Uses NCES EDGE geographic boundary data
  • Auto-Updates: Automatically downloads latest shapefile data
  • Memory Optimized: Uses only ~40MB RAM (97% reduction from naive implementation)

Performance Optimizations

  • R-tree Spatial Indexing: O(log n) lookup performance
  • On-Demand Geometry Loading: Loads full geometry only when needed
  • LRU Cache: Caches 100 most recently accessed districts
  • Geometry Simplification: Reduces memory footprint

Production Features

  • Security Middleware: Helmet, CORS, and rate limiting (configurable)
  • Compression: Built-in compression middleware
  • Graceful Shutdown: Proper cleanup on server termination
  • Data Validation: Validates lat/lng bounds
  • Caching Headers: HTTP response caching support
  • Retry Logic: Automatic retry for shapefile downloads
  • Health Checks: Built-in health check endpoint
  • Structured Logging: Winston logger with configurable levels

Developer Experience

  • TypeScript: Full type safety
  • Testing: Jest test suite with comprehensive coverage
  • Linting: ESLint + Prettier with pre-commit hooks
  • Documentation: Comprehensive README and contributing guidelines
  • Error Handling: Proper error classes and middleware

📊 Performance Metrics

  • Memory Usage: ~40MB (vs 1.5GB unoptimized)
  • Startup Time: 5-10 seconds
  • Lookup Time: <50ms (cached), <200ms (uncached)
  • Concurrent Requests: Thousands per second

🤝 Contributing

See CONTRIBUTING.md for guidelines.

📝 License

MIT License - see LICENSE file.


Full Changelog: v0.1.5...v0.1.6