Skip to content
edwards1978Public

About

Sistema de gestión contable desarrollado en Laravel 12 para la administración de clientes, contadores, plantillas de cuentas, tasas de cambio BCV, ingresos, generación de informes y estados financieros.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SIC - Sistema Integral Contable

Sistema de gestión contable desarrollado en Laravel 12 para la administración de clientes, contadores, plantillas de cuentas, tasas de cambio BCV, ingresos, generación de informes y estados financieros.

📋 Características Principales

Gestión de Entidades

  • Clientes: Registro y administración de clientes con plantilla de cuentas contables asociada
  • Contadores: Gestión de contadores públicos con datos profesionales (CPC, logo, ubicación)
  • Plantillas de Cuentas: Catálogos de cuentas contables reutilizables con importación/exportación Excel

Configuración y Parámetros

  • Tasas BCV: Administración de tasas de cambio oficiales del Banco Central de Venezuela con importación masiva y verificación
  • Categorías de Ingresos: Clasificación personalizable de tipos de ingresos

Módulos Operativos

  • Ingresos: Registro, duplicado y gestión de ingresos por cliente con categorías
  • Informes: Generación de informes históricos con parámetros configurables (moneda, tipo de aseguramiento, destinatario, etc.)
  • Estados Financieros: Creación y descarga en PDF de estados financieros
  • Patrimonio: Gestión de patrimonio del cliente con importación/exportación de plantillas Excel

Seguridad

  • Autenticación basada en sesiones (Login/Logout)
  • Protección de rutas mediante middleware auth
  • Gestión de usuarios en panel de seguridad

🛠 Stack Tecnológico

Componente Versión
PHP ^8.2
Laravel Framework ^12.0
Livewire ^4.3
Tailwind CSS ^4.0
Vite ^7.0
Alpine.js ^3.16
DomPDF (PDF) ^3.1
PhpSpreadsheet (Excel) ^5.9
SQLite (dev) / MySQL/PostgreSQL (prod) -

🚀 Instalación Rápida

Requisitos Previos

  • PHP 8.2+
  • Composer
  • Node.js 18+ y npm
  • SQLite (desarrollo) o MySQL/PostgreSQL (producción)

Pasos

# 1. Clonar repositorio
git clone https://github.com/edwards1978/sic.git
cd sic

# 2. Instalar dependencias PHP
composer install

# 3. Configurar entorno
cp .env.example .env
php artisan key:generate

# 4. Configurar base de datos en .env
# Para desarrollo (SQLite - por defecto):
# DB_CONNECTION=sqlite
# Para producción (MySQL):
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=sic
# DB_USERNAME=root
# DB_PASSWORD=

# 5. Ejecutar migraciones y seeders (ver [DATABASE_SETUP.md](DATABASE_SETUP.md) para detalles)
php artisan migrate --force --seed

# 6. Instalar dependencias frontend y compilar assets
npm install
npm run build

# 7. Iniciar servidor de desarrollo
php artisan serve

📖 Documentación completa de base de datos: Ver DATABASE_SETUP.md para detalles sobre migraciones, seeders, estructura de tablas, usuario admin por defecto y plantillas de cuentas incluidas.

Comandos Útiles

# Desarrollo completo (servidor + queue + logs + vite)
composer dev

# Solo tests
composer test

# Limpiar caché y optimizar
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache

📁 Estructura del Proyecto

sic/
├── app/
│   ├── Http/Controllers/Web/     # Controladores web organizados por módulo
│   ├── Livewire/                 # Componentes Livewire (UI reactiva)
│   ├── Models/                   # Modelos Eloquent
│   ├── Services/                 # Lógica de negocio (Excel, PDF, BCV, etc.)
│   └── Observers/                # Observadores de modelos
├── config/                       # Archivos de configuración Laravel
├── database/
│   ├── migrations/               # Migraciones de base de datos
│   └── seeders/                  # Seeders para datos iniciales
├── resources/
│   ├── views/                    # Vistas Blade + componentes Livewire
│   ├── js/                       # JavaScript (Vite + Alpine.js)
│   └── css/                      # Estilos (Tailwind CSS)
├── routes/
│   ├── web.php                   # Rutas web principales
│   └── console.php               # Comandos Artisan personalizados
├── public/                       # Assets compilados y entry point
├── tests/                        # Tests Unit y Feature (Pest/PHPUnit)
└── bootstrap/                    # Archivos de arranque Laravel

🔐 Variables de Entorno Principales

Variable Descripción Ejemplo
APP_NAME Nombre de la aplicación SIC
APP_ENV Entorno (local, production) local
APP_KEY Clave de encriptación (generar con php artisan key:generate) base64:...
APP_DEBUG Modo debug true / false
APP_URL URL base de la aplicación http://localhost:8000
DB_CONNECTION Driver de base de datos sqlite / mysql / pgsql
SESSION_DRIVER Driver de sesiones database
QUEUE_CONNECTION Driver de colas database
MAIL_MAILER Driver de correo log / smtp

📊 Módulos y Rutas Principales

Módulo Prefijo Rutas Clave
Dashboard /dashboard Vista principal post-login
Clientes /clientes CRUD completo
Contadores /contadores CRUD + logo
Plantillas /plantillas CRUD + cuentas + import/export Excel
Tasas BCV /tasas CRUD + importar + verificar
Ingresos /ingresos CRUD + categorías + duplicar
Informes /informes Generar + historial + reimprimir
Estados Financieros /estados-financieros Crear + PDF
Patrimonio /patrimonio Gestión + plantilla + importar
Seguridad /seguridad/usuarios Gestión de usuarios

🧪 Testing

# Ejecutar todos los tests
composer test

# O directamente con Artisan
php artisan test

# Tests con coverage (requiere Xdebug/PCOV)
php artisan test --coverage

📦 Despliegue en Producción

Checklist

  • APP_ENV=production
  • APP_DEBUG=false
  • APP_KEY generada y segura
  • Base de datos configurada (MySQL/PostgreSQL)
  • DB_* variables configuradas
  • SESSION_DRIVER=database o redis
  • QUEUE_CONNECTION=database o redis
  • CACHE_STORE=database o redis
  • MAIL_MAILER=smtp con credenciales reales
  • FILESYSTEM_DISK=s3 o similar para archivos
  • Ejecutar php artisan optimize (config, route, view cache)
  • Configurar supervisor para queue:work
  • Configurar nginx/Apache con document root en public/
  • Habilitar HTTPS
  • Configurar backups de base de datos

Optimizaciones

# Cache de configuración, rutas y vistas
php artisan config:cache
php artisan route:cache
php artisan view:cache

# Optimizar autoloader Composer
composer install --optimize-autoloader --no-dev

🤝 Contribución

  1. Fork del repositorio
  2. Crear rama feature (git checkout -b feature/nueva-funcionalidad)
  3. Commit cambios (git commit -m 'feat: descripción del cambio')
  4. Push a la rama (git push origin feature/nueva-funcionalidad)
  5. Abrir Pull Request

📄 Licencia

Este proyecto es software propietario. Todos los derechos reservados.

📞 Soporte

Para reportar bugs o solicitar funcionalidades, utilizar el sistema de Issues del repositorio.

About

Sistema de gestión contable desarrollado en Laravel 12 para la administración de clientes, contadores, plantillas de cuentas, tasas de cambio BCV, ingresos, generación de informes y estados financieros.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages