Plataforma para Compartir Imágenes de Flickr

Captura del proyecto

Resumen

Este proyecto es una plataforma desarrollada como parte de mi proceso de formación y práctica profesional. Aunque la idea original y las plantillas base del proyecto no fueron creadas por mí, todo el backend es de mi autoría. El objetivo fue implementar desde cero un sistema funcional donde los usuarios puedan registrarse, crear publicaciones a partir de imágenes de Flickr usando su URL, y generar interacción social mediante comentarios y reacciones. Fue mi primer acercamiento a tecnologías como HTMX, TailwindCSS, django-allauth y al uso de señales en Django, lo cual me permitió ampliar significativamente mis habilidades como desarrollador web.

Créditos, e idea original del proyecto: https://awesomepixx.com/

Tecnologías

  • Backend: Django, Python
  • Frontend: HTMX, TailwindCSS
  • Scraping: BeautifulSoup
  • Autenticación: Django Allauth
  • Base de datos: SQLite, (PostgreSQL en producción)
  • Despliegue: VPS (Linux), Nginx, Gunicorn
  • Control de versiones: Git, GitHub

Características

  • Registro y login de usuarios con creación automática de perfil
  • Publicación de imágenes a partir de URLs de Flickr
  • Extracción automática del autor e imagen usando web scraping
  • Agregado de descripciones y etiquetas personalizadas
  • Sistema de comentarios y reacciones entre usuarios
  • CRUD completo para publicaciones, perfiles y comentarios
  • Interfaz ligera y dinámica usando HTMX
  • Estilos modernos y responsivos con TailwindCSS
  • Uso de señales para automatizar eventos internos (por ejemplo, crear perfil al registrar usuario)

Arquitectura

El sistema sigue el patrón MVC usando Django. El backend gestiona la autenticación, publicaciones, usuarios y comentarios. Se usa BeautifulSoup para analizar el contenido HTML de las URLs de Flickr y extraer datos clave como la imagen y el autor. HTMX permite una experiencia fluida y reactiva en el frontend sin necesidad de frameworks pesados como React o Vue. Se emplean señales de Django para automatizar acciones como la creación de perfiles al registrarse. Se desplegó en un servidor Linux utilizando Nginx como servidor proxy y Gunicorn como WSGI para producción.

Retos

  • Aprender e integrar HTMX para formularios dinámicos
  • Scraping selectivo desde Flickr con manejo de errores
  • Comprensión y uso correcto de señales en Django
  • Adaptación de plantillas externas sin perder coherencia con el backend
  • Autenticación avanzada con Django Allauth
  • Manejo de relaciones entre usuarios, publicaciones y comentarios

Próximos pasos

  • No especificado