Informe de PPP Rojas - Curitima - Manuel - Alejandro PDF
Informe de PPP Rojas - Curitima - Manuel - Alejandro PDF
Informe de PPP Rojas - Curitima - Manuel - Alejandro PDF
SELVA
FACULTAD DE INGENIERIA EN INFORMATICA Y SISTEMAS
DICTAMEN Nº 005-BP-2022
FECHA : 17-10-2022
--------------------------------------------------------------------------------------------------
De mi especial consideración:
Habiendo revisado y validado el Informe Final de Manuel Alejandro Rojas Curitima titulado
“CONSTRUCCIÓN DEL APICATIVO MOVIL ERP EN LA EMPRESA LWP S.A.C”
Para tal efecto emito el dictamen con opinión FAVORABLE para ser aceptado por la Comisión de prácticas
Pre Profesionales, continuando con el trámite correspondiente.
Cordialmente,
3
web.
ATENTAMENTE
4
DEDICATORIA
AGRADECIMIENTO
RESUMEN
ÍNDICE GENERAL
AGRADECIMIENTO ............................................................................................................................. 5
RESUMEN .......................................................................................................................................... 6
INTRODUCCIÓN ............................................................................................................................... 11
CAPITULO I ...................................................................................................................................... 12
CARACTERISTICAS GENERALES DE LA ORGANIZACIÓN ....................................................................... 12
1.1. Descripción de la Organización .......................................................................................... 12
1.2. Misión y Visión.................................................................................................................. 12
1.3. Organigrama estructural.................................................................................................... 12
CAPITULO II ..................................................................................................................................... 13
MARCO TEORICO ............................................................................................................................. 13
2.1. Ingeniería de Software ...................................................................................................... 13
2.2. Patrones de Arquitectura de software ............................................................................... 13
2.2.1. Patrón de arquitectura en N capas.............................................................................. 13
2.3. Metodología de desarrollo ágil .......................................................................................... 14
2.3.1. Metodología Kanban .................................................................................................. 14
2.4. Sistema de Gestión Comercial............................................................................................ 15
2.4.1. ERP ............................................................................................................................ 15
2.5. Interfaz de programación de aplicaciones (API) .................................................................. 16
2.6. Transferencia del estado de representación (REST) ............................................................ 16
2.7. Backend ............................................................................................................................ 17
2.8. Frontend ........................................................................................................................... 17
2.9. Java .................................................................................................................................. 17
2.10. Spring Framework ......................................................................................................... 17
2.11. PostgreSQL .................................................................................................................... 18
2.12. Dart............................................................................................................................... 18
2.13. Flutter ........................................................................................................................... 18
2.14. Gestión de Versiones de código fuente ........................................................................... 18
CAPITULO III .................................................................................................................................... 19
ACTIVIDADES DESARROLLADAS ........................................................................................................ 19
3.1. Situación Actual ................................................................................................................ 19
3.1.1. Problemática ............................................................................................................. 19
3.2. Objetivos .......................................................................................................................... 19
3.3. Alcance ............................................................................................................................. 20
3.4. Cronograma de actividades ............................................................................................... 20
3.5. Escenario de trabajo .......................................................................................................... 20
3.5.1. Dirección del proyecto ............................................................................................... 20
3.5.2. Equipo de trabajo ...................................................................................................... 21
3.5.3. Recursos .................................................................................................................... 21
3.6. Descripción de la arquitectura del proyecto ....................................................................... 22
8
ÍNDICE DE FIGURAS
Figura 1:Organigrama Estructural LWP S.A.C .......................................................................... 12
Figura 2: Arquitectura de N capas .............................................................................................. 13
Figura 3: Modelo del tablero Kanban ......................................................................................... 15
Figura 4: Flujo de trabajo de una API ........................................................................................ 16
Figura 5:Comunicacion REST.................................................................................................... 17
Figura 6: Arquitectura Frontend ................................................................................................ 22
Figura 7: Arquitectura Backend del proyecto ............................................................................. 23
Figura 8: diagrama de arquitectura del proyecto ........................................................................ 24
Figura 9:Distribución del Proyecto en el IDE .............................................................................. 24
Figura 10:Distribución del Backend en el IDE ............................................................................ 25
Figura 11: Distribución del aplicativo móvil en el IDE ................................................................. 25
Figura 12:Tablero Kanban en trello ........................................................................................... 26
Figura 13:Miembros participantes en el tablero Kanban ............................................................. 26
Figura 14:Flujo de subida de código al repositorio en bitbucket. .................................................. 27
Figura 15:Prototipo – Registro de Configuraciones ..................................................................... 28
Figura 16:Flujo de trabajo para la construcción del módulo configuraciones. .............................. 29
Figura 17:Fragmento de Código del contenedor del módulo configuraciones. ............................... 30
Figura 18:Codificacion de los atributos, ruc, url, Código de acceso. ............................................. 31
Figura 19:Implementación de Alertas. ........................................................................................ 31
Figura 20:Creacion de servicios que se conectaran al Backend..................................................... 32
Figura 21:Creacion del controlador en el Backend. ..................................................................... 33
Figura 22: método de generación y validación de token ............................................................... 33
Figura 23:Implementacion de la capa de servicio para el registro de dispositivo ........................... 34
Figura 24: Capa de repositorio para el registro del dispositivo ..................................................... 34
Figura 25:Prototipo del módulo inicio de sesión. ......................................................................... 35
Figura 26:Prototipo del menú. .................................................................................................... 36
Figura 27: Flujo de trabajo para la construcción del módulo inicio de sesión ................................ 37
Figura 28: Fragmento de código de la vista Login........................................................................ 37
Figura 29: Fragmento de Código del servicio del login que conecta al Backend de la aplicación. ... 38
Figura 30:Fragmento de Código del controlador del Backend, que recibe la solicitud de login. ..... 38
Figura 31: Fragmento de Código del servicio del Backend. .......................................................... 39
Figura 32:Fragmento de Código del repositorio del Backend ....................................................... 39
Figura 33:Prototipo del Módulo categoría - Listar categorías ...................................................... 40
Figura 34:Prototipo de Nueva categoría. ..................................................................................... 41
Figura 35:Prototipo de edición de categoría ................................................................................ 41
Figura 36: Prototipo de la opción de eliminar la categoría. .......................................................... 42
Figura 37: Flujo de trabajo para la construcción del módulo categoría. ....................................... 42
Figura 38: Fragmento de código de listar categoría. .................................................................... 43
Figura 39:Fragmento de código de la opción de guardar categoría............................................... 43
Figura 40: Fragmento de código de la opción eliminar categoría .................................................. 44
Figura 41:Fragmento de código del servicio categoría ................................................................. 44
Figura 42: Fragmento de código del controlador del Backend - categoría ..................................... 45
Figura 43:Fragmento de código del servicio y repositorio del Backend- categoría ......................... 45
Figura 44: Prototipo listar marcas. ............................................................................................. 46
Figura 45:Prototipo- crear marca. .............................................................................................. 47
Figura 46:Prototipo- editar marca .............................................................................................. 47
Figura 47:Prototipo- eliminar marca .......................................................................................... 48
Figura 48:Flujo de trabajo para la construcción del módulo marca.............................................. 48
Figura 49: Fragmento de código- listar marcas. .......................................................................... 49
Figura 50: Fragmento de código del servicio- listar marca. .......................................................... 49
Figura 51:Fragmento de código del controlador del Backend-listar marca. .................................. 50
Figura 52: Fragmento de condigo del servicio del Backend- listar marca...................................... 50
Figura 53:Fragmento de código del repositorio del Backend- listar marca.................................... 50
Figura 54:Prototipo-listar cajas .................................................................................................. 51
Figura 55: Prototipo de apertura de caja. ................................................................................... 52
Figura 56:Prototipo de cierre de caja. ......................................................................................... 52
10
INTRODUCCIÓN
Cada año se crean nuevas empresas con diferentes innovaciones que compiten
con las otras que ya llevan algún tiempo en el mercado, para ello la clave de
supervivencia de una empresa es la constante actualización de los participantes con
ayuda de la tecnología, donde se pueden reducir costos, automatizaciones, entre otras
necesidades de la empresa, brindando una experiencia única y accesible a sus clientes.
Lead Working Partner S.A, busca construir un aplicativo móvil que comparta la
funcionalidad de su aplicación web, para que sus clientes puedan acceder desde un
dispositivo móvil y tener una experiencia mejorada. Para la cual en la presente practica
preprofesional se construyó el aplicativo móvil.
CAPITULO I
CARACTERISTICAS GENERALES DE LA ORGANIZACIÓN
1.1. Descripción de la Organización
• Nombre: Lead Working Partner S.A.C
• Ubicación Geográfica
Departamento: Huánuco
Provincia: Leoncio Prado
Distrito: Rupa Rupa
Dirección: Jr. Arequipa #1085
Visión
Ser reconocidos por nuestro mercado, contar con productos
maduros(software) para ofertar en el mercado mundial.
CAPITULO II
MARCO TEORICO
2.1. Ingeniería de Software
(Pressman, 2010) define la ingeniera de software como una disciplina de cuatro
capas: herramientas, métodos, procesos y un enfoque de calidad. Se complementa con
la definición en cinco áreas de conocimiento relacionada a la capa de procesos de
desarrollo de software: requisitos, diseño, construcción, pruebas y mantenimiento de
software, para obtener un producto que cumpla con los estándares de calidad y las
expectativas del cliente (Ieee Computer Society, 2014).
Este patrón tiene como principio el aislamiento, es decir las capas se acceden
de forma horizontal, por ejemplo, la capa de presentación no puede conectarse
directamente con la capa de persistencia, para ello de pasar por la capa de negocio. El
concepto de capas significa que los cambios realizados en una capa de la arquitectura
generalmente no afectan a los componentes de las otras capas(Richards, 2015).
Las Apis permiten que sus productos y servicios se comuniquen entre sí, sin
necesidad de saber cómo están implementados. Las Apis son un medio simplificado para
conectar su propia infraestructura a través del desarrollo de aplicaciones nativas de la
nube, pero también permiten compartir los datos con clientes y usuarios externos como
se muestra en la figura 4 (Bortenschlager et al., 2020).
2.7. Backend
Es la parte que se ejecuta en un servidor, es el responsable de tratar los datos
en términos general, esto significa que es responsable de recibir las peticiones de los
clientes para que se les proporcione datos, para que puedan visualizarlos (Filipova &
Vilão, 2018).
2.8. Frontend
El desarrollo Frontend, también conocido como desarrollo del lado del cliente,
es la práctica de producir HTML, CSS Y JavaScript para un sitio web o una aplicación web
para que un usuario pueda verlos e interactuar directamente con ellos (Gerasimov et
al., 2020).
2.9. Java
Es un lenguaje de programación y una plataforma informática comercializada
por primera vez en 1995 por Sun Microsystems. Hay muchas aplicaciones y sitios web
que no funcionaran a menos que tenga java instalado y cada día se crea más. Java es
más rápido, seguro y fiable(Oracle, 1995).
2.11. PostgreSQL
PostgreSQL es un sistema de gestión de base de datos relacionales de objetos
(ORDBMS) basado en POSTGRES, desarrollado en el departamento de ciencias de la
computación de la universidad de Berkeley (PostgreSQL: Documentation: 14:
PostgreSQL 14.4 Documentation, n.d.).
2.12. Dart
Dart es un lenguaje optimizado para aplicaciones rápidas en cualquier
plataforma, esta soportado por Google, se creó como una alternita a java en cuanto a
desarrollo móvil, pero poco a poco fue creciendo hasta ser multiplataforma, es decir el
programador solo crea un aplicativo para distintas plataformas gracias a la
interoperabilidad de Dart, además este soporta desarrollo nativo tanto para java o kotlin
como Swift y Objective-C (Dart Programming Language | Dart, n.d.).
2.13. Flutter
Flutter es un Frameworks de interfaz de usuario creado por Google, el lenguaje
de programación con el que trabaja es Dart, consta de una colección de elementos de
interfaces de usuario reutilizables, que puedes modificar(Flutter - Build Apps for Any
Screen, n.d.).
CAPITULO III
ACTIVIDADES DESARROLLADAS
3.1. Situación Actual
3.1.1. Problemática
La empresa “Lead Working Partner S.A.C”, tiene como uno de sus productos,
un sistema de gestión comercial web llamado “DONCA ERP”. Debido a la acogida que
tiene el sistema, la empresa quiere innovar presentando una nueva opción a sus clientes
para que puedan acceder desde sus dispositivos móviles mediante una aplicación.
3.3. Alcance
Este trabajo está limitado al alcance que tendrán los módulos de:
• Configuraciones.
• Inicio de sesión.
• Ventas.
• Pedido.
• Caja
• Marcas.
• Categorías.
Contacto Jhil.palacios@unas.edu.pe
Analista programador
Nombre Manuel Rojas Curitima
Contacto manuel.rojas@unas.edu.pe
Los archivos tendrán una extensión. Dart, ya que Flutter trabaja con el lenguaje
de programación Dart, a su vez los proxyservice interactúan con el Backend, mediante
una conexión REST.
23
• Backend
La figura 7 muestra la arquitectura Backend del proyecto, este compuesto por
una arquitectura en capas.
Las peticiones que llegan desde el servicio del Frontend son recibidos por el
controlador del Backend, quien será el encargado de dirigir la solicitud hacia el servicio,
el repositorio y finalmente la base de datos, dependiendo de la operación que se solicite
desde el Frontend.
24
Una vez creado el contenedor comenzamos a crear los atributos como son, el
ingreso ruc, url y código acceso como se muestra en la figura 18.
datos del ruc, para ello se usó la opción TextInputType que provee Flutter.
Se debe tener en cuenta, para indicar a spring que la clase será un controlador
se debe especificar la etiqueta @RestController y finalmente indicarle a la función con
la etiqueta @RequestMapping que esta se activará cuando se solicite de acuerdo con la
determinada ruta.
33
Para que otros sistemas no puedan acceder a la ruta del api, se hizo una
validación por token usando json web tokens, quien será el encargado de verificar si es
una fuente confiable la que está realizando la petición.
Figura 27: Flujo de trabajo para la construcción del módulo inicio de sesión
Luego este será recibido por el controlador del Backend, quien luego de revisar
si es una petición valida, lo pasara hacia el servicio, que finalmente enviara al repositorio
para que resuelva y responder satisfactoriamente o un error si lo hubiera como se
muestran en las figuras 51,52,53.
Figura 52: Fragmento de condigo del servicio del Backend- listar marca.
La figura 54 muestra el prototipo del módulo caja, la lista debe contener las
opciones de cerrar caja en caso este abierta, además debe tener la opción de eliminar,
para crear una nueva caja, el usuario deberá presionar el botón amarillo con el icono de
una cruz, como se muestran en la figura 55,56,57.
Figura 55: Prototipo de apertura de caja.
CONCLUSIONES
Se logro construir el aplicativo móvil Donca erp con los módulos planteados,
además del uso de buenas prácticas del desarrollo de software y código limpio.
RECOMENDACIONES
BIBLIOGRAFÍA
Bortenschlager, M., Codelli, D., & Willmott, S. (2020). The API owner ’ s manual
Best practices of successful API teams.
Dart programming language | Dart. (n.d.). Retrieved September 13, 2022, from
https://dart.dev/
Flutter - Build apps for any screen. (n.d.). Retrieved September 13, 2022, from
https://flutter.dev/
Gerasimov, A., Heuser, P., Ketteniß, H., Letmathe, P., Michael, J., Netz, L.,
Rumpe, B., & Varga, S. (2020). Generated enterprise information systems:
MDSE for maintainable co-development of frontend and backend. CEUR
Workshop Proceedings, 2542, 22–30.
Jacobson, I., & Stimson, R. (2017). Escaping Method Prison – On the Road to
Real Software Engineering. In The Essence of Software Engineering.
https://doi.org/10.1007/978-3-319-73897-0_3
Kniberg, H., & Skarin, M. (2009). Kanban and Scrum making the most of both.
Crisp, 1, 1–41.
McCormick, M. (2012). Waterfall and Agile Methodology. MPCS Inc, 8/9/2012,
1–8.
Qué es el control de versiones | Atlassian Git Tutorial. (n.d.). Retrieved June 16,
2022, from https://www.atlassian.com/es/git/tutorials/what-is-version-control
Richards, M. (2015). Software Architecture Patterns - Understanding Common
Architecture Patterns and When to Use Them. In Encyclopedia of
Database Systems.