Learning Project Mini es la versión reducida de Learning Project y surge de la necesidad de abordar un proyecto más pequeño que siga la misma filosofía y que se complemente con Learning Project.

La necesidad de abordar proyectos con microservicios con más tecnologías, y de diferentes formas nos ha llevadoa crear esta versión reducida para centrarnos más en el desarrollo tecnológico y un poco menos en el proyecto.

Con este proyecto abordaremos al igual que con Learning Project su desarrollo utilizando diferentes tecnologías, empezaremos con Laravel y RabbitMQ y lo utilizaremos como base en todos los tutoriales con microservicios.

¿En qué consiste?

Algo simple un sistema de empresas con clientes y pedidos, esto nos va a permitir separar la parte de pedidos de la gestión de clientes y empresas.

Para los proyectos monolíticos crearemos una única aplicación para toda la gestión:

  • Una única aplicación para la gestión de empresas, clientes y pedidos, la entrada de ventas y devoluciones de pedidos se repercuten sobre los gastos del cliente.

Para proyectos con microservicios definiremos con detalle dos aplicaciones:

  • La primera de admnistración de empresas y clientes.
  • La segunda encargada de la gestión de pedidos, está segunda almacenará toda la información de los pedidos y enviará a la aplicación de administración los gastos de cada uno para que cada cliente tenga su balance de gastos.

Para ello necesitaremos usar microservicios con un sistema de colas para la comunicación entre las dos aplicaciones independientes.

Este será el punto de partida para todos los proyectos y tecnologías, esto nos permitirá a largo plazo comparar el desarrollo del mismo proyecto con Laravel / RabbitMQ con Spring Framework / RabbitMQ por ejemplo, que son de los proyectos / tutoriales que abordaremos en el 2022.

LEARNING PROJECT MINI

Un proyecto sencillo para el aprendizaje software, lo desarrollaremos tanto en una aplicación molítica como una aplicacíon orientada a microservicios.

Código xules

ESQUEMA INICIAL

Diagrama entidad relación:

Learning Project Mini - Diagrama ER
Learning Project Mini – Diagrama ER

El detalle de las tablas es el siguiente:

Learning Project
TABLADESCRIPCIÓNCARACTERÍSTICAS DE DISEÑO
cm_enterpriseEmpresas de la aplicación, cada empresa tendrá sus clientes.Las empresas tendrán definido sus datos en la misma tabal: idioma, país y moneda, por simplificación; varios clientes podrán pertenecer a la misma empresa.
cm_customerTabla general de cliente, donde se almacenarán los clientes de las diferentes empresas, un cliente asignado a una única empresa.Los datos del cliente los almacenamos directamente en la misma tabla: idioma, país, direcciones, empresas, métodos de pago y moneda.
cm_ordersPedidos por cliente un cliente puede tener múltiples pedidosEn pedidos recogemos los datos del producto por descripción, las unidades el precio total y la dirección, simplificado al máximo