Sistema enterprise para centralizar, estandarizar, generar, validar y certificar documentación de proyectos con soporte de inteligencia artificial.
- 📝 Generación de Documentación con IA: Crea documentación técnica profesional usando OpenAI
- 📊 Diagramas Mermaid Automáticos: Generación inteligente de diagramas técnicos
- 🎨 Editor WYSIWYG: Editor rico con soporte para markdown y renderizado en tiempo real
- 📂 Workspaces Organizacionales: Sistema de organización por espacios de trabajo
- 🔄 Control de Versiones: Historial completo de cambios en documentos
- 🎯 8 Tipos de Documentación: Infraestructura, Administración, Despliegue, APIs, y más
- 👥 Multi-usuario: Sistema de autenticación JWT con roles y permisos
- 🌐 Multi-idioma: Sistema completamente en español
- Framework: Django 5.0 + Django REST Framework
- Base de Datos: PostgreSQL (producción) / SQLite (desarrollo local)
- Autenticación: JWT (JSON Web Tokens)
- IA: Integración con OpenAI GPT-4
- Procesamiento Async: Celery + Redis (opcional)
- Framework: React 18
- Build Tool: Vite 5
- UI Library: Material-UI 5
- Editor: Draft.js (WYSIWYG)
- Diagramas: Mermaid.js
- HTTP Client: Axios
- Routing: React Router v6
- Python: 3.10 o superior
- Node.js: 18 o superior
- npm: 9 o superior
- Docker: 20.10 o superior
- Docker Compose: 2.0 o superior
# Clonar el proyecto
git clone https://github.com/ronalc90/koptupDocumentacion.git
cd "koptupDocumentacion"# Navegar a la carpeta del backend
cd backend
# Crear entorno virtual de Python
python3 -m venv venv
# Activar el entorno virtual
# En macOS/Linux:
source venv/bin/activate
# En Windows:
# venv\Scripts\activate
# Instalar dependencias
pip install -r requirements/development.txt
# Configurar variables de entorno
# Copiar el archivo de ejemplo (si existe) o crear uno nuevo
cp .env.example .env # Si existe
# O crear un nuevo .env con las siguientes variables:
cat > .env << EOF
DJANGO_SETTINGS_MODULE=config.settings.local
DEBUG=True
SECRET_KEY=tu-clave-secreta-super-segura-cambiar-en-produccion
OPENAI_API_KEY=tu-openai-api-key-opcional
EOF
# Ejecutar migraciones de la base de datos
DJANGO_SETTINGS_MODULE=config.settings.local python manage.py migrate
# Crear un superusuario (admin)
DJANGO_SETTINGS_MODULE=config.settings.local python manage.py createsuperuser
# Sigue las instrucciones en pantalla para crear usuario, email y contraseña
# Iniciar el servidor de desarrollo
DJANGO_SETTINGS_MODULE=config.settings.local python manage.py runserverEl backend estará disponible en: http://localhost:8000
Abre una nueva terminal (mantén el backend corriendo):
# Navegar a la carpeta del frontend
cd frontend
# Instalar dependencias de Node.js
npm install
# Configurar variables de entorno
# Copiar el archivo de ejemplo (si existe) o crear uno nuevo
cp .env.example .env # Si existe
# O crear un nuevo .env con:
cat > .env << EOF
VITE_API_URL=http://localhost:8000/api/v1
EOF
# Iniciar el servidor de desarrollo
npm run devEl frontend estará disponible en: http://localhost:3000
- Abre tu navegador en http://localhost:3000
- Usa las credenciales del superusuario que creaste en el Paso 2
- ¡Comienza a crear documentación!
# Clonar el repositorio
git clone https://github.com/ronalc90/koptupDocumentacion.git
cd "koptupDocumentacion"
# Configurar variables de entorno
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
# Editar backend/.env y agregar tu OPENAI_API_KEY (opcional)
# Levantar todos los servicios
docker-compose up -d
# Esperar a que los servicios inicien (30-60 segundos)
# Ejecutar migraciones
docker-compose exec backend python manage.py migrate
# Crear superusuario
docker-compose exec backend python manage.py createsuperuser
# Ver logs (opcional)
docker-compose logs -f
# Acceder a la aplicación
# Frontend: http://localhost:3000
# Backend API: http://localhost:8000
# Admin Django: http://localhost:8000/adminPara habilitar la generación de documentación con IA:
- Obtén una API Key de OpenAI: https://platform.openai.com/api-keys
- Agrega la clave en
backend/.env:OPENAI_API_KEY=sk-proj-tu-clave-aqui - Reinicia el servidor backend
Nota: Sin la API Key de OpenAI, el sistema seguirá funcionando pero usará plantillas genéricas en lugar de generar contenido con IA.
- Click en "Espacios" en el menú lateral
- Click en el botón "+" para crear un nuevo workspace
- Ingresa nombre, descripción y selecciona un tipo
- El workspace aparecerá en tu lista
- Click en "Generar con IA" en el menú lateral
- Selecciona el tipo de documentación estándar
- Describe lo que necesitas documentar
- Click en "Generar Documentación"
- Revisa el contenido generado y el diagrama
- Guarda el documento en un workspace
- Accede a un documento desde "Documentos" o desde un Workspace
- Click en cualquier parte del contenido para activar el modo edición
- Usa la barra de herramientas para dar formato
- Los diagramas Mermaid se renderizan automáticamente
- Click en "Guardar" para guardar los cambios
- Ve a "Administración" → "Tipos de Workspace"
- Crea, edita o elimina tipos personalizados
- Configura colores e íconos para cada tipo
- Los cambios se reflejan inmediatamente en los workspaces
POST /api/v1/auth/token/ - Login (obtener token)
POST /api/v1/auth/token/refresh/ - Refresh token
POST /api/v1/auth/register/ - Registro de usuario
GET /api/v1/auth/users/me/ - Usuario actual
GET /api/v1/documents/workspaces/ - Listar workspaces
POST /api/v1/documents/workspaces/ - Crear workspace
GET /api/v1/documents/workspaces/:id/ - Detalle workspace
PUT /api/v1/documents/workspaces/:id/ - Actualizar workspace
DELETE /api/v1/documents/workspaces/:id/ - Eliminar workspace
GET /api/v1/documents/documents/ - Listar documentos
POST /api/v1/documents/documents/ - Crear documento
GET /api/v1/documents/documents/:id/ - Detalle documento
PUT /api/v1/documents/documents/:id/ - Actualizar documento
DELETE /api/v1/documents/documents/:id/ - Eliminar documento
GET /api/v1/standards/standards/ - Listar estándares de documentación
POST /api/v1/standards/generate/ - Generar documentación con IA
POST /api/v1/standards/generate-diagram/ - Generar diagrama con IA
GET /api/v1/documents/workspace-types/ - Listar tipos
POST /api/v1/documents/workspace-types/ - Crear tipo
PUT /api/v1/documents/workspace-types/:id/ - Actualizar tipo
DELETE /api/v1/documents/workspace-types/:id/ - Eliminar tipo
# Activar entorno virtual
source backend/venv/bin/activate
# Ejecutar servidor
DJANGO_SETTINGS_MODULE=config.settings.local python backend/manage.py runserver
# Crear migraciones
DJANGO_SETTINGS_MODULE=config.settings.local python backend/manage.py makemigrations
# Aplicar migraciones
DJANGO_SETTINGS_MODULE=config.settings.local python backend/manage.py migrate
# Crear superusuario
DJANGO_SETTINGS_MODULE=config.settings.local python backend/manage.py createsuperuser
# Abrir shell de Django
DJANGO_SETTINGS_MODULE=config.settings.local python backend/manage.py shell
# Ejecutar tests
DJANGO_SETTINGS_MODULE=config.settings.local pytest backend/# Instalar dependencias
cd frontend && npm install
# Ejecutar en desarrollo
npm run dev
# Build para producción
npm run build
# Preview del build
npm run preview
# Linting
npm run lint# Levantar servicios
docker-compose up -d
# Ver logs
docker-compose logs -f
# Ver logs de un servicio específico
docker-compose logs -f backend
docker-compose logs -f frontend
# Detener servicios
docker-compose down
# Detener y eliminar volúmenes (⚠️ borra la base de datos)
docker-compose down -v
# Rebuild de imágenes
docker-compose build
# Ejecutar comando en contenedor
docker-compose exec backend python manage.py migrateError: ModuleNotFoundError o paquetes faltantes
# Reinstalar dependencias
cd backend
source venv/bin/activate
pip install -r requirements/development.txtError: connection refused a PostgreSQL
# Asegúrate de usar la configuración local con SQLite
export DJANGO_SETTINGS_MODULE=config.settings.local
python manage.py runserverError: ECONNREFUSED al hacer peticiones
# Verifica que el backend esté corriendo en el puerto 8000
curl http://localhost:8000/api/v1/auth/token/
# Verifica la variable de entorno en frontend/.env
cat frontend/.env
# Debe contener: VITE_API_URL=http://localhost:8000/api/v1Error: Dependencias faltantes
cd frontend
rm -rf node_modules package-lock.json
npm install- Verifica que el documento tenga diagramas con formato correcto
- Los diagramas deben estar dentro de
<div class="mermaid">...</div> - Abre la consola del navegador para ver errores específicos
- Verifica que
OPENAI_API_KEYesté configurada enbackend/.env - Verifica que tengas créditos disponibles en tu cuenta de OpenAI
- Revisa los logs del backend:
docker-compose logs -f backend
- API Docs (Swagger): http://localhost:8000/swagger/
- API Docs (ReDoc): http://localhost:8000/redoc/
- Admin Django: http://localhost:8000/admin/
- Autenticación: JWT con tokens de acceso y refresh
- CORS: Configurado para desarrollo local
- CSRF: Protección habilitada en producción
- Rate Limiting: Implementado en producción
- Sanitización: XSS y SQL injection protegidos por Django
koptupDocumentacion/
├── backend/ # Django Backend
│ ├── apps/ # Aplicaciones Django
│ │ ├── auth_app/ # Autenticación y usuarios
│ │ ├── documents/ # Gestión de documentos
│ │ ├── standards/ # Estándares y generación IA
│ │ └── workspaces/ # Espacios de trabajo
│ ├── config/ # Configuración Django
│ │ ├── settings/ # Settings por ambiente
│ │ ├── urls.py # URLs principales
│ │ └── wsgi.py # WSGI config
│ ├── requirements/ # Dependencias Python
│ ├── manage.py # Django CLI
│ └── db.sqlite3 # Base de datos SQLite (local)
│
├── frontend/ # React Frontend
│ ├── src/
│ │ ├── components/ # Componentes reutilizables
│ │ ├── pages/ # Páginas principales
│ │ ├── services/ # API clients
│ │ ├── store/ # Redux store
│ │ ├── utils/ # Utilidades
│ │ ├── App.jsx # Componente raíz
│ │ └── main.jsx # Entry point
│ ├── public/ # Archivos estáticos
│ ├── package.json # Dependencias Node
│ └── vite.config.js # Configuración Vite
│
├── docker-compose.yml # Configuración Docker
├── .gitignore # Archivos ignorados por Git
└── README.md # Este archivo
- Fork el proyecto
- Crea una rama feature (
git checkout -b feature/NuevaCaracteristica) - Commit tus cambios (
git commit -m 'Agregar nueva característica') - Push a la rama (
git push origin feature/NuevaCaracteristica) - Abre un Pull Request
SOFTWARE COMERCIAL PROPIETARIO
Este es un software comercial de uso exclusivo mediante suscripción pagada.
- ❌ No se permite uso sin suscripción comercial activa
- ❌ No se permite distribución, modificación o ingeniería inversa
- ❌ Todos los derechos reservados por Koptup
Para adquirir una licencia comercial válida, visite: https://koptup.com
Desarrollado por el equipo de Koptup.
Repositorio: https://github.com/ronalc90/koptupDocumentacion
Estado: 🟢 En Desarrollo Activo Versión: 1.0.0 Última Actualización: Enero 2026