DVDr es una herramienta web simple, gratuita y de código abierto para calcular y dividir gastos compartidos entre amigos, familiares o compañeros de viaje. Registra quién pagó qué y salda las deudas fácilmente, todo sin necesidad de crear una cuenta.
- Sin cuentas, sin servidores: Todo se ejecuta en tu navegador y los datos se guardan localmente.
- Gestión de personas: Añade, edita y elimina participantes fácilmente.
- Registro flexible de transacciones:
- Gastos: Con división a partes iguales o personalizadas.
- Ajustes: Para premios, multas o bonificaciones.
- Transferencias: Para registrar pagos directos entre personas.
- Cálculo automático: Obtén un resumen simplificado de quién debe pagar a quién.
- Divisiones guardadas y persistencia: Guarda tus divisiones para más tarde y cárgalas cuando las necesites.
- Comparte fácilmente: Genera un enlace único para compartir el estado actual de la división con otros.
- Crea o únete a una sala: Trabaja en la misma división con otras personas en tiempo real usando Firebase Realtime Database.
- Presencia en línea: Ve quién está conectado con indicadores de estado (🟢 online / ⚪ offline).
- Roles: El creador de la sala tiene permisos de administrador (👑) para gestionar participantes y datos.
- Invitaciones directas: Genera enlaces personalizados con nombre pre-asignado para que otros se unan con un solo clic.
- Renombrado remoto: El admin puede cambiar nombres de usuarios conectados, y estos reciben la actualización en tiempo real.
- Auto-reconexión: Si abrís un enlace de sala, DVDr recuerda tu nombre de la última sesión y te reconecta automáticamente.
- Limpieza automática: Las salas inactivas por más de 7 días se eliminan automáticamente.
- Instalable: Añadí DVDr a tu pantalla de inicio desde el navegador para usarla como una app nativa.
- Funciona offline: Gracias al Service Worker, la app se carga incluso sin conexión a internet.
- Actualizaciones automáticas: Recibí un aviso cuando haya una nueva versión disponible y actualizá con un toque.
- Datos de demostración: Cargá datos de ejemplo para explorar todas las funciones sin tener que ingresar datos reales.
- Copiado de resúmenes: Copiá al portapapeles un resumen corto o detallado de las deudas, ideal para compartir por chat.
- Resumen de totales: Consultá cuánto pagó cada persona y cuánto le correspondía pagar.
- Changelog integrado: Consultá las novedades de cada versión directamente desde la app, con datos obtenidos de los releases de GitHub.
- Edición de transacciones: Editá cualquier transacción existente sin necesidad de borrarla y volver a crearla.
- Confirmaciones de seguridad: Todas las acciones destructivas requieren confirmación explícita.
Simplemente abre dvdr.vercel.app y empieza a usarla.
- Añade personas: Usa el primer formulario para añadir a todos los participantes.
- Registra transacciones: Ve a la sección de "Registra las transacciones" para añadir gastos, ajustes o transferencias.
- Consulta las deudas: El "Resumen de deudas" se actualizará automáticamente mostrando la forma más simple de saldar las cuentas.
- Hacé clic en el botón "👤 Personal" en la cabecera.
- Creá una sala con un nombre de evento y tu nombre, o uníte con un código existente.
- Compartí el enlace o código de sala para que otros se sumen en tiempo real.
- Alpine.js — Framework reactivo ligero
- Firebase Realtime Database — Sincronización en tiempo real
- Vanilla CSS — Estilos personalizados sin frameworks
- Service Worker — Soporte offline y PWA
Para ejecutar este proyecto localmente:
- Clona el repositorio:
git clone https://github.com/CrysoK/DVDr.git - Abre el archivo
index.htmlen tu navegador web.
Nota: Las funciones de salas colaborativas requieren conexión a internet para comunicarse con Firebase.
-
Actualizar la versión en el código:
script.js→APP_VERSION(ej:'2.0.1')sw.js→CACHE_NAME(ej:'dvdr-cache-v2.0.1')
-
Commit y push:
git add . git commit -m "Bump version to X.Y.Z" git push
-
Crear el tag:
git tag vX.Y.Z git push origin vX.Y.Z
-
Crear el Release en GitHub:
- Ir a Releases
- Seleccionar el tag
vX.Y.Z - Título:
vX.Y.Z - Escribir el changelog en el body (formato lista markdown)
- Publicar
-
Desplegar a producción en Vercel:
vercel --prod
Tip: La app muestra las novedades al usuario directamente desde los GitHub Releases, así que el body del release es lo que van a leer los usuarios en la sección "Novedades".