La Base Cowork es una plataforma web moderna para la gestión integral de espacios de coworking, específicamente diseñada para el espacio ubicado en Huancayo, Perú - Edificio Torre Galena 234, décimo piso.
La plataforma facilita la administración de reservas, gestión de usuarios, control de acceso y seguimiento de actividades en tiempo real, proporcionando una experiencia fluida tanto para administradores como para usuarios del coworking.
- Administradores: Gestión completa del espacio, reservas, usuarios y análisis de ocupación
- Usuarios/Clientes: Reserva de espacios, seguimiento de reservas y acceso a servicios
- Propietarios: Monitoreo de KPIs, rentabilidad y optimización del espacio
- Login y registro de usuarios
- Recuperación de contraseña
- Cambio de contraseña
- Gestión de sesiones con JWT
- Sistema de roles (Admin/Cliente)
- Guards de autenticación y autorización
- Perfiles de usuario personalizables
- Para Clientes:
- Crear nuevas reservas
- Ver mis reservas
- Gestionar reservas existentes
- Para Administradores:
- Vista de calendario completo
- Gestión de todas las reservas
- Escáner QR para check-in/check-out
- Detalles completos de reservas
- Vista de calendario integrada
- Gestión de inventario y espacios
- Análisis de ocupación
- Control de acceso por código QR
- React 19.1.0 - Librería de UI con las últimas características
- TypeScript - Tipado estático para mayor robustez
- Vite 7.0.0 - Build tool ultrarrápido con HMR
- TailwindCSS 4.1.11 - Framework CSS utility-first
- shadcn/ui - Componentes accesibles y customizables (estilo New York)
- Lucide React - Iconos SVG optimizados
- CSS Variables - Sistema de design tokens personalizable
- Zustand - Estado global ligero y eficiente
- TanStack Query v5 - Gestión de datos asíncronos y cache
- React Router DOM v6 - Navegación y routing
- Axios - Cliente HTTP con interceptors personalizados
- Manejo de errores - Sistema robusto de mensajes de error
- ESLint - Linting con reglas estrictas
- TypeScript ESLint - Reglas específicas para TypeScript
- React Query DevTools - Herramientas de desarrollo
labase-client/
├── src/
│ ├── components/ # Componentes reutilizables
│ │ ├── guards/ # Guards de autenticación y roles
│ │ ├── layouts/ # Layouts principales (Core, Sidebar)
│ │ └── ui/ # Componentes de UI (shadcn/ui)
│ ├── hooks/ # Custom hooks
│ │ ├── use_auth/ # Hook de autenticación
│ │ └── use_title/ # Hook para títulos dinámicos
│ ├── modules/ # Módulos por feature
│ │ ├── admin/ # Funcionalidades de administración
│ │ │ ├── calendar/ # Gestión de calendario
│ │ │ └── reservations/ # Gestión de reservas (admin)
│ │ ├── client/ # Funcionalidades de cliente
│ │ │ └── reservations/ # Gestión de reservas (cliente)
│ │ └── shared/ # Módulos compartidos
│ │ ├── auth/ # Autenticación
│ │ └── error/ # Páginas de error
│ ├── routes/ # Configuración de rutas
│ │ ├── admin_routes/ # Rutas de administración
│ │ ├── auth_routes/ # Rutas de autenticación
│ │ ├── client_routes/ # Rutas de cliente
│ │ └── app_routes/ # Rutas principales
│ ├── services/ # Servicios de API
│ ├── store/ # Gestión de estado (Zustand)
│ ├── types/ # Definiciones de tipos TypeScript
│ ├── utilities/ # Utilidades y helpers
│ ├── interceptors/ # Interceptors de Axios
│ ├── config/ # Configuración del proyecto
│ └── styles/ # Estilos globales
└── public/ # Archivos estáticos
El proyecto utiliza archivos index.ts en cada módulo para encapsular y exportar funcionalidades:
// Ejemplo: src/components/guards/index.ts
export { default as AuthGuard } from "./auth_guard";
export { default as GuestGuard } from "./guest_guard";
export { default as RoleGuard } from "./role_guard";- Node.js 18+
- npm o yarn
git clone https://github.com/labasecowork/labase-client.git
cd labase-clientnpm install
# o
yarn installCrear un archivo .env en la raíz del proyecto:
# Configuración de la API
VITE_API_BASE_URL=http://localhost:3000
VITE_API_BASE_URL_PROD=https://api.LaBaseCowork.com
# Configuración de desarrollo
VITE_ENV=developmentnpm run dev
# o
yarn devLa aplicación estará disponible en http://localhost:5173
| Comando | Descripción |
|---|---|
npm run dev |
Inicia el servidor de desarrollo |
npm run build |
Genera el build de producción |
npm run preview |
Previsualiza el build de producción |
npm run lint |
Ejecuta ESLint para verificar código |
{
"style": "new-york",
"tailwind": {
"baseColor": "neutral",
"cssVariables": true
},
"iconLibrary": "lucide"
}El proyecto utiliza TailwindCSS v4 con configuración inline y soporte para modo oscuro.
/login- Iniciar sesión/register- Registrar cuenta/recover-password- Recuperar contraseña/change-password- Cambiar contraseña
/client/reservations- Ver mis reservas/client/reservations/create- Crear reserva/client/reservations/:id- Detalle de reserva
/admin/calendar- Vista de calendario/admin/reservations- Gestión de reservas/admin/reservations/:id- Detalle de reserva/admin/reservations/scan-qr- Escáner QR
La aplicación implementa un sistema robusto de autenticación con:
- JWT Tokens almacenados en localStorage
- Guards de rutas para proteger contenido
- Interceptors automáticos para incluir tokens en requests
- Refresh de sesión automático
- Manejo de errores de autenticación
Sistema completo de manejo de errores con:
- Mensajes personalizados para cada código HTTP
- Páginas de error específicas (404, 500)
- Interceptors para manejo automático
- Notificaciones al usuario
- Diseño adaptativo para desktop, tablet y móvil
- Componentes optimizados para diferentes tamaños de pantalla
- Lazy loading de componentes
- Optimización de queries con React Query
- Code splitting automático con Vite
- Componentes accesibles con shadcn/ui
- Navegación por teclado
- Soporte para lectores de pantalla
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -m 'Agrega nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Este proyecto está bajo la licencia MIT. Ver el archivo LICENSE para más detalles.
- Desarrollo: Equipo de desarrollo La Base Cowork
- Ubicación: Edificio Torre Galena 234, décimo piso - Huancayo, Perú
Para más información técnica, consulta la documentación de arquitectura.