Aplicacion web en Django para importar CVs (.docx / .pdf), normalizarlos a una estructura editable y exportarlos a DOCX/PDF.
Documentacion principal:
- Parser de CV con schema unico (
basics,experience,education,skills,extra_sections). - Educacion con
itemsgenericos yhonorscomo compatibilidad legacy. - UI ES/EN con mensajes localizados, headings core en mayusculas y persistencia de idioma.
- Reorden de modulos, entradas core/extras, hitos y categorias de skills.
- Export DOCX por plantilla (
templates/cv_template.docx) con fuente seleccionada aplicada globalmente. - Export PDF via
docx2pdf(requiere Microsoft Word en Windows/macOS). - Parser PDF endurecido para headings legacy/nuevos y lineas con
:comoHonors:,Honores:oGPA:. - Suite de tests enfocada en regresiones de parsing, export, fuentes, localizacion y orden.
- Importacion de CVs (
.docxy.pdf) - Deteccion heuristica de campos
- Formulario estructurado para edicion manual
- Preservacion de orden de modulos (core + extras)
- Reorden de experiencias, educacion, entradas extra, hitos y skills desde la UI
- Exportacion a DOCX usando plantilla
- Exportacion a PDF mediante Word +
docx2pdf - Exportacion localizada de encabezados core (ES/EN)
- Seleccion de fuente de exportacion con aplicacion global en el documento final
- Python 3.12+
- Django 6.0.2
- python-docx 1.2.0
- pdfplumber 0.10.4
- docx2pdf 0.1.8
- Python 3.12+
- Microsoft Word (para exportacion PDF con
docx2pdf)
python -m venv .venvPowerShell (Windows):
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env
python manage.py runserverBash (Linux/macOS):
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python manage.py runserverAbrir: http://127.0.0.1:8000/
- Subir un CV desde el panel principal.
- (Opcional) Cambiar idioma con el boton ES/EN.
- Presionar Detectar campos.
- Revisar y ajustar los datos en el formulario.
- Exportar DOCX o PDF.
| Metodo | Ruta | Uso |
|---|---|---|
| GET | / |
Editor principal |
| POST | /upload/ |
Importar y detectar campos |
| POST | /text/export/docx/ |
Exportar DOCX |
| POST | /text/export/pdf/ |
Exportar PDF |
Nota: GET /upload/ redirige a /.
Definidas en .env.example y consumidas en trufadocs/settings.py.
Minimas:
DJANGO_SECRET_KEYDJANGO_DEBUGDJANGO_ALLOWED_HOSTSMAX_UPLOAD_MBCV_TEMPLATE_PATH
Produccion (seguridad):
DJANGO_CSRF_TRUSTED_ORIGINSDJANGO_SECURE_SSL_REDIRECTDJANGO_CSRF_COOKIE_SECUREDJANGO_SECURE_HSTS_SECONDSDJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINSDJANGO_SECURE_HSTS_PRELOADDJANGO_SECURE_PROXY_SSL_HEADERDJANGO_USE_X_FORWARDED_HOST
python manage.py test editor.testsCobertura actual de regresiones:
- Parseo PDF en ES/EN, incluyendo
Honors:/Honores:/GPA: - Orden de modulos core + extras
- Export DOCX/PDF desde POST estructurado
- Aplicacion global de fuente en DOCX exportado
- Localizacion ES/EN de UI y export
- Normalizacion de
education.itemsy compatibilidad legacy
- El parsing de PDF puede ser menos preciso que DOCX segun el formato origen.
- Exportar PDF depende de Word +
docx2pdf. - El resultado final depende de la plantilla DOCX y de las fuentes instaladas.

