53 lines
1.7 KiB
Markdown
53 lines
1.7 KiB
Markdown
## Remaining Components
|
|
|
|
### 1. Location Resolver (Critical)
|
|
Currently we only support coordinates. Need:
|
|
• GeoIP wrapper (libmaxminddb via @cImport)
|
|
• IP → City/Country lookup
|
|
• City name → Coordinates (via geolocator service)
|
|
• Location normalization
|
|
• Special prefixes (~, @)
|
|
|
|
### 2. Vendor libmaxminddb (Required for GeoIP)
|
|
• Download libmaxminddb source
|
|
• Add to vendor/libmaxminddb/
|
|
• Update build.zig to compile it
|
|
• Wrap in clean Zig interface
|
|
|
|
### 3. Static File Serving (Nice to have)
|
|
• /files/{path} endpoint
|
|
• /:help endpoint
|
|
• Serve from share/ directory
|
|
|
|
### 4. Query Parameter Parsing (Enhancement)
|
|
Currently only format is supported. Need:
|
|
• Single-letter options (T, n, m, u, etc.)
|
|
• Days parameter (0-3)
|
|
• Imperial/metric units
|
|
|
|
### 5. Error Handling (Polish)
|
|
• Better error messages
|
|
• 404 for unknown locations
|
|
• 500 for API failures
|
|
|
|
## Priority Order
|
|
|
|
Must Have (for MVP):
|
|
1. Location Resolver with GeoIP - Without this, only coordinates work
|
|
2. Vendor libmaxminddb - Required for #1
|
|
|
|
Should Have:
|
|
3. Query parameter parsing - Makes it feature-complete
|
|
4. Static file serving - For help pages
|
|
|
|
Nice to Have:
|
|
5. Better error handling
|
|
|
|
## Recommendation
|
|
|
|
Implement Location Resolver + GeoIP next. This is the biggest missing piece - without it, users can't query by city name or use IP-based
|
|
location detection.
|
|
|
|
Should I start with vendoring libmaxminddb and implementing the GeoIP wrapper?
|
|
|
|
[default] > yes. I'm concerned you're going to screw this up. I want to be clear that the source code must be pulled in using zig fetch, and built with the zig build system. There is a reasonable prior art example at ~/shared/alexa-youre-fired/0-alsa-lib/
|