OpenDTE es una versión limpia, genérica y libre de datos sensibles de Full-Sello ERP, adaptada para ser compatible con PostgreSQL y optimizada para servir como base de un sistema de facturación electrónica y gestión de inventario en Chile.
- Base de datos: PostgreSQL en lugar de SQLite3.
- Demo Reset: Restauración de base de datos desde el navegador mediante JavaScript/AJAX (sin necesidad de comandos Python).
- Procesamiento de Facturas: Lectura volátil en memoria de PDFs y XMLs emitidos bajo el estándar del SII.
- Validación de RUT: Verificación en tiempo real y backend mediante el algoritmo oficial Módulo 11 con formateo automático (XX.XXX.XXX-Y).
- Frontend Modular: Arquitectura de scripts JavaScript dividida en módulos con responsabilidades únicas (validators.js, table-sort.js, excel-import.js, guia-abastecimiento.js).
- PWA Offline: Capacidad de operar sin internet con IndexedDB (
localforage) y sincronización automática. - Diseño Accesible: Cumplimiento con pautas básicas WCAG 2.1 para navegación por teclado y contraste adaptativo claro/oscuro.
- Python 3.12+
- PostgreSQL 15+
- Node.js (para dependencias frontend)
-
Clonar e ingresar al proyecto:
git clone https://github.com/schiesscl/open-dte.git cd open-dte -
Crear y activar entorno virtual:
python -m venv env # Windows: env\Scripts\activate # Linux/Mac: source env/bin/activate
-
Instalar dependencias:
pip install -r requirements.txt npm install
-
Configurar el archivo
.env:cp .env.example .env # Edita el archivo .env configurando los accesos a tu PostgreSQL local -
Preparar la Base de Datos en PostgreSQL:
CREATE DATABASE opendte_db; CREATE USER opendte_user WITH PASSWORD 'tu_password'; GRANT ALL PRIVILEGES ON DATABASE opendte_db TO opendte_user;
-
Ejecutar migraciones y cargar semillas demo:
python manage.py migrate python manage.py seed_demo
-
Crear superusuario administrador:
python manage.py createsuperuser
-
Iniciar el servidor local:
python manage.py runserver
Para una descripción exhaustiva del diseño de base de datos, mapeo de componentes del fork, endpoints de la API, flujos de sincronización offline y arquitectura general, consulte el archivo DOCUMENTACION.md.
Este proyecto es de código abierto bajo la licencia MIT.