Sistema de gestión de expedientes para despacho de abogados. Maneja tres tipos de casos: ARAG (seguros), Particulares y Turno de Oficio.
- Backend: Node.js + Express + SQLite ✅
- Frontend: Vanilla JS SPA ✅
- Servidor: Clouding.io (Barcelona) -
217.71.207.83✅ - Base de datos: SQLite persistente en
/home/appuser/data/
recordplus/
├── src/
│ ├── client/ # Frontend (HTML, CSS, JS)
│ │ ├── css/
│ │ ├── js/
│ │ │ ├── components/
│ │ │ ├── api.js
│ │ │ ├── app.js
│ │ │ └── router.js
│ │ └── index.html
│ └── server/ # Backend (Node.js + Express)
│ ├── routes/
│ ├── services/
│ ├── middleware/
│ └── index.js
├── migrations/ # SQL migrations
├── data/ # SQLite database (local dev)
├── deploy/ # Deployment scripts
│ ├── setup.sh # Initial server setup
│ ├── update.sh # Deploy updates
│ └── cloudflare-setup.md
├── ecosystem.config.cjs # PM2 configuration
└── package.json
# Instalar dependencias
npm install
# Inicializar base de datos
node migrations/run.js
# Iniciar servidor (puerto 3000)
npm start
# Abrir en navegador
open http://localhost:3000IP: 217.71.207.83
Usuario: appuser
App: /home/appuser/recordplus
Data: /home/appuser/data/legal-cases.db
Certificates: /home/appuser/data/certificates
Backups: /home/appuser/backups/ (diario 3 AM)
# Ver estado de la app
sudo -u appuser pm2 status
# Ver logs
sudo -u appuser pm2 logs recordplus
# Reiniciar app
sudo -u appuser pm2 restart recordplus
# Desplegar actualizaciones
cd /home/appuser/recordplus
sudo -u appuser git pull
sudo -u appuser npm install --production
sudo -u appuser pm2 restart recordplus# Desde tu Mac, túnel SSH temporal
ssh -L 3000:localhost:3000 root@217.71.207.83
# Luego abrir en navegador
open http://localhost:3000Para acceso seguro desde internet sin exponer puertos:
- Instalar Cloudflare Tunnel en el servidor
- Configurar Zero Trust (autenticación por email)
- Desplegar frontend en Cloudflare Pages
Ver: deploy/cloudflare-setup.md
| Módulo | Estado | Descripción |
|---|---|---|
| Dashboard | ✅ | Panel principal con métricas |
| Expedientes | ✅ | CRUD completo de casos |
| Facturación ARAG | ✅ UI | Pantalla de facturación (mock data) |
| Particulares | ✅ UI | Hoja de encargo (mock data) |
| Turno de Oficio | ✅ UI | Gestión de expedientes |
| Estadísticas | ✅ UI | Dashboard financiero (mock data) |
| Configuración | ✅ | Tarifas y kilometraje |
| Admin DB | ✅ | Visor de base de datos |
SQLite con las siguientes tablas:
cases- Expedientesdocument_history- Historial de documentosemail_history- Historial de emailsconfiguration- Configuración del sistemareference_counters- Contadores de referencias
# Ver cambios
git status
# Commit y push
git add .
git commit -m "feat: descripción del cambio"
git push
# En el servidor, actualizar
ssh root@217.71.207.83
cd /home/appuser/recordplus
sudo -u appuser git pull
sudo -u appuser pm2 restart recordplus- Backend: Node.js 20, Express, better-sqlite3
- Frontend: Vanilla JS (ES Modules), CSS custom properties
- Database: SQLite
- Process Manager: PM2
- Hosting: Clouding.io (Barcelona, España - RGPD)
Repositorio: https://github.com/josfko/recordplus