martes, 14 de mayo de 2024

EJEMPLOS BÁSICOS SOBRE CÓMO TRANSFORMAR UN DIAGRAMA DE CLASES A CÓDIGO:

Teniendo en cuenta las relaciones entre clases:


--agregación simple sin contención física (todo - parte)


--composición ó agregación con contención física (todo - parte)


--asociación unidireccional


--asociación bidireccional con cardinalidad "n"


--asociación bidireccional con cardinalidad máx y mín


--dependencia


--realización (interfaces)


Jerárquicas:


-Generalización (herencia)


-Clases Abstractas (herencia)


A su vez, se deja un ejemplo básicos de cómo se implementa un diagrama de secuencia.


En el proyecto, dentro de Entidades, hay una carpeta "Diagramas" que tiene 3 subcarpetas:


-"Clases Sueltas"


-"Relaciones_entre_Clases"


-"Secuencia"


GIT:
https://github.com/AntonellaSMiranda/Practica_ClasesACodigo_20240509/tree/master

jueves, 2 de mayo de 2024

MODELADO Y DESARROLLO DE UN "SISTEMA-CARRITO PACKS VIANDAS" -- SEGUNDA PARTE (REVISIONES AL MODELADO e IMPLEMENTACIÓN)

En la PRIMER PARTE del desarrollo de este sistema "Sistema-Carrito PACK VIANDAS" se dio un enunciado para el sistema y se realizó un primer modelado del mismo. Esto se puede encontrar en :
https://amirandadesa.blogspot.com/2024/04/modelado-y-desarrollo-de-un-sistema.html

En esta SEGUNDA PARTE.. se dejará nuevamente el MODELO LÓGICO notación Martin realizado en EA (Enterprise Architect) con los cambios realizados. Se han incorporado algunos campos a las tablas (como por ejemplo: el IdTransacción de Paypal que nos devuelve al generar la Orden).

Luego.. se dejará videos y algunos prints del sistema en ejecución. Además está disponible el código del proyecto en GITHUB en :
https://github.com/AntonellaSMiranda/Sistema_Carrito_Compras_PACK-VIANDAS


MODELO LÓGICO NOTACIÓN MARTIN- Revisión Final. 








EJEMPLOS DE EJECUCIÓN SEGUN FUNCIONALIDADES:



REGISTRO DE UN NUEVO USUARIO:




INGRESO DE UN USUARIO YA REGISTRADO:




USUARIO OLVIDA SU CONTRASEÑA Y SOLICITA RESTABLECERLA:



USUARIO REALIZA UNA COMPRA VIA PAYPAL:







lunes, 29 de abril de 2024

MODELADO Y DESARROLLO DE UN "SISTEMA-CARRITO PACKS VIANDAS" -- PRIMERA PARTE (MODELADO)

 

Se realizará el modelado y desarrollo de un sistema de compras tipo carrito web para venta de PACKS de viandas .

En esta primera parte se hará lo referente a un  MODELADO INICIAL y, en próximas entradas del blog, se harán revisiones al mismo(si correspondiese) y luego se dejaran características de la IMPLEMENTACIÓN y el link a GITHUB con la misma. 

Modelado primera parte:
-DER CONCEPTUAL
-TRANSFORMACIÓN AL DER LÓGICO
-DER LÓGICO- NOTACIÓN MARTIN
-CREACIÓN DE TABLAS EN SQL (mostrar el script del DDL)
-DIAGRAMA GENERADO EN SQL
-DIAGRAMA DE CLASES 
 +BE (Business Entities)
 +BLL (Business Logical Layer)


-CASO DE USO CU01 COMPRAR CARRITO :

 +DIAGRAMA DEL CASO DE USO CU01 Comprar Carrito
 +DSS. DIAGRAMA DE SECUENCIA DEL SISTEMA DEL CU01 (Análisis)
 +DS. DIAGRAMA DE SECUENCIA DEL CU01 (Diseño - con objetos software)


Enunciado:

Se requiere de un sistema web para la venta de productos mediante carrito de compra. 

Un cliente puede tener un único carrito actual. Una vez que realiza la compra... se guarda el carrito del cliente en un historial. La próxima vez habrá un nuevo carrito para dicho cliente. 

Cada carrito puede tener uno o mas packs. Cada pack tiene un nombre, un stock, y puede contener varias viandas. Además, cada pack tiene un precio (equivalente a la suma total del precio de las viandas que involucra)

