Está en la página 1de 6

Universidad de San Carlos de Guatemala

Escuela de Ingeniería en Ciencias y Sistemas, Facultad de Ingeniería


Introducción a la programación y computación 2, 2do. Semestre 2021.

PROYECTO 3

202004724 – Carlos Daniel Acabal Pérez

Resumen El programa se desarrolló en Python, HTML y


CSS.
El proyecto 3 se llevó a cabo con el objetivo de
desarrollar una solución integral que implemente
un API que brinde servicios utilizando el
Protocolo HTTP bajo el concepto de Palabras clave
programación orientada a objetos (POO), mediante ● API
la lógica y conocimientos que se le han impartido ● Backend
durante la clase y aplicarlos en el laboratorio. ● FrontEnd
● XML
Se presentó el problema del proyecto y la solución
que se dio al mismo, así como la utilización del Abstract
paradigma Programación Orientada a Objetos
(POO) para utilizar clases y objetos que emulen Project 3 was carried out with the aim of developing
las entidades que posee el problema. a comprehensive solution that implements an API
that provides services using the HTTP Protocol
Además se adjuntó un diagrama de clases que under the concept of object-oriented programming
modela los atributos, propiedades y relaciones (OOP), through the logic and knowledge that has
entre clases. Se explicó la forma en la que se been taught during the class and apply them in the
implementó el FrontEnd y Backend del software, laboratory.
además del uso de hilos para mostrar los
movimientos de una máquina. The project problem and the solution given to it
were presented, as well as the use of the Object
Se mostró el funcionamiento de cada una de las Oriented Programming (OOP) paradigm to use
opciones que posee el programa, también lo que classes and objects that emulate the entities that
debe ingresar el usuario y la respuesta que debe have the problem.
mostrar el programa.
Universidad de San Carlos de Guatemala
Escuela de Ingeniería en Ciencias y Sistemas, Facultad de Ingeniería
Introducción a la programación y computación 2, 2do. Semestre 2021.

In addition, a class diagram was attached that


models the attributes, properties and relationships Desarrollo del tema
between classes. It describes the way in which the Descripción del problema:
FrontEnd and Backend of the software were La Superintendencia de Administración Tributaria
implemented, as well as the use of threads to show
the movements of a machine. necesita un software que pueda ser consumido desde
Internet como un servicio. Este software recibirá un
The operation of each of the options that the mensaje con los datos para solicitar la autorización
program has was shown, as well as what the user de un Documento Tributario Electrónico (DTE)
must enter and the answer that the program must
emitido por un contribuyente y como respuesta
show.
The program was developed in Python, HTML and emitirá un número único de autorización, este
CSS. número será un correlativo que iniciará con el valor
1 cada día y no deberá repetirse de nuevo en ese día.
Solución:
Keywords a. Implementación de la Programación
● API Orientada a Objetos Se utilizaron los
principios de la programación orientada a
● Backend
objetos:
● FrontEnd 1. Abstracción: Se analizaron las
● XML características del problema para modelar el
programa y luego se agruparon en clases y
objetos.
Introducción
En la actualidad casi todas las empresas tienen un 2. Encapsulación: Para asegurar la
información en el bloque de código, se
sitio web, el cual posee información acerca de la
agruparon en las clases los atributos y
empresa o proporciona servicios, la forma en la que métodos que serán privados y los que
se producen los servicios utilizan la comunicación tendrán acceso público. La forma de acceder
cliente-servidor. Además utilizan protocolos HTTP y modificar los atributos de los objetos se
para realizar distintas peticiones. realizó a través de los métodos “setters” y
“getters”.
El desarrollo web se refiere a la construcción,
creación y mantenimiento de sitios web. Incluye 3. Polimorfismo: Permite que métodos y
aspectos como diseño web, publicación web, funciones con el mismo nombre ejecuten
distintas operaciones sin ningún problema.
programación web y base de datos gestión. Además,
un desarrollador web puede ayudar a mantener y El diagrama de clases que modela los
actualizar una base de datos utilizada por un sitio atributos, propiedades y relaciones entre
web dinámico. clases se encuentra en la sección de Anexos.

b. BackEnd
Universidad de San Carlos de Guatemala
Escuela de Ingeniería en Ciencias y Sistemas, Facultad de Ingeniería
Introducción a la programación y computación 2, 2do. Semestre 2021.

