NestJS Nominatim

Personal Project
NestJS Nominatim

Overview

Developed a powerful and easy-to-use NestJS library for integrating with the Nominatim API (OpenStreetMap geocoding service). This library provides a clean, type-safe interface for performing geocoding, reverse geocoding, and place lookups. It features configurable in-memory and Redis caching for improved performance, multi-language support, health checks, and a native NestJS module with dependency injection.

Key Features

  • Forward Geocoding: Search for places by name or address
  • Reverse Geocoding: Get address information from coordinates
  • Place Lookup: Retrieve detailed information by OSM ID
  • Built-in configurable caching for improved performance (in-memory or Redis)
  • Native NestJS module with dependency injection
  • Multi-language address formatting
  • Type-safe with comprehensive interfaces
  • Built-in API health monitoring

Technical Challenges

  • Designing a robust built-in caching system across in-memory and Redis stores
  • Structuring comprehensive interfaces and TypeScript types for various Nominatim API responses
  • Providing a flexible and safe configuration factory for NestJS injection
Aug 2024

Technologies Used

NestJSTypeScriptNominatim APIOpenStreetMapREST APICaching