Kafra Memories

Lead Software Engineer

Plataforma de planificación de eventos y citas con geolocalización avanzada. Diseñé la arquitectura Full-Stack utilizando Next.js para una experiencia de usuario fluida y un robusto backend en Django para la gestión compleja de estados de citas, procesamiento de imágenes y control de acceso. Implementé el despliegue mediante Nginx, asegurando un entorno escalable y optimizado para múltiples dispositivos.

Plataforma vista escritorio
Plataforma vista responsiva

La Idea


Cuando salía con mis amigos o pareja, muchas veces nos quedábamos sin ideas sobre qué hacer o a dónde ir. Pero cuando estábamos haciendo otra cosa, nos llegaban las ideas: “Deberíamos ir a tal lugar”, “Hay que hacer esto”, “Tenemos que probar aquello”, etc.


Entonces ahí fue cuando se me ocurrió hacer esta aplicación. Con el objetivo de que, cuando se nos ocurriera una idea de cita o de salida con amigos, pudiéramos guardarla para consultarla después al momento de querer hacer algo.


Cuando encuentres algo interesante que hacer: ¡tómale una foto, abre kaframemories.com y captura tu próxima aventura!

Manejo de Imágenes y Rendimiento (Cloudinary + PostgreSQL)


Kafra Memories es una aplicación basada en fotos. Guardar las imágenes directamente en un VPS económico iba a saturar el disco y el ancho de banda rápidamente.

Manejo de Imágenes y Rendimiento (Cloudinary + PostgreSQL)

La solución fue separar las responsabilidades: uso PostgreSQL estrictamente para los datos de texto y relaciones de usuarios, y delego todo el almacenamiento de imágenes a Cloudinary, guardando solo las rutas de las imágenes en la base de datos.


Esto mantiene mi servidor principal ligero, asegura que las fotos carguen rápido mediante una CDN y me ahorra costos de infraestructura al no almacenar archivos pesados.

Mapas


Integré la API de Google Maps, permitiendo no solo guardar un recuerdo de texto, sino anclarlo a coordenadas exactas, transformando una simple base de datos en un mapa interactivo de experiencias.

Mapas

Los Datos


El backend está construido con Django REST Framework. Para garantizar la escalabilidad horizontal en el futuro, diseñé la API de forma Stateless utilizando JSON Web Tokens (JWT) para la autenticación, evadiendo la dependencia de sesiones tradicionales en base de datos.

Automatización y Despliegue (CI/CD)


Quería pasar más tiempo programando y menos configurando el servidor, así que automaticé el despliegue. Dockericé la aplicación para garantizar que mi entorno local fuera idéntico al de producción. Armé un pipeline con GitHub Actions que actualiza el código en mi VPS automáticamente con cada push.