Trabajo Práctico Final - año 2023
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.
Grupal: en grupos de entre 4 y 7 alumnos.
Individual con coloquio en máquina e informe impreso y digital (formato .odt .doc .pdf).
01/07/2023
- 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.
La evolución de trabajo se realizará de acuerdo a la siguiente tabla:
Aspecto | Item | Condición | Puntaje |
---|---|---|---|
Cumplimiento funcional de la aplicación | Funcionalidad | Mandatorio | 15 |
Arquitectura empleada | |||
Multiplataforma | Opcional | 10 | |
Cliente Liviano y cliente móvil | Mandatorio | 10 | |
Acceso a Datos | |||
Base de Datos | Mandatorio | 10 | |
ORM | Opcional | 10 | |
Lógica de Negocios | Mandatorio | ||
Validación de Datos | Opcional | 5 | |
Exposición de Servicios (Web Services) | Mandatorio | 15 | |
Presentación | |||
Usabilidad | Mandatorio | 10 | |
MVC | Opcional | 10 | |
Estilos | Opcional | 5 | |
Total | 100 |
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);
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.