´ ´ UNIVERSIDAD SIMON BOLIVAR DECANATO DE ESTUDIOS PROFESIONALES COORDINACIO´N DE INGENIER´IA DE LA COMPUTACIO´N Desarrollo del sistema web para manejo de Tickets de Ogangi Por: Jesus Torres ´ INFORME DE PASANTIA Presentado ante la Ilustre Universidad Simo´n Bol´ıvar como requisito parcial para optar al t´ıtulo de Ingeniero en Computaci´on Sartenejas, Junio de 2014 ´ ´ UNIVERSIDAD SIMON BOLIVAR DECANATO DE ESTUDIOS PROFESIONALES COORDINACIO´N DE INGENIER´IA DE LA COMPUTACIO´N Desarrollo del sistema web para manejo de Tickets de Ogangi Por: Jesus Torres Realizado con la asesor´ıa de: Tutor Academico: Angela Di Serio Tutor Industrial: Carlos Villalobos (Retirado) ´ Grisel DAlessio (Asignado) ´ INFORME DE PASANTIA Presentado ante la Ilustre Universidad Simo´n Bol´ıvar como requisito parcial para optar al t´ıtulo de Ingeniero en Computaci´on Sartenejas, Junio de 2014 Resumen Se desarrollo´ un sistema que ofrece servicio y soporte t´ecnico inmediato e ininterrumpido para garantizar la atenci´on inmediata de cualquier requerimiento, consulta o falla que puedan reportarse en el uso de los servicios ofrecidos por Ogangi, buscando mejorar el servicio presta- do a los clientes. Elsistemademanejodeticketsresulto´ma´samigablealosusuarios,ofrecefuncionalidades ma´scompletas,facilitalaatencio´nyseguimientodelosticketsas´ıcomomantieneunainterfaz agradable y actual. Para el desarrollo del sistema se sigui´o la metodolog´ıa SCRUM, se desarroll´o un sistema cliente/servidor basado en web, para el cliente se utilizo´ el framework o marco de trabajo AngularJS y para el servidor NodeJS junto con Express y MongoDB El acceso al sistema depende de las credenciales guardadas en un servidor LDAP, el sistema permite la creacio´n, transferencia, seguimiento y asignaci´on de tickets, maneja en- cuestas, reportes y estad´ısticas y mantiene integraci´on con un servidor SMTP para env´ıo de correos electr´onicos as´ı como conexio´n con un servicio web SOAP para env´ıo de sms propio delacompan˜´ıa,todoestosindescuidarunainterfazagradableeintuitiva,pensadaydisen˜ada para adaptarse a distintos taman˜os de pantallas, permitiendo as´ı su uso tanto en dispositivos mo´viles como en computadores personales. La interfaz gr´afica fue realizada con el framework Twitter Bootstrap, esto ayud´o a gener- ar un disen˜o adaptable a diferentes taman˜os de pantalla, para la generacio´n del CSS se utilizo´ LESS, lo que optimiza en gran medida el css generado. iv ´ Indice general ´Indice general V ´Indice de cuadros X ´Indice de figuras XI Introduccio´n 1 1. Descripci´on de la empresa 3 2. Marco teo´rico 9 2.1. Sistema de seguimiento de incidentes . . . . . . . . . . . . . . . . . . . . . . 9 2.1.1. Ticket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2. Model-View-ViewModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3. Modelo Cliente/Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.1. Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.2. Sevidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4. Pol´ıtica del Mismo Origen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.1. Definicion de Origen . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5. CORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3. Marco Tecnol´ogico 14 3.1. JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2. Aplicacio´n web (Web App) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3. HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4. CSS3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5. Less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.6. JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.7. CSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.8. Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.9. AngularJS (v-1.2.13) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.9.1. Angular-cookies (v-1.2.13) . . . . . . . . . . . . . . . . . . . . . . . . 17 3.9.2. Angular-resource (v-1.2.13) . . . . . . . . . . . . . . . . . . . . . . . 18 3.9.3. Angular-route (v-1.2.13) . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.9.4. Angular-touch (v-1.2.13) . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.9.5. Angular-bootstrap (v-0.10.0) . . . . . . . . . . . . . . . . . . . . . . . 18 3.9.6. Angular-ui-router (v-0.2.9) . . . . . . . . . . . . . . . . . . . . . . . . 18 3.9.7. Angular-translate (v-2.0.0) . . . . . . . . . . . . . . . . . . . . . . . . 18 3.9.8. Ng-flow (v-2.0.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.9.9. Ng-csv (v-0.0.7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.9.10. Ng-table (v-0.3.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.9.11. Angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.9.12. Ng-ckeditor (v-0.2.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.10.API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.11.REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.12.SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.13.WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.14.Servicio Web (Web Service) . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.15.LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.16.NodeJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.16.1. Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.16.2. FlowJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.16.3. NodeMailer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.16.4. Soap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.16.5. Ldapjs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.16.6. Moongose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.17.Base de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.17.1. Sistema de Gesti´on de Base de Datos . . . . . . . . . . . . . . . . . . 24 3.17.2. SQL/NoSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.18.MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 vi 4. Marco Metodologico 26 4.1. SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.1. El Equipo Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.2. Eventos de Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1.2.1. El Sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.1.2.2. Reunio´n de Planificacio´n de Sprint (Sprint Planning Meeting) 27 4.1.2.3. Objetivo del Sprint (Sprint Goal) . . . . . . . . . . . . . . . 28 4.1.2.4. Scrum Diario (Daily Scrum) . . . . . . . . . . . . . . . . . . 28 4.1.2.5. Revisio´n de Sprint (Sprint Review) . . . . . . . . . . . . . . 28 4.1.2.6. Retrospectiva de Sprint (Sprint Retrospective) . . . . . . . . 28 4.1.3. Artefactos de Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1.3.1. Lista de Producto (Product Backlog) . . . . . . . . . . . . . 29 4.1.3.2. Lista de Pendientes del Sprint (Sprint Backlog) . . . . . . . 29 4.2. La metodolog´ıa aplicada al proyecto de pasant´ıa . . . . . . . . . . . . . . . . 29 4.2.1. El Equipo Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.2.2. Artefactos de Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.2.1. Product Backlog . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.3. Proceso Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3. Diagrama de Aplicaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5. Desarrollo del Proyecto 33 5.1. Arquitectura y Disen˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.1.1. Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.1.2. Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.1.3. Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.1.4. Base de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2. Implementaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2.1. El Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2.2. El Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.2.3. La Base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.2.4. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2.5. Algunas pantallas de la aplicaci´on . . . . . . . . . . . . . . . . . . . . 42 6. Conclusiones y recomendaciones 53 vii Bibliograf´ıa 55 A. Informacio´n adicional Sobre Metodologia SCRUM 61 A.1. Primera iteracio´n – Maquetacio´n de la aplicacio´n . . . . . . . . . . . . . . . 61 A.1.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 61 A.1.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 A.1.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 A.2. Segunda iteracio´n – Plataforma y migracio´n de datos . . . . . . . . . . . . . 62 A.2.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 62 A.2.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 A.2.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 A.3. Tercera iteracio´n – Base funcional del sistema . . . . . . . . . . . . . . . . . 63 A.3.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 63 A.3.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 A.3.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 A.4. Cuarta iteracio´n – Autenticaci´on . . . . . . . . . . . . . . . . . . . . . . . . 64 A.4.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 64 A.4.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 A.4.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 A.5. Quinta iteraci´on – Procesamiento de Tickets . . . . . . . . . . . . . . . . . . 65 A.5.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 65 A.5.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 A.5.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 A.6. Sexta iteracio´n – Datos adjuntos y estados de los tickets . . . . . . . . . . . 66 A.6.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 66 A.6.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 A.6.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 A.7. S´eptima iteracio´n – Encuesta de satisfaccio´n . . . . . . . . . . . . . . . . . . 68 A.7.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 68 A.7.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 A.7.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 A.8. Octava iteracio´n – Administracio´n del sistema . . . . . . . . . . . . . . . . . 69 A.8.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 69 A.8.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 viii A.8.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 A.9. Novena iteraci´on – Generaci´on y exportaci´on de reportes . . . . . . . . . . . 70 A.9.1. Planificacio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 70 A.9.2. Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 A.9.3. Revisio´n de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 A.10.D´ecima iteraci´on – Soporte multilenguaje . . . . . . . . . . . . . . . . . . . . 71 A.10.1.Planificaci´on de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 71 A.10.2.Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.10.3.Revisi´on de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.11.Onceava iteraci´on – Notificaciones asociadas a los tickets . . . . . . . . . . . 72 A.11.1.Planificaci´on de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 72 A.11.2.Objetivo del sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 A.11.3.Revisi´on de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 B. CouchDB 74 ix ´ Indice de cuadros 2.1. Pol´ıtica del Mismo Origen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 B.1. Comparativa CouchDB vs MongoDB . . . . . . . . . . . . . . . . . . . . . . 76
Description: