Versión: 0.1
Descripción: BACON (Balance Contable Online) es un sistema web diseñado para registrar y clasificar cuentas, generar asientos de diario y estados financieros básicos. Su objetivo es brindar una herramienta simple, educativa y funcional que aplique principios de ingeniería de software, patrones de diseño y buenas prácticas de arquitectura.
Objetivo: Desarrollar un sistema con diseño modular y escalable que implemente principios de contabilidad básica y permita la evolución hacia un software financiero más completo mediante el uso del diseño en capas y patrones de diseño.
Una herramienta web para llevar la contabilidad básica de un emprendedor, una persona o para prácticar y corroborar nociones básicas de la materia. La cual permite:
- Tener un plan de cuentas (activos, pasivos, patrimonio, ingresos, gastos).
- Registrar asientos de diario (debe y haber).
- Validar que cada asiento cuadre (suma del debe = suma del haber).
- Generar estados financieros por periodo: Balance General y Estado de Resultados.
- Exportar reportes (CSV/PDF).
- Presentación (Frontend): UI/UX, validaciones de entrada mínimas, vistas de plan de cuentas, asientos y reportes.
- Lógica de negocio (Backend): reglas contables (validación de asientos, generación de estados).
- Facade — unificar y exponer operaciones complejas como “generar estado financiero” que orquesta múltiples repositorios y cálculos.
- Factory — crear plantillas de asientos (p. ej. cierre mensual, nómina).
- Strategy — permitir distintos métodos de cálculo o agregación (por ejemplo, diferentes reglas de consolidación o filtros fiscales).
- Información sobre la cuenta: Nombre de la cuenta, su naturaleza (acreedora o deudora), usos comunes, etc.
{
"id": "hash",
"nombre": "string",
"descripcion": "string",
"tipo": "string",
"subtipo": "string",
"naturaleza": "string"
}- No permitir registrar un asiento contable si
suma(debe) != suma(haber)(validación tanto en backend como en frontend). - Validar la existencia y estado activo de la cuenta contable antes de usarla en un asiento.
- Cálculo de balances por período: sumar saldos por cuenta y agrupar por tipo (ACTIVO, PASIVO, etc.) para generar los estados financieros.
- Crear asientos de diario con múltiples líneas.
- Validación automática (saldo debe = haber).
- Listado y filtrado de asientos por rango de fechas.
- Generación de Balance General y Estado de Resultados para un periodo.
- Seguridad: autenticación básica (JWT).
- Consistencia: transacciones para operaciones contables.
- Rendimiento: generación de reportes razonable para pequeñas/medianas tablas
- Usabilidad: interfaz clara que muestre totales y desfases en asientos.
- React (JavaScript)
- Axios / fetch para llamadas API
- Despliegue: Vercel
- Clonar el repositorio
git clone https://github.com/cesarleroy/bacon.git- Navegar a la carpeta e instalar dependencias
cd bacon
npm install- Correr el proyecto
npm run rev