De cada vianda se registra  descripción, cantidad, precio_vianda. No se puede adquirir viandas individuales. Solo se comercializan packs. 

Del cliente se registra  un id, el mail (necesario para el login), nombre, apellido, clave, marca de restablecer, marca de habilitado.   


Para implementar en el sistema: 

*La lógica del Registro.  A continuación se muestra la especificación del CU02-Registrar Usuario.






Caso de Uso- CU02- Registrar Usuario- Especificación del CU:

-El sistema muestra una interfaz "Registro- Primer Paso" solicitando el ingreso de email.
-El  usuario ingresa su email.
-El usuario hace click en "Recibir Clave de Acceso".
-El sistema envía una clave de acceso (código) al email del usuario.
-El sistema muestra una interfaz "Registro- Segundo y Último Paso" en donde el usuario debe ingresar: nombre, primer apellido, segundo apellido (si posee), email, clave de acceso recibida por email, contraseña, confirmación de contraseña.
-El sistema valida los datos.
-El sistema muestra la interfaz de Login para que el usuario inicie sesión. 

-----------------------------------------------------------------------------------------------------------------


*Consumir la API de Paypal (Rest APIs)

Métodos de la API de paypal a consumir:


Orders:
*Create Order: se crea la orden, paypal devuelve un ID de la orden generada y un TOKEN en la URL. El TOKEN es utilizado en la próxima petición de Capture Order.

POST/v2/checkout/orders
*Capture Order: al llamar a este metodo, en la URL se ingresa el TOKEN (id) recibido por paypal. Este método "captura" el pago.

POST/v2/checkout/orders/{id}/capture

----------
Invoicing:
*Create draft Invoice: se crea una factura borrador para enviar por mail al cliente y al facturador(si se desea).

POST/v2/invoicing/invoices
*Send Invoice: se envia la factura previamente creada en borrador. El metodo anterior nos devuelve una URL con el parámetro del ID de la factura.  Este ID es necesario para pasarlo en la URL correspondiente a Send Invoice.

POST/v2/invoicing/invoices/{invoice_id}/send


Nota: para mayor información, se puede leer la documentación oficial de Paypal en :

https://developer.paypal.com/api/rest/

*Los clientes pueden abonar via Paypal: con el saldo disponible en su cuenta de Paypal o con tarjeta de crédito. 

*Los clientes reciben por mail la factura con el detalle de su pedido. La factura discrimina un porcentaje de impuesto de IVA 21% pero, sin embargo, por políticas de la Tienda se lo reintegra en un descuento hecho para el cliente por el mismo porcentaje (21%). 

De este modo, lo que el cliente ve en la interfaz de la app como "Total", es el mismo monto total que aparece en la factura que le llega por mail. 

-------------------------------------------------------------------------------------------------------------------

Módulos:


*Admin:


-Mantenimiento
+Clientes
+Viandas
+Packs


*Tienda

-Utilidades

+Ver Packs: cada pack se muestra con una "tarjeta" en la interfaz en donde se observa su nombre, precio , un botón de "agregar al carrito" y otro de  "ver detalle".
+Ir a carrito: el cliente va a su carrito en donde se observan los packs agregados.  Además, aquí puede agregar cantidad a los productos elegidos (tener en cuenta si se cuenta con stock).


-DER CONCEPTUAL

-TRANSFORMACIÓN AL DER LÓGICO


-DER LÓGICO- NOTACIÓN MARTIN





-CREACIÓN DE TABLAS EN SQL




-DIAGRAMA GENERADO EN SQL







-DIAGRAMAS DE CLASES

+ BE: Business entities








+ BLL: Business Logical Layer







- DIAGRAMA DE CASO DE USO CU01. COMPRAR CARRITO
- DSS. DIAGRAMA DE SECUENCIA DEL SISTEMA DEL CU01. COMPRAR CARRITO (Análisis) 





- DS. DIAGRAMA DE SECUENCIA DEL CU01. COMPRAR CARRITO (Diseño)





domingo, 10 de marzo de 2024

DESARROLLO DE UN SISTEMA DE CARRITO DE COMPRAS WEB


El siguiente desarrollo se trata de un sistema de carrito de compras web realizado con fines puramente académicos. Se deja el desarrollo en GITHUB.


Se trata de una aplicación web que consta de dos módulos principales:


