Petfinder

Detalles técnicos

Resumen de arquitectura, tecnologías, prácticas de seguridad y puntos de integración del proyecto.

Arquitectura

  • Aplicación web con backend en Node.js/Express y frontend estático.
  • Persistencia en base de datos relacional MySQL.
  • Rutas públicas para fichas de mascotas mediante ID/QR.
  • API REST para autenticación, gestión de perfil y mascotas.

Stack

Backend

  • Node.js + Express
  • Generación de códigos con librería QR
  • Envío de correos para recuperación de contraseña

Base de datos

  • MySQL/MariaDB
  • Migraciones ligeras al iniciar (ALTER/CREATE IF NOT EXISTS)
  • Tablas: usuarios, mascotas, adopciones, reportes de pérdida, historial médico, fotos, check-ins

Frontend

  • HTML/CSS/JS sin framework para landing y vistas públicas
  • Dashboard con modales para CRUD de mascotas y perfil

Despliegue

  • Rutas y funciones configuradas vía vercel.json
  • Activos estáticos servidos desde /public

Seguridad y privacidad

  • Autenticación basada en tokens y hashing de contraseñas.
  • Control granular de qué datos son públicos en la ficha.
  • Protecciones básicas contra inyección y validaciones en servidor.

Modelo de datos (resumen)

  • Usuarios: perfil, ciudad, enlaces sociales.
  • Mascotas: identificación, ciudad, estado, NFC opcional, QR ID.
  • Relaciones adicionales: adopciones, reportes de pérdida, registros médicos, fotos, check-ins.

API (alto nivel)

  • /api/auth: registro, login, recuperación y reseteo de contraseña.
  • /api/me: perfil del usuario autenticado (GET/PUT).
  • /api/pets: CRUD de mascotas, QR y acciones relacionadas.
  • /p/:id: ficha pública de mascota por QR/ID.

Variables de entorno

  • JWT_SECRET — firma de tokens.
  • DB_HOST, DB_USER, DB_PASSWORD, DB_NAME — conexión a MySQL.
  • RESEND_API_KEY, FROM_EMAIL, APP_BASE_URL — correo y URLs públicas.