This project corresponds to the ORBIDI's technical interview, a simple backend for the app 'My Map World' using FastAPI, PostGIS, and Alembic.
-
Geospatial Capabilities:
- Supports geometry types like
POINT
,LINESTRING
, andPOLYGON
. - Enables spatial queries (
ST_Distance
,ST_Within
, etc.) for complex geospatial computations.
- Supports geometry types like
-
Performance:
- Spatial Indexing:
GIST
andSPGIST
indexes improve query speed for location-based searches. - Efficient proximity queries, e.g., "find locations within a radius."
- Spatial Indexing:
-
Flexibility:
- Compatible with GeoJSON, KML, WKT, and supports multiple SRIDs for global precision.
- Rich geospatial functions for advanced operations (e.g., intersections, area calculations).
-
Future-Proof:
- Scales efficiently with large geospatial datasets.
- Supports advanced features like routing, clustering, and heatmaps for future enhancements.
-
Developer-Friendly:
- Centralizes spatial logic in SQL, reducing complexity and boosting productivity.
docker compose -f docker-compose.yml build
docker compose -f docker-compose.yml up -d
docker compose -f docker-compose.yml run --rm web alembic upgrade head
You'll find the swagger documentation at http://localhost:8000/docs
Este proyecto corresponde a la prueba Técnica de ORBIDI para la posición de Senior Backend Developer, un backend simple para la app 'Map My World', el proyecto usa FastAPI, PostGIS, y Alembic.
-
Capacidades Geoespaciales:
- PostGIS soporta tipos geométricos como
POINT
,LINESTRING
, yPOLYGON
. - PostGIS permite realizar queries espaciales (
ST_Distance
,ST_Within
, etc.) para realizar operaciones espaciales complejas.
- PostGIS soporta tipos geométricos como
-
Rendimiento:
- Índices: Los índices de
GIST
ySPGIST
mejoran los tiempos de las queries orientadas a ubicación. - Eficiencia en queries de proximidad, por ejemplo: "Encontrar ubicaciones dentro de un radio."
- Índices: Los índices de
-
Flexibilidad:
- PostGIS es compatible con GeoJSON, KML, WKT, y soporta múltiples SRIDs para precisión global.
- Cuenta con soporte de funciones avanzadas geoespaciales (intersecciones, cálculo de áreas).
-
Diseño pensado en el futuro:
- PostGIS escala de forma eficiente con grandes cantidades de datos geoespaciales.
- Soporte de características avanzadas como routing, clustering, y heatmaps, ideales para futuras mejoras.
-
Developer-Friendly:
- Centraliza la lógica y manipulación de datos espaciales en la base de datos, reduciendo así la complejidad del desarrollo.
docker compose -f docker-compose.yml build
docker compose -f docker-compose.yml up -d
docker compose -f docker-compose.yml run --rm web alembic upgrade head
La documentación de Swagger se puede consultar en: http://localhost:8000/docs