-Capa de presentación Admin: en donde se realizan las tareas de mantenimiento de los productos, categorías, marcas, etc, asi como la gestión de los usuarios.



-Capa Tienda: en donde los usuarios pueden agregar productos a sus carritos y realizar la compra. Se ha utilizado la API de Paypal para simular la transacción de compra.


Desarrollo en:


-Arquitectura MVC

-C# en .NET Core 3.1

-IDE de Visual Studio 2019

-Uso de API de Paypal

- Uso de librerías como: bootstrap, jquery, font.awesome, swal, loadingOverlay.

-Almacenamiento de datos: Base de datos relacional: SQL SERVER.


GIT:

https://github.com/AntonellaSMiranda/SistemaVentas_CarritoDeCompras_MVC_NetCore


Curso-Guía:

https://www.youtube.com/watch?v=16N5OhcrLws&list=PLx2nia7-PgoDptcrh4k4ZStjpVLZbS7rU


MODELADO DE UN ESTACIONAMIENTO

El siguiente ejemplo es un modelado que realice de un estacionamiento con fines puramente académicos. Se deja el desarrollo mediante GITHUB


*Se realiza:

DER CONCEPTUAL,

TRANSFORMACIÓN AL DER LOGICO,

DIAGRAMA DE SQL


Desarrollo en:

-C# en .NET 8.0

-IDE de Visual Studio 2022



Enunciado:

Se necesita un sistema para la administración de un estacionamiento. El mismo consta de parcelas en donde se estacionan los autos de los clientes ( son 16 parcelas actualmente, enumeradas consecutivamente, pero pueden agregarse debido a que hay proyectos de arquitectura para sumar mas parcelas a futuro).


De los autos (clientes) que ingresan se registra número patente, marca, modelo. 


Cuando un auto ingresa y se lo estaciona... se genera una estadía, en donde se deja asentado la parcela en la cual se estaciono, la fecha y hora de ingreso. Luego, al egresar el auto se asienta la fecha y hora de egreso. El valor de la hora de la estadía puede ir cambiando con el tiempo, por lo que se requiere que sea un dato que ingrese el usuario para calcular en el momento el precio a cobrar al cliente.


Una vez que egresa el sistema debe dejar registrado el tiempo de la estadía (horas, minutos, segundos, días), 


Por otro lado, el sistema debe permitir las siguientes funcionalidades:


*Mantenimiento (ABM) : 

-Usuarios.

-Parcelas.




*Útiles: 

-Auto-Cliente

   +Ingresar Auto: el sistema pide los datos del auto que ingresa. Luego muestra un detalle de la gestión      de ingreso.

   +Egresar Auto: el sistema muestra en la interfaz una tabla en donde el usuario puede seleccionar       "Egresar" en los autos que han ingresado al estacionamiento. Al hacer click, el sistema muestra en un modal el nro_patente, la fecha hora de ingreso y el usuario ingresa la fecha, hora de egreso en un calendario y hace click en "Guardar". El sistema calcula el tiempo de la estadía (días, horas, minutos, segundos) y el usuario hace click en "Ok, calcular precio de la estadia". El sistema pide que se ingrese el "valor hora". El usuario ingresa el mismo. El sistema muestra el valor de la estadía que debe ser cobrada y el usuario hace click en "OK! GUARDAR ESTADIA EN BASE DE DATOS". 


-Gráficos.

   Reporte en gráficos acerca de: 

  +la ganancia mensual obtenida en el año actual. Mediante un grafico de barras

  +el top 3 de marcas de autos que fueron estacionados. Mediante un grafico de torta.


-Estadías Egresadas (tabla en donde se observen las estadías que fueron egresadas).

---------------------------------------------------------------------------------------------------------------------


Nota: algunas librerías utilizadas:


-Bootstrap

-Jquery (datatable,  y llamadas mediante $.get y $.post)

-Swal (sweetalert for bootstrap).

-Font.awesome

-LoadingOverlay

---------------------------------------------------------------------------------------------------------------
DIAGRAMAS:







.

GIT: https://github.com/AntonellaSMiranda/WebApplicationMVC.NetCore_1801

EJEMPLOS BÁSICOS SOBRE CÓMO TRANSFORMAR UN DIAGRAMA DE CLASES A CÓDIGO:

Teniendo en cuenta las relaciones entre clases: --agregación simple sin contención física (todo - parte) --composición ó agregación con cont...