miércoles, 20 de agosto de 2014

Sistema Web de Tickets con Python+Django

Django-help-desk es una aplicación creada para Django que nos permite generar nuestro propio sistema de reclamos y soporte técnico de manera sencilla, escalable y fácilmente administrable.

Dentro de las ventajas de este sistema se encuentran:
  • Generación automática de reclamos vía e-mail.
  • Sistema de control y estadísticas de incidentes.
  • Escalamiento automático de reclamos, avisos y alertas.
  • Templates de respuestas automáticas hacia clientes.
  • Identificación única de reclamo y posibilidad de multi-usuario tanto desde el soporte como de cliente.
  • Posibilidad de generar base de conocimiento y FAQ sobre preguntas frecuentes de usuario de acceso público.
Este sistema es completamente web y fue construido utilizando lenguaje Python y el framework Django.
A continuación mostraremos como poner en funcionamiento este sistema sobre una distribución Linux basada en Debian.

Previo a la ejecución:

pypi, también conocido como "PIP" es un gestor de bibliotecas python. El uso de pypi nos ayudará a instalar rápidamente bibliotecas sin necesidad de ejecutar python para instalar o descargar los archivos fuentes y ejecutarlos.

Para instalar pypi desde Debian/Ubuntu solo deberemos ejecutar el siguiente comando desde consola sudoer / root:

 apt-get install python-pip  

NOTA: Para instalar Pypi desde otros sistemas operativos, por favor consultar los siguientes links:
http://pip.readthedocs.org/en/latest/installing.html
https://pypi.python.org/pypi/

Una vez instalado pip, se deberá verificar en una primera instancia que el sistema posea Django instalado con el siguiente comando desde consola:
 pip install django  

Luego de chequear django, deberán instalar los siguientes paquetes para utilizar django-helpdesk de la misma manera:
 pip install django-markdown-deux #Reemplaza tags por markdown  
 pip install django-bootstrap-form #Plantillas de estilo con Twitter boostrap  
 pip install django-helpdesk #Base del helpdesk  
 pip install mail-reply-parser #Parseo de emails  
 pip install South #Para migración de bases de datos  
Es recomendable contar con una base datos que no sea SQLite3 para correr este tipo de aplicaciones, en nuestro caso utilizamos MySQL, pero se puede utilizar la que se considere más conveniente.

NOTA: En este post no tratará como configurar una base de datos en Django, en caso de que se desee, se puede consultar la siguiente referencia para la correcta configuración de la base de datos:
https://docs.djangoproject.com/en/dev/ref/databases/

Creando el helpdesk:

Se deberá crear un proyecto Django y ejecutarlo para verificar el correcto funcionamiento de la web y base. Puede realizarse desde consola o vía Eclipse.
 django-admin startproject helpdesk   
 python manage.py syncdb  
siendo helpdesk el nombre del proyecto Django y nombre del sitio.

NOTA: Más información sobre crear proyectos Django en: https://docs.djangoproject.com/en/dev/intro/tutorial01/

Si no se generó ningún error y el sitio está corriendo, iniciaremos la configuración del helpdesk.

Configuración settings.py:
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites', # Si agregamos esta app, deberemos además agregar un SITE_ID en nuestro archivo settings.py
    'django.contrib.admin',  # Administración / mantenimiento
    'bootstrapform',
    'django.contrib.humanize',  # Requerido para formato de tiempo
    'south',  #Altamente recomendado para migrar base de datos de forma sencilla
    'markdown_deux',  # Requerido para formato de "base de conocimiento" en el helpdesk
    'helpdesk',  # Motor del helpdesk
)
Configuración urls.py:

Agregaremos la siguiente línea:
url(r'', include('helpdesk.urls')),

Obteniendo como resultado lo siguiente:
urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'', include('helpdesk.urls')),
)
Al ingresar a http://dirección:puerto/ nos dirigirá al helpdesk. En caso de querer direccionar desde una url distinta solo deberemos incluir la dirección dentro de " r'' ", como ser: r'^helpdesk/' obteniendo así acceso al sistema desde http://dirección:puerto/helpdesk/.

Luego de agregar las apps y la url al proyecto se deberá sincronizar la base de datos nuevamente.
 python manage.py syncdb  
 python manage.py collectstatic  
 python manage.py migrate helpdesk  

En caso de no encontrarse errores en la ejecución del sync ni en la migración, se podrá correr el proyecto y empezar a disfrutar del helpdesk funcionando.



Para mas información, consultar los siguientes links correspondientes django-helpdesk.
https://pypi.python.org/pypi/django-helpdesk
https://github.com/rossp/django-helpdesk


1 comentario:

  1. Saludos, tengo una pregunta, este proyecto está hecho en python2 o en python3?

    ResponderEliminar