Trabajo Práctico Final - año 2023

Objetivos

Que el alumno logre:

  • Adquirir habilidades prácticas sobre los conocimientos impartidos en las principales tecnologías y herramientas para el desarrollo y construcción de aplicaciones informáticas actuales.

Modalidad de Desarrollo

Grupal: en grupos de entre 4 y 7 alumnos.

Formato de Presentación

Individual con coloquio en máquina e informe impreso y digital (formato .odt .doc .pdf).

Fecha de Entrega

01/07/2023

Contenido del Informe de Presentación

  • Formato de hoja: A4.
  • Carátula: Nombre de la materia, año de cursado, número de grupo, nombre completo de los integrantes. Correo electrónico de cada integrante.
  • índice de contenidos: índice temático de contenidos, organizado por lenguaje o herramientas de programación.
  • Informe detallado: Descripción de las decisiones de diseño y de las soluciones implementadas para cumplimentar el práctico.

Aspectos de Evaluación

La evolución de trabajo se realizará de acuerdo a la siguiente tabla:

AspectoItemCondiciónPuntaje
Cumplimiento funcional de la aplicaciónFuncionalidadMandatorio15
Arquitectura empleada
MultiplataformaOpcional10
Cliente Liviano y cliente móvilMandatorio10
Acceso a Datos
Base de DatosMandatorio10
ORMOpcional10
Lógica de NegociosMandatorio
Validación de DatosOpcional5
Exposición de Servicios (Web Services)Mandatorio15
Presentación
UsabilidadMandatorio10
MVCOpcional10
EstilosOpcional5
Total100

Actividad 1: Escenario

El bar de Pedro quiere automatizar las compras que los clientes realizan en las instalaciones de la FRRe. Para esto se necesita matener una lista de productos, los precios asociados a cada producto, las compras realizadas y las ventas realizadas.

El sistema debe realizar al fin del dia un reporte de las ventas realizadas, indicando el margen de ganacias. Estos reportes debe ser también semanales, mensuales y anuales.

CREATE TABLE productos (
 id     integer   not null,
 nombre    varchar(20)  not null,
 stock    integer   not null,
 precio    decimal(12,2) not null,
 categoria   varchar(20)  null,
 fecha_actualizacion timestamp   null
);

ALTER TABLE productos 
 ADD CONSTRAINT pk_productos 
  PRIMARY KEY (id);
 

CREATE TABLE compras (
 id     integer   not null,
 fecha    timestamp   not null,
 proveedor   varchar(50)  null
);

ALTER TABLE compras 
 ADD CONSTRAINT pk_compras 
  PRIMARY KEY (id);
 
CREATE TABLE linea_compras (
 id_compra   integer   not null,
 linea    integer   not null,
 id_producto   integer   not null,
 cantidad   integer   not null,
 precio_unitario  decimal(12,2) not null
);
 
ALTER TABLE linea_compras 
 ADD CONSTRAINT pk_linea_compras 
  PRIMARY KEY (id_compra, linea);
  
ALTER TABLE linea_compras
    ADD CONSTRAINT fk_linea_compras_ref_producto 
    FOREIGN KEY (id_producto) 
    REFERENCES productos (id);
   
ALTER TABLE linea_compras
    ADD CONSTRAINT fk_linea_compras_ref_compras 
    FOREIGN KEY (id_compra) 
    REFERENCES compras (id);
    
CREATE TABLE ventas (
 id     integer   not null,
 fecha    timestamp   not null,
 cliente    varchar(50)  null
); 

ALTER TABLE ventas 
 ADD CONSTRAINT pk_ventas 
  PRIMARY KEY (id);
 
CREATE TABLE linea_ventas (
 id_venta   integer   not null,
 linea    integer   not null,
 id_producto   integer   not null,
 cantidad   integer   not null,
 precio_unitario  decimal(12,2) not null
);
 
ALTER TABLE linea_ventas 
 ADD CONSTRAINT pk_linea_ventas 
  PRIMARY KEY (id_venta, linea);
  
ALTER TABLE linea_ventas
    ADD CONSTRAINT fk_linea_ventas_ref_productos
    FOREIGN KEY (id_producto) 
    REFERENCES productos (id);

ALTER TABLE linea_ventas
    ADD CONSTRAINT fk_linea_ventas_ref_ventas
    FOREIGN KEY (id_venta) 
    REFERENCES ventas (id);

Desarrollo

Para el desarrollo del TP, los grupos deberán definir, coordinando entre ellos, las APIs de los diferentes actores y publicarlas en el sitio web de la materia (por medio de PRs).

Por ejemplo: para la definición de las APIs, los diferentes grupos deberán generar, en forma colaborativa el documento de Definición de APIs. Esto lo deberán hacer, haciendo un fork de repositorio del sitio web, generando la documentación y realizando un PR, como se dio en el TP 1.