{"id":13426619,"url":"https://github.com/tryolabs/libreQDA","last_synced_at":"2025-03-15T21:31:36.116Z","repository":{"id":6763242,"uuid":"8009900","full_name":"tryolabs/libreQDA","owner":"tryolabs","description":null,"archived":false,"fork":false,"pushed_at":"2013-06-28T18:06:36.000Z","size":1005,"stargazers_count":28,"open_issues_count":25,"forks_count":21,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-10-28T05:12:42.879Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tryolabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-04T15:27:48.000Z","updated_at":"2024-07-19T19:39:06.000Z","dependencies_parsed_at":"2022-09-13T14:41:15.647Z","dependency_job_id":null,"html_url":"https://github.com/tryolabs/libreQDA","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryolabs%2FlibreQDA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryolabs%2FlibreQDA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryolabs%2FlibreQDA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryolabs%2FlibreQDA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tryolabs","download_url":"https://codeload.github.com/tryolabs/libreQDA/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243792473,"owners_count":20348653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T00:01:39.305Z","updated_at":"2025-03-15T21:31:35.520Z","avatar_url":"https://github.com/tryolabs.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"![LibreQDA](http://proyecto.data.cse.edu.uy/attachments/download/672/LibreQDA-logo.png \"LibreQDA\")\n[LibreQDA](https://github.com/tryolabs/libreQDA)\n================================================\n\nCopyright (C) 2013 [Tryolabs](http://www.tryolabs.com) \n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see [\u003chttp://www.gnu.org/licenses/\u003e](http://www.gnu.org/licenses/).\n\nInstalación\n===========\n\n[Virtualenv](https://pypi.python.org/pypi/virtualenv)\n------------------------------------------------------\nPara mayor comodidad se recomienda utilizar un virtualenv.\n\n1. Instalar Virtualenv: (`sudo apt-get install python-virtualenv` en Debian/Ubuntu).\n2. Una vez instalado, crear un Virtualenv: `virtualenv libreqda`.\n3. Activar el Virtualenv: `cd libreqda` y luego `source bin/activate`.\n\nObtener el código\n-----------------\nProbablemente tengas que instalar git: `sudo apt-get install git`\n\nLuego debes obtener el código de LibreQDA: `git clone https://github.com/tryolabs/libreQDA.git`.\n\n\nDependencias\n------------\nAntes de poder comenzar es necesario instalar algunas dependencias.\n\n1. Instalar `build-essential`: `sudo apt-get install build-essential`.\n2. Instalar MySQL: `sudo apt-get install mysql-server libmysqlclient-dev libevent-dev libxml2-dev libxslt1-dev`.\n3. El archivo `requirements.txt` contiene una lista de dependencias a instalar. Es posible instalar todas de forma automática con el comando `pip install -r requirements.txt`.\n\n~~Python-docx~~\n-----------\n~~Para poder extraer el texto de archivos ``docx` es necesario instalar `python-docx`.~~\n\n1. ~~Obtener el código desde su [repositorio en Github](https://github.com/mikemaccana/python-docx): `git clone https://github.com/mikemaccana/python-docx.git`.~~\n2. ~~Ir al directorio con el código: `cd python-docx`.~~\n3. ~~Instalar con: `python setup.py install`.~~\n\nConfigurar y ejecutar\n---------------------\n1. Crear una base de datos para LibreQDA. El encoding de la base de datos debe ser **UTF-8** para evitar problemas al subir documentos.\n  `CREATE DATABASE libreqda CHARACTER SET utf8 COLLATE utf8_general_ci;`\n2. Copiar el archivo `local_settings.py.template` que se encuentra junto al código a `local_settings.py`.\n3. Abrir el nuevo archivo, `local_settings.py` y editar según sea necesario.\n4. Crear la base de datos con django: `python manage.py syncdb`.\n5. Ejecutar con: `python manage.py runserver`\n\nActualizar\n----------\nPara actualizar LibreQDA simplemente es necesario hacer un pull del repositorio con `git pull` y luego actualizar la base de datos con `python manage.py reset libreqda`.\n\nTambién es necesario actualziar las dependencias con: `pip install -r requirements.txt`.\n\nNOTA: Los datos son eliminados de la base de datos cuando se hace un `reset`. Es posible utilizar \n[`dumpdata`](https://docs.djangoproject.com/en/dev/ref/django-admin/#dumpdata-appname-appname-appname-model) y \n[`loaddata`](https://docs.djangoproject.com/en/dev/ref/django-admin/#loaddata-fixture-fixture) para exportar e importar datos fácilmente.\n\nFIXME: Ojo, hice un dumpdata y un loaddata y me da error: `Problem installing fixture 'proyectos': dump is not a known serialization format.`\n\nCómo agregar soporte para otros tipos de archivos\n=================================================\nAgregar soporte para otros tipos de archivos es relativamente simple. Existen dos archivos a modificar:\n* `validators.py`: Contiene código para permitir o no la subida de un tipo de archivo en particular.\n* `text_extraction.py`: Contiene el código para extraer el texto de cada uno de los distintos tipos de archivo permitidos.\n\n1. Abrir el archivo `validators.py`.\n2. En la tupla `SUPPORTED_FILETYPES` agregar un `string` con el tipo de archivo. Por ejemplo, para archivos Postscript, agregar `'.ps'` a la tupla.\n3. Abrir el archivo `tex_extraction.py.\n4. Agregar una nueva función con la extensión de archivo como nombre. Por ejemplo, para procesar archivos Postscript, agregar una función llamada `ps`.\n\n  La nueva función va a recibir un solo parámetro, siendo éste el path al nuevo archivo subido. \n  La función debe abrir el archivo y extraer el texto, para finalmente retornar un objeto del tipo `string` con el contenido de archivo. Éste valor será el que se guarde en la base de datos.\n\nTODO\n----\nActualmente para determinar el tipo de archivo, LibreQDA se basa en la extensión. La dentificación de tipos de archivos debería realizarse utilizando [`python-magic`](https://github.com/ahupp/python-magic).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftryolabs%2FlibreQDA","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftryolabs%2FlibreQDA","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftryolabs%2FlibreQDA/lists"}