información de los
Es una API que brindará servicios utilizando movimientos de cada Nit
el protocolo HTTP, su funcionalidad 5. resetear
principal es procesar los datos recibidos del Borra los datos almacenados
FrontEnd Todos a excepción de procesar
retornan datos en formato XML
i. Los servicios se desarrollaron en el como respuesta de la API.
Framework Flask, se definieron los
siguientes endPoints: c. FrontEnd
1. /reset Se desarrolló en el Framework Django
2. /consulta-datos i. URLs
3. /peticiones/resumen-iva Se utilizaron los endPoints del
4. /peticiones/resumen-rango BackEnd y los siguientes:
5. /peticiones/grafica /info
6. /peticiones/pdf /documentacion
7. /procesar ii. Templates:
1. index
ii. Se utilizó la clase DTE y Consume la carga y consulta
Autorización, el modelo de estas de autorizaciones, además
clases está en la sección de Anexos. posee el reseteo
2. info
iii. Se utilizó un Gestor, el cual procesa Posee información del
la información en formato XML, las estudiante
peticiones que que realiza son las 3. documentacion
siguientes: Tiene la documentación
1. Procesar 4. peticiones
Filtra las autorizaciones por Consume los servicios de
fecha y valida los datos de resúmenes, gráficas y reporte
entrada para el conteo de pdf
errores y creación de códigos iii. Vistas:
de aprobación Cada vista le corresponde a una
2. Consultar URL, éstas hacen las peticiones a la
Retorna información sobre las API y luego retornan los templates
solicitudes de autorizaciones con la información.
3. rangoFecha
Filtra autorizaciones por la
fecha dada y retorna
información de los
movimientos de cada Nit Funcionamiento del programa:
4. resumenIva 1. Carga del Archivo
Filtra autorizaciones por el Al presionar el siguiente botón se mostrará
rango de fecha dado y retorna un cuadro de diálogo, seleccione un archivo
XML con la solicitud de autorización:
Universidad de San Carlos de Guatemala
Escuela de Ingeniería en Ciencias y Sistemas, Facultad de Ingeniería
Introducción a la programación y computación 2, 2do. Semestre 2021.

5. Resumen rango de fechas


Deberá ingresar una fecha de inicio y fin,
luego de presionar el botón enviar, se le
mostrará una gráfica de los valores totales o
Figura 1. Carga de Archivo sin IVA
Fuente: Elaboración propia, 2021
2. Enviar
Al presionar este botón el contenido del área
de texto entrada será enviado a /procesar de
la API

Figura 2. Area entrada y salida


Fuente: Elaboración propia, 2021
3. Reset
Al presionar este botón los datos
almacenados se borran automáticamente
Figura 5. Resumen rango
Fuente: Elaboración propia, 2021
6. Gráficas
Al presionar éste botón se mostrará una
gráfica de los movimientos hechos por cada
Figura 3. Botón enviar y reset emisor en las fechas consultadas de las
Fuente: Elaboración propia, 2021 peticiones anteriores
4. Resumen Iva 7. Reporte PDF
Deberá ingresar una fecha y luego de Al presionar este botón se descargará un
presionar el botón enviar, se le mostrará una documento en pdf que muestra un reporte de
gráfica de los valores, IVA y totales de cada las peticiones hechas
Nit emisor
8. Ayuda

Figura 4. Resumen IVA


Fuente: Elaboración propia, 2021
Figura 6. Ayuda
Universidad de San Carlos de Guatemala
Escuela de Ingeniería en Ciencias y Sistemas, Facultad de Ingeniería
Introducción a la programación y computación 2, 2do. Semestre 2021.

Fuente: Elaboración propia, 2021 Anexos:


a. Información del Estudiante Diagrama de Clases:
Al presionar este botón podrá visualizar la
información del estudiante

Figura 7. Información estudiante


Fuente: Elaboración propia, 2021
b. Documentación
Al presionar este botón se mostrará la
documentación del programa

Figura 8. Documentación
Fuente: Elaboración propia, 2021
Conclusiones
1. La abstracción es el elemento más
importante para la modelación de sistemas,
puesto que a partir de cómo representamos el Figura 9. Diagrama de Clases
Fuente: Elaboración propia, 2021
mundo real, nuestro modelo puede describir
Arquitectura general:
de manera sencilla el sistema de interés.
2. Puesto que la API desarrollada da respuestas
cada vez que se le hace una solicitud, se
pueden crear varios aplicaciones clientes que
consuman la API.
3. El lenguaje de marcado XML es una muy
buena opción para compartir datos a través
de diferentes sistemas, como Internet.
Universidad de San Carlos de Guatemala
Escuela de Ingeniería en Ciencias y Sistemas, Facultad de Ingeniería
Introducción a la programación y computación 2, 2do. Semestre 2021.

Figura 10. Arquitectura General


Fuente: Elaboración propia, 2021

También podría gustarte