0% encontró este documento útil (0 votos)
11 vistas10 páginas

Trabajo Final Integrador

El trabajo final integrador de Programación II consiste en completar un sistema incompleto basado en un modelo de concesionarias utilizando Python y Flask. Los estudiantes deben trabajar en grupos de hasta tres, entregar una carpeta comprimida con los archivos modificados y cumplir con las condiciones de originalidad y entrega. Se incluyen ejercicios específicos para implementar clases y métodos relacionados con concesionarias, clientes, vehículos y ventas, además de enlaces para verificar el funcionamiento del sistema.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas10 páginas

Trabajo Final Integrador

El trabajo final integrador de Programación II consiste en completar un sistema incompleto basado en un modelo de concesionarias utilizando Python y Flask. Los estudiantes deben trabajar en grupos de hasta tres, entregar una carpeta comprimida con los archivos modificados y cumplir con las condiciones de originalidad y entrega. Se incluyen ejercicios específicos para implementar clases y métodos relacionados con concesionarias, clientes, vehículos y ventas, además de enlaces para verificar el funcionamiento del sistema.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TRABAJO FINAL INTEGRADOR

PROGRAMACIÓN II - 2025 – 2do cuatrimestre

TECNICATURA UNIVERSITARIA EN DESARROLLO WEB

Objetivos

●​ Aplicar y reforzar los conceptos adquiridos durante toda la cursada.

Condiciones de Entrega

●​ Deberá realizarse una entrega grupal, con grupos de no más de 3 (tres)


alumnos.

●​ Se va a brindar como base para el trabajo una carpeta comprimida que


contiene un sistema incompleto. La entrega deberá consistir de una
carpeta comprimida que contenga los archivos de la base proveída más
los archivos y modificaciones solicitados en las consignas de este
documento. Se deberá indicar con claridad la sección del código que se
corresponde con cada uno de los ejercicios del documento. La carpeta
debe ser subida en la sección correspondiente del Campus.

●​ Se deberá respetar la fecha de entrega, la misma será informada en el


campus.

●​ El Trabajo Práctico será calificado como Aprobado o Desaprobado.

●​ Las soluciones del grupo deberán ser de autoría propia. De encontrarse


soluciones idénticas entre diferentes grupos, dichos trabajos prácticos
serán calificados como Desaprobado, lo cual será comunicado en la
devolución.

●​ Las entregas individuales serán calificadas como Desaprobado.


EJERCICIOS:

Nota: asumir que todos los parámetros recibidos en los métodos


correspondientes a los ejercicios del trabajo son del tipo de datos correcto, con
excepción de los casos donde se especifique la necesidad de agregar
validaciones.

Nota: para iniciar el sistema, se debe ejecutar:

pip install flask

python -m flask run

Se provee como base un servidor http desarrollado con Python y Flask, que
utiliza como fuente de datos precargados un archivo con formato JSON. El
sistema, una vez esté funcional, debería ser capaz de recuperar los datos del
archivo JSON, crear objetos a partir de los mismos, y retornar una representación
de dichos objetos como cadena de texto formateada.

Se va trabajar sobre un modelo de concesionarias, incluyendo su nombre,


clientes, vehículos, y sucursales, de las cuales se registran las ventas realizadas.
Se provee el código de las clases correspondientes a los siguientes diagramas

Página 1
En el archivo [Link]:

Página 2
En el archivo [Link]:

Página 3
En el archivo [Link]:

En el archivo servicio_concesionarias.py:

Nota: El método "obtenerPorId" se provee ya implementado, y se encarga de


recuperar los datos del archivo JSON correspondientes a la concesionaria
indicada.

Página 4
Y se exige que se completen los siguientes ítems:

1)​ En el archivo [Link], generar la clase correspondiente al siguiente


diagrama:

Página 5
2)​ En el archivo [Link], generar la clase correspondiente al siguiente
diagrama:

3)​ En el archivo [Link], generar la clase correspondiente al siguiente


diagrama:

Página 6
4)​ En el archivo [Link], generar la clase correspondiente al siguiente
diagrama:

5)​ Actualizar tanto las clases proveídas (con excepción de


ServicioConcesionarias) como también las clases creadas en los puntos
anteriores para incluir el método __eq__, comparando en todos los casos
por "numero_id" (con excepción de las subclases de "Vehiculo", que
deben heredar __eq__ de la superclase), y el método __str__, mostrando
en todos los casos la información correspondiente a todas las propiedades
de cada clase (con excepción de la clase "Vehiculo", que declara el
método como abstracto para ser implementado en las subclases).

Página 7
6)​ En el archivo servicio_clientes.py, implementar el método
"obtenerTotalVentasPorCliente" de la clase correspondiente al siguiente
diagrama:

La clase y el método se proveen definidos, pero es necesario implementar la


lógica interna del método, que se provee con "pass". El mismo debe retornar un
número entero calculado como la suma de los montos de todas las ventas
realizadas al cliente indicado en la concesionaria indicada. El mismo debe
retornar 0 en caso de que la concesionaria no exista, el cliente no exista, o no
existan ventas al cliente indicado en la concesionaria indicada. Se debe utilizar el
método "obtenerPorId" de la clase "ServicioConcesionarias" para recuperar
todos los datos disponibles de la concesionaria pertinente, y trabajar sobre los
mismos para obtener el resultado solicitado.

7)​ En el archivo servicio_vehiculos.py, implementar el método


"obtenerVehiculosPorSucursalYEstado" de la clase correspondiente al
siguiente diagrama:

La clase y el método se proveen definidos, pero es necesario implementar la


lógica interna del método, que se provee con "pass". El mismo debe retornar una
lista de todos los vehículos que se encuentren en el estado indicado, en la
sucursal indicada de la concesionaria indicada. El mismo debe retornar una lista
vacía en caso de que la concesionaria no exista, la sucursal no exista, o no
existan vehículos con el estado indicado en la sucursal indicada de la
concesionaria indicada. Se debe utilizar el método "obtenerPorId" de la clase
"ServicioConcesionarias" para recuperar todos los datos disponibles de la

Página 8
concesionaria pertinente, y trabajar sobre los mismos para obtener el resultado
solicitado.

Enlaces para verificación de correctitud:

Para auxiliar el proceso de verificación de correctitud del funcionamiento del


sistema, pueden hacer click a los siguientes enlaces dentro de un navegador:

[Link]

El mismo retorna el resultado de ejecutar str() sobre la concesionaria con


numero_id igual a 1 (la única registrada en el archivo JSON proveído). Se
deberían visualizar todos los datos registrados de la concesionaria, incluyendo
vehículos, clientes, y sucursales, cada uno con todos sus datos correspondientes,
incluidas las ventas de las sucursales.

[Link]

El mismo retorna como resultado el monto total de todas las ventas al cliente con
numero_id igual a 2 en la concesionaria con numero_id igual a 1 (la única
registrada en el archivo JSON proveído), en este caso 3000000.

[Link]

El mismo retorna como resultado información de todos los vehículos (cada


vehículo siendo representado con un string generado con str()) cuyo atributo
estado_id tenga valor 1 que pertenezcan a la sucursal con numero_id igual a 2 de
la concesionaria con numero_id igual a 1 (la única registrada en el archivo JSON
proveído).

Página 9

También podría gustarte