Custodia Compartida
Iván Bazaga
Desarrollador Junior
Demo access
Tarjeta de acceso de prueba
Aquí tienes las credenciales asignadas para que puedas entrar al proyecto de demostración.
Usuario de prueba
test@usuario.com
Contraseña de prueba
12345678
# Calendario Custodia Compartida
Aplicación web para gestionar calendarios de custodia compartida. Permite a cada familia/usuario tener su propio calendario, planificar días de custodia, configurar los nombres de los progenitores (padre/madre/tercero) y compartir/controlar accesos mediante códigos. Incluye panel administrativo para gestionar usuarios y calendarios.
# Tabla de contenidos
- Estado
- Características
- Requisitos
- Instalación
- Uso
- Configuración
- Desarrollo
- Pruebas
- Contribuir
- Licencia
- Autor
# Estado
En desarrollo. Lista de funcionalidades implementadas y parcheadas localmente.
# Características
- Calendarios por usuario y por familia (cada calendario es independiente)
- CRUD de días de custodia (API REST interna)
- Configuración por calendario: nombres de padre, madre y tercero
- Gestión de usuarios y calendarios desde panel admin
- Control de sesiones y autenticación básica
- Scripts de diagnóstico y migración incluidos para entornos locales
# Requisitos
- Apache 2.4+, PHP 8.x (extensiones PDO/MySQL), MySQL/MariaDB
- Composer (opcional para dependencias PHP si se añaden)
- Navegador moderno (Chrome/Firefox) para la interfaz
# Instalación (entorno local)
- Clona el repositorio dentro de tu DocumentRoot de Apache (ej. C:\Apache24\htdocs):
git clone
cd Calendario-Custodia - Crea la base de datos e importa el esquema:
-- usa el archivo SQL incluido
mysql -u root -p calendario_custodia < sql/install.sql- Copia y ajusta el archivo
.envsi es necesario (BASE_URL, credenciales DB). - Asegúrate de que Apache sirve el directorio y que
mod_rewriteestá activo.
# Uso
Abre en el navegador:
http://localhost/Calendario-Custodia/Rutas útiles:
/auth/registro— registrar nuevo usuario/auth/login— iniciar sesión/— vista del calendario (necesita autenticación)/admin— panel de administración (solo usuarios con roladmin)
API internas:
views/api— endpoint principal para CRUD dedias_custodiay config (?config=1)app/controllers/admin-api-calendarios.php— API admin para asignar/remover usuarios a calendarios
# Configuración
Principales variables en .env:
BASE_URL— base URL del proyecto (ej.http://localhost/Calendario-Custodia)- Variables de conexión a base de datos (definidas en
app/database/db.phpo.envsegún configuración)
Archivo SQL principal: sql/install.sql (tablas: usuarios, calendarios, usuarios_calendarios, config, dias_custodia).
# Desarrollo
- Sigue el flujo habitual de Git para crear ramas y PRs.
- Respeta convenciones de nombres y estructura de PHP/JS del proyecto.
Scripts de ayuda incluidos (local):
debug_db.php— muestra tablas y relaciones (ubicado en la raíz del proyecto)migrate_calendarios.php— crea calendarios faltantes para usuarios existentesvalidate_calendarios.php— valida/crea calendarios para garantizar que cada usuario tenga uno propio
Estos scripts son utilitarios para desarrollo local y debugging; no deben exponerse en producción sin protección.
# Pruebas
No existe suite automática incluida. Para verificar manualmente:
- Registrar dos usuarios distintos y comprobar que cada uno tenga su propio calendario y configuración.
- Usar
debug_db.phpyvalidate_calendarios.phppara inspeccionar/crear calendarios en desarrollo.
# Contribuir
- Abre un issue describiendo la mejora o bug.
- Crea una rama
feat/...ofix/..., implementa y abre PR con descripción clara.
# Licencia
Por defecto incluye LICENSE.md en el repositorio. Revisa el archivo para conocer los términos.
# Autor
Iván Bazaga — desarrollo y mantenimiento.
Contacto y referencias están en el repositorio (sección Autor previa). Si quieres, actualizo la sección de autor con detalles adicionales.
Comparte este proyecto
¿Te ha gustado este proyecto? ¡Compártelo con tu red!