Skip to content

TravisDev5x/ekindesk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

125 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tikara

Plataforma de mesa de ayuda y gestión operativa para equipos de soporte TI
Modelo MSP → empresas cliente con aislamiento por tenant, portales por subdominio y control de acceso granular.


Tests License


PHP Laravel React Inertia.js Vite Tailwind CSS


PostgreSQL SQLite Sanctum Radix UI Zod


React Hook Form Axios TanStack Table


Tikara centraliza tickets, incidencias, catálogos, usuarios y permisos en una sola aplicación. Está pensado para MSPs y equipos internos que necesitan trazabilidad, auditoría y portales dedicados por organización.


Características principales

Área Descripción
Helpdesk / Resolbeb Ciclo completo de tickets: creación, asignación, prioridades, estados, comentarios, adjuntos, macros, wallboard y auditoría.
Incidencias Flujo paralelo con tipos, severidades, estados y políticas de visibilidad por área o cliente.
Multi-tenant MSP Operadores MSP con varios clientes; portales por subdominio (portal_slug); scopes en API y RLS opcional en PostgreSQL.
RBAC Roles y permisos con Spatie Laravel Permission; políticas por ticket e incidencia.
Invitaciones Flujo por correo: el invitado activa su cuenta y un administrador asigna el rol; soporte opcional de Google OAuth.
Catálogos Prioridades, estados, tipos, áreas, sedes, campañas, matriz de prioridad y más — scope plataforma + operador MSP.
Notificaciones y auditoría Alertas in-app, exportación de auditoría de tickets, monitor de sesiones y trazabilidad de cambios.

Stack tecnológico

Capa Tecnología
Backend PHP 8.2+, Laravel 12, Sanctum 4, Spatie Permission, Socialite (Google OAuth)
Frontend React 19, Inertia.js 3, Vite 7, Tailwind CSS 4
UI / datos Radix UI, React Hook Form + Zod, Recharts, TanStack Table, Lucide Icons
Datos SQLite (dev/tests), PostgreSQL + RLS (staging/prod)
Auth Sesión stateful Sanctum (cookies), Google OAuth vía Socialite (opcional)

Arquitectura en una imagen

Navegador
   │
   ├─► Rutas web (Inertia)     →  inertia.jsx  →  Inertia/Pages/
   │         login, /home, /resolbeb/*, catálogos, incidencias…
   │
   └─► API REST /api/*         →  Axios + cookie Sanctum
             tickets, users, catalogs, notifications…
  • Un solo frontend: entrada Vite resources/js/inertia.jsx; páginas en resources/js/Inertia/Pages/.
  • API desacoplada: mutaciones y listados JSON bajo /api/* con middleware auth:sanctum y permisos perm:*.
  • Sesión: GET /check-auth (web) valida la cookie; la API no sustituye ese handshake.

Detalle completo: ARCHITECTURE.md.


Requisitos

  • PHP 8.2+
  • Composer 2.x
  • Node.js 20 LTS (o 18+)
  • SQLite para desarrollo local, PostgreSQL para staging/producción
  • Extensiones PHP: openssl, pdo, mbstring, tokenizer, xml, ctype, json, bcmath (y zip recomendado para Composer)

Instalación rápida

git clone https://github.com/TravisDev5x/ekindesk.git tikara
cd tikara

composer install
cp .env.example .env
php artisan key:generate

Configura la base de datos en .env (SQLite o PostgreSQL) y ejecuta:

php artisan migrate:fresh --seed
npm install
npm run build

Desarrollo

composer dev

Arranca servidor Laravel, cola, logs (Pail) y Vite en paralelo.

Acceso local: http://127.0.0.1:8000

Credenciales demo

Ver USUARIOS_DEMO.md. Ejemplo tras seed completo:

Campo Valor
Correo admin@helpdesk.local
Contraseña AdminHelpdesk2025!

El login acepta correo o número de empleado.


Multi-tenant y portales (resumen)

Variables relevantes en .env (ver docs/SANCTUM_TENANCY.md):

TENANCY_BASE_DOMAIN=tikara.test
TENANCY_STRICT_CLIENT_PORTAL=true
SESSION_DOMAIN=.tikara.test
SANCTUM_STATEFUL_DOMAINS=tikara.test,cliente-a.tikara.test,localhost

Cada empresa cliente puede tener un portal en https://{portal_slug}.{base_domain}/login con branding y aislamiento de datos.

Documentación:

Documento Contenido
docs/CLIENT_PORTAL.md Subdominios y portal
docs/DATABASE_TENANCY.md Modelo BD y scopes
docs/MULTITENANT_ROADMAP.md Plan de trabajo
docs/INERTIA_MIGRATION.md Frontend Inertia y URLs legacy

Comandos útiles

# Tests
php artisan test

# Estilo PHP
./vendor/bin/pint

# Verificar integridad client_id en tickets/sedes
php artisan tenant:client-id verify

# Sembrar catálogos al operador MSP (idempotente)
php artisan tenant:seed-catalogs {operator_user_id}

# Build producción frontend
npm run build

Estructura del repositorio

app/                    Modelos, controladores API, servicios, políticas, middleware tenant
resources/js/
  inertia.jsx           Entrada Vite + Inertia
  Inertia/Pages/        Páginas por ruta web
  components/           UI compartida (sidebar, dashboards, formularios)
routes/
  web.php               Vistas Inertia + redirects legacy
  api.php               REST API
  inertia_legacy.php    Compatibilidad URLs antiguas
database/               Migraciones y seeders
docs/                   Tenancy, Sanctum, auditoría API, migración Inertia
tests/Feature/          Tests de tenant, catálogos, invitaciones, tickets

Documentación complementaria

Archivo Descripción
ARCHITECTURE.md Arquitectura multi-módulo
API_CONTRACT.md Contrato de endpoints API
INSTALACION.md Guía de instalación detallada
CLAUDE.md Convenciones para desarrollo asistido
USUARIOS_DEMO.md Usuarios y contraseñas de prueba

Roadmap

Consulta el estado actual en docs/MULTITENANT_ROADMAP.md. Líneas generales:

  • Cierre de fugas tenant en API y CI con PostgreSQL + RLS
  • Branding por portal y seed de catálogos por operador MSP
  • Notificaciones en tiempo real y reportes avanzados
  • Base de conocimiento (Knowledge Base)

Licencia

Proyecto Source Available: el código es público para consulta y referencia. No está permitido copiarlo, redistribuirlo ni usarlo como base de otros productos sin autorización. Ver LICENSE.


Contacto

Eric Rafael Pérez Hernándezgithub.com/TravisDev5x

Consultas: eric_perez96@outlook.com

About

Helpdesk y CRM operativo para equipos de soporte TI: multi-tenant MSP, portales por cliente, tickets, incidencias y auditoría.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors