Skip to content

About

Aplicación web de mediciones, presupuestos y certificaciones de obra (FIEBDC-3/BC3). React + TypeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

209 Commits

Folders and files

Repository files navigation

Concreta · Mediciones

Deploy License: PolyForm Noncommercial 1.0.0 React 19 TypeScript Vite 7

Aplicación web para mediciones, presupuesto y certificación de obra. Organiza el trabajo en un árbol de capítulos y partidas con líneas de medición, justificación de precios, resumen económico y certificaciones por periodos, con exportación de listados e intercambio estándar FIEBDC-3 (.bc3).

Funciona 100 % en el navegador: sin servidor ni cuenta. La obra se guarda en local (IndexedDB) y se exporta/importa como fichero.

Características

  • Presupuesto en árbol — capítulos y subcapítulos a N niveles, partidas con unidad, rendimiento y precio; numeración automática estilo Arquimedes/CYPE.
  • Mediciones detalladas — líneas con comentario, unidades, dimensiones (largo × ancho × alto) y fórmulas; el total se propaga al presupuesto.
  • Medir sobre planos PDF — adjunta el PDF del proyecto, calibra cada página con una cota (y compruébala con otra) y mide longitudes, superficies, rectángulos y recuentos con clics: cada medida entra como línea de la partida abierta, con su comentario («P1 · Salón») y de dónde sale, y se vuelve a ella desde la línea. Los PDF se guardan en el navegador aparte de la obra; la copia .zip los lleva con ella.
  • Justificación de precios — descomposición de partidas (mano de obra, materiales, maquinaria) con edición copy-on-write sobre el banco de precios.
  • Coeficiente K — escala global de precios unitarios para cuadrar el PEM a una cifra objetivo.
  • Resumen económico — PEM, gastos generales, beneficio industrial, IVA y PEC.
  • Certificaciones — certificación por periodos marcando líneas o introduciendo el porcentaje ejecutado, con desglose por capítulo.
  • Referencia / bancos de precios — panel para navegar bancos .bc3 y copiar partidas (o partidas sueltas del Generador de Precios de CYPE) al presupuesto, arrastrando o con preflight de colisiones.
  • Importar / Exportar — importación y exportación FIEBDC-3 (.bc3) compatible con Presto, CYPE/Arquimedes y similares; exportación de listados a PDF, Excel (.xlsx) y Word (.docx).
  • Multi-obra y copia de seguridad — cambio entre obras y backup/restauración del proyecto completo (.json, o .zip con los planos).
  • UI adaptable — escritorio y móvil, tema claro/oscuro, atajos de teclado y centro de ayuda integrado.

Stack

Vite 7 · React 19 · TypeScript · Zustand · Immer · CSS Modules · IndexedDB (idb-keyval) · Vitest. Exportación con write-excel-file (XLSX) y docx (DOCX); el intercambio FIEBDC-3 usa un parser forkado en src/vendor/bc3 y un writer propio. Los planos se pintan con pdfjs-dist (se carga solo al abrir el visor) y la copia .zip comprime con fflate.

Estructura

src/
  core/         Dominio puro: medición, precios, certificación, FIEBDC-3 (.bc3)
  store/        Estado de la obra (Zustand + Immer) y selectores
  persist/      Persistencia en IndexedDB, hidratación y transferencia
  features/     presupuesto · certificaciones · resumen · referencia ·
                importar · exportar · obra · planos · print
  layout/       TopBar, sidebar, drawer, barras de estado
  components/   Primitivas de UI
  hooks/        Hooks compartidos (atajos, breakpoints, tema…)
  vendor/bc3/   Parser FIEBDC-3 forkado
public/         Assets estáticos
docs/           Documentación, diseño y planes
.github/        Workflow de deploy a GitHub Pages

Desarrollo

Requiere Node 22+.

npm install
npm run dev      # servidor de desarrollo (Vite)
npm run build    # typecheck (tsc -b) + build de producción
npm run preview  # servir el build localmente
npm test         # tests (Vitest)
npm run test:node  # tests en Node: pdf.js real y formato de la copia .zip
npm run lint     # ESLint
npm run format   # Prettier

La galería de primitivas de UI está en /#sandbox; su botón «Abrir el ejemplo de planos» carga un plano A3 a 1:50 ya calibrado, con dos partidas, para probar el visor sin tocar tus obras (?planos=0 apaga el visor).

Nota: muy de vez en cuando el primer npm test en frío falla entero con un error espurio de Vitest («"vitest" is imported inside "globalSetup"»). Es un fallo de arranque (transform frío), no de los tests: re-ejecuta y pasa.

Licencia

Distribuido bajo la PolyForm Noncommercial License 1.0.0. Se permite usar, copiar, modificar y distribuir el software para cualquier fin no comercial (uso personal, investigación, educación, organizaciones sin ánimo de lucro…). El uso comercial no está permitido sin una licencia aparte del autor.

Copyright © Javier Ramírez Bandera.

About

Aplicación web de mediciones, presupuestos y certificaciones de obra (FIEBDC-3/BC3). React + TypeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages