Sistema completo de seguimiento de tiempo para equipos de desarrollo con aplicación de escritorio y backend API.
DeployTime es un sistema de time tracking diseñado para colaboradores y administradores que permite:
- Trackear tiempo trabajado en tareas específicas
- Gestionar proyectos y colaboradores (admin)
- Aplicación de escritorio en la bandeja del sistema (Windows 11)
- Sincronización automática con servidor
- Trabajo offline con base de datos local
- Detector de inactividad de 10 minutos
- Framework: Laravel 11
- Base de datos: MySQL 8.0
- Autenticación: JWT (tymon/jwt-auth)
- Deployment: Docker (dev) + Debian server (prod)
- Puerto: 8000
- Framework: Electron + React + TypeScript
- Build: Vite
- Base de datos local: SQLite (offline)
- Plataforma: Windows 11 / 10
DeployTime/
├── backend/ # Laravel 11 API
│ ├── app/
│ │ ├── Http/Controllers/
│ │ │ ├── AuthController.php
│ │ │ ├── ProjectController.php
│ │ │ ├── TaskController.php
│ │ │ └── TimeEntryController.php
│ │ ├── Models/
│ │ │ ├── User.php
│ │ │ ├── Project.php
│ │ │ ├── Task.php
│ │ │ └── TimeEntry.php
│ │ └── Middleware/
│ │ └── AdminMiddleware.php
│ ├── database/
│ │ ├── migrations/ # 5 tablas
│ │ └── seeders/
│ ├── routes/api.php # 20+ endpoints
│ ├── docker-compose.yml
│ └── .env
│
├── desktop/ # Electron App
│ ├── src/
│ │ ├── main/ # Electron main process
│ │ ├── preload/ # IPC Bridge
│ │ └── renderer/ # React UI
│ ├── public/
│ ├── package.json
│ └── vite.config.ts
│
└── docs/ # Documentación
├── BACKEND_COMPLETADO.md
├── BACKEND_STATUS.md
├── ELECTRON_SETUP_COMPLETADO.md
├── API_TESTING.md
└── PROGRESO.md
# Iniciar con Docker
cd backend
docker-compose up -d
# Ejecutar migraciones y seeders
docker-compose exec app php artisan migrate --seed
# API disponible en http://localhost:8000Usuarios de prueba:
- Admin:
admin@deploytime.com/admin123 - Colaborador 1:
juan@deploytime.com/colaborador123 - Colaborador 2:
maria@deploytime.com/colaborador123
cd desktop
npm install
npm run devLa aplicación se abrirá en la bandeja del sistema.
- users - Usuarios (admin/collaborator)
- projects - Proyectos
- project_collaborators - Relación N:M proyectos-usuarios
- tasks - Tareas de proyectos
- time_entries - Registros de tiempo
User
├── hasMany Projects (created_by)
├── belongsToMany Projects (collaborator)
└── hasMany TimeEntries
Project
├── belongsTo User (creator)
├── belongsToMany Users (collaborators)
└── hasMany Tasks
Task
├── belongsTo Project
└── hasMany TimeEntries
TimeEntry
├── belongsTo Task
└── belongsTo User
POST /api/auth/login- Login con JWTPOST /api/auth/logout- LogoutPOST /api/auth/refresh- Renovar tokenGET /api/auth/me- Usuario actual
GET /api/projects- ListarPOST /api/projects- CrearGET /api/projects/{id}- VerPUT /api/projects/{id}- ActualizarDELETE /api/projects/{id}- EliminarPOST /api/projects/{id}/collaborators- Agregar colaboradorDELETE /api/projects/{id}/collaborators/{userId}- Remover
GET /api/projects/{id}/tasks- Listar por proyectoPOST /api/tasks- CrearGET /api/tasks/{id}- VerPUT /api/tasks/{id}- ActualizarDELETE /api/tasks/{id}- Eliminar
POST /api/time-entries- Iniciar timerPUT /api/time-entries/{id}/stop- Detener timerGET /api/my/active-time-entry- Timer activo del usuarioGET /api/my/time-entries- Mis registrosGET /api/tasks/{id}/time-entries- Registros de una tareaDELETE /api/time-entries/{id}- Eliminar
Ver documentación completa en docs/API_TESTING.md
- Docker Compose configurado
- MySQL 8.0 + phpMyAdmin
- Migraciones y modelos
- JWT Authentication
- 4 Controllers completos
- 20+ endpoints funcionales
- Middleware admin
- Seeders con datos de prueba
- TESTEADO Y FUNCIONANDO
- Electron + React + TypeScript
- System tray integration
- UI completa (login + timer)
- Build scripts
- Ventana frameless con auto-hide
- Integración con API Laravel
- SQLite local storage
- Sincronización automática
- Detector de inactividad
- COMPLETAMENTE FUNCIONAL
- Laravel 11
- MySQL 8.0
- JWT Authentication
- Docker & Docker Compose
- PHP 8.2
- Electron 39
- React 19
- TypeScript 5
- Vite 6
- SQLite (pendiente)
- Backend Completado - Estado del backend
- Backend Status - Resolución de errores
- Electron Setup - Setup de Electron
- Integración Completada - Backend + Desktop integrados ⭐
- API Testing - Guía de testing de API
- Progreso General - Historial de desarrollo
- Laravel 11 + MySQL + Docker
- JWT Authentication
- 20+ endpoints API REST
- Seeders con datos de prueba
- Electron + React + TypeScript
- Integración completa con API
- SQLite local storage
- Servicio de sincronización
- Detector de inactividad (10 min)
- Dashboard web para administradores
- Reportes y estadísticas
- Comparación estimado vs real
- Exportación de datos
- JWT con tokens renovables
- Passwords hasheados con bcrypt
- Middleware de autenticación y autorización
- Context Isolation en Electron
- Preload script con whitelist de canales IPC
- SQL injection prevention (Eloquent)
- CORS configurado
# Con REST Client (VSCode)
Abrir: backend/api-test.http
Click: "Send Request"
# Con curl
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@deploytime.com","password":"admin123"}'cd desktop
npm run dev# En servidor Debian
git clone <repo>
cd backend
composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache
php artisan migrate --forcecd desktop
npm run build
npm run package:win
# Instalador en: desktop/release/- CRUD completo de proyectos
- Gestionar colaboradores
- Ver todos los proyectos
- Asignar tareas
- Ver proyectos asignados
- CRUD de tareas en sus proyectos
- Iniciar/detener timer
- Ver su historial de tiempos
- API Backend: http://localhost:8000/api
- phpMyAdmin: http://localhost:8081
- MySQL: localhost:3308
- Electron Dev: http://localhost:3000 (Vite)
MIT
Este es un proyecto privado de DeployTime.
Para soporte, contactar al equipo de desarrollo.
Desarrollado por: Luis Gastiarena con Claude Code AI Fecha: Noviembre 2025 Versión: 1.0.0 Principio: KISSES (Keep It Simple, Smart, Efficient & Secure)