Aplicación web para calcular el coste por hora facturable de consultores, según variables financieras y contables.
- Node.js (v18 o superior)
- MongoDB (instalado localmente o acceso a una instancia remota)
- Docker
- Docker Compose
El proyecto se compone de dos partes principales:
- Backend: API REST con Node.js y Express
- Frontend: Interfaz de usuario con Vue 3 y TypeScript
La manera más sencilla de ejecutar la aplicación es utilizando Docker Compose:
Primero, asegúrate de tener los ficheros .env en las carpetas backend y frontend.
# Iniciar entorno de desarrollo
make dev
# O iniciar entorno de producción
make prod
# O si prefieres usar Docker Compose directamente
docker compose up -d # Desarrollo
docker compose -f docker-compose.prod.yml up -d # Producción
La aplicación estará disponible en:
-
Entorno de Desarrollo:
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
-
Entorno de Producción:
- Frontend: http://localhost:80
- Backend API: http://localhost:3000
Otros comandos útiles:
# Reconstruir imágenes de desarrollo
make build
# Reconstruir imágenes de producción
make build-prod
# Detener contenedores
make down
# Limpiar todo (contenedores, imágenes, volúmenes)
make clean
- Instalar dependencias:
cd backend
npm install
-
Configurar la base de datos:
- Si tienes MongoDB instalado localmente, asegúrate de que esté corriendo.
- Si no, puedes utilizar Docker para levantar una instancia de MongoDB:
docker run -d --name mongo-db -p 27017:27017 mongo
Crea un archivo .env
en la carpeta /backend
con la siguiente configuración:
NODE_ENV=development
PORT=3000
MONGODB_URI=mongodb://localhost:27017/tramitech
- Inicializar la configuración en la base de datos:
npm run init-config
- Iniciar el servidor:
npm run dev # Desarrollo
npm start # Producción
- Instalar dependencias:
cd frontend
npm install
Recuerda actualizar el archivo .env
con la URL del backend:
VITE_API_URL=http://localhost:3000
- Iniciar el servidor de desarrollo:
npm run dev # Desarrollo
npm run build # Producción (genera archivos estáticos en /dist)
La aplicación estará disponible en:
- Frontend (desarrollo): http://localhost:5173
- Backend API: http://localhost:3000
- Hot-reloading activado tanto en frontend como en backend
- Mapeo de volúmenes para permitir cambios en tiempo real
- Optimizado para desarrollo y depuración
- Frontend servido por Nginx optimizado para producción
- Backend optimizado para rendimiento
- Configurado para mayor estabilidad
-
Cálculo de coste/hora facturable basado en:
- Nivel de experiencia del consultor
- Tipo de proyecto
- Horario de trabajo
- Costes indirectos
- Margen de beneficio
- IVA aplicable
-
Visualización detallada del desglose de costes
-
Personalización de parámetros avanzados (costes indirectos, horas facturables)
- Backend: Node.js, Express, MongoDB, Mongoose
- Frontend: Vue 3, TypeScript, Tailwind CSS
- Contenedores: Docker, Docker Compose
- ManuRGDev