Skip to content

MAKAN (مكان) Platform, a comprehensive digital addressing and search platform specifically designed for Libya. This platform is built with Rust using a microservices architecture and focuses on managing, searching, and verifying addresses with full Arabic support.

License

Notifications You must be signed in to change notification settings

musbahi-git/makan

MAKAN (مكان) Platform

Digital addressing and search platform for Libya.

Author: Al-Musbahi

Architecture

Microservices platform built with Rust:

  • registry/ - Address storage and management
  • search/ - Full-text search with Arabic support
  • sync-gateway/ - Offline sync and data resilience
  • plates/ - QR/NFC address plates
  • events/ - Temporary addresses & privacy management
  • crowd/ - Community validation

Status

Phase 1.2 Complete: Registry service with PostgreSQL/PostGIS
Phase 1.3 Complete: Search service with Arabic text processing
Phase 1.4 Complete: Smart address plates with QR/NFC integration
Phase 1.5 Complete: Sync gateway with offline-first capabilities
Phase 1.8 Complete: Events service with temporary addresses & privacy management

Quick Start

just dev-up         # Start PostgreSQL
just db-migrate     # Run migrations  
just run-registry   # Start registry API (port 8081)
just run-search     # Start search API (port 8080)
just run-plates     # Start plates API (port 8084)
just run-events     # Start events API (port 8085)
just run-sync       # Start sync gateway (port 8082)

Services

Registry Service

REST API for address CRUD operations with spatial indexing.

Search Service

Tantivy-based search with Arabic dialect support and geographic filtering.

Sync Gateway

CRDT-based offline synchronization with bidirectional conflict resolution.

Smart Address Plates

QR code and NFC-enabled physical plates with Ed25519 cryptographic security.

Events Service

Temporary event addresses with privacy controls, sharing mechanisms, and community integration.

API Examples

# Create address
curl -X POST http://localhost:8081/v1/addresses \
  -H "Content-Type: application/json" \
  -d '{
    "code": "TRIPOLI001",
    "latitude": 32.8872,
    "longitude": 13.1913,
    "street": "Omar Al-Mukhtar Street",
    "landmark": "Martyrs Square"
  }'

# Search addresses  
curl "http://localhost:8081/v1/addresses?limit=10"
curl "http://localhost:8081/v1/addresses?postal_code=10001"

# Search service (Arabic support)
curl "http://localhost:8080/v1/search?q=شارع عمر المختار&lat=32.8872&lon=13.1913"

Development

just check    # Format, lint, test
just build    # Build all services
just test     # Run tests

Built for Libya 🇱🇾

About

MAKAN (مكان) Platform, a comprehensive digital addressing and search platform specifically designed for Libya. This platform is built with Rust using a microservices architecture and focuses on managing, searching, and verifying addresses with full Arabic support.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published