Los servicios se construyen con Java EE EJB, Boot Spring, bases de datos MySQL y una cola de RabbitMQ. Todos los servicios están expuestos como API REST La interfaz web se realizó con Servlets Java, páginas JSP, HTML y JavaScript.
Cada servicio se implementa como su propio proyecto. Esto implica que tiene su propia base de código y su propia base de datos. Si tiene servicio S1 y servicio S2, S1 no debería poder obtener ninguna información del DB de S2, sino que debe solicitarla del servicio S2 a través de llamadas de descanso.
Requisitos funcionales
La aplicación de compras necesitará que se agregen productos por sus compañías vendedoras y necesitará compañías navieras para entregar los productos, algunas actividades administrativas deben ser apoyadas. La aplicación debe admitir las siguientes funciones:
Características de administración
Creación de cuentas representativas de empresas que venden productos.
Dada una variedad de nombres únicos de la empresa
La contraseña para cada empresa se genera automáticamente
Creación de compañías navieras
Listado de cuentas de clientes
Listado de compañías navieras
Listado de cuentas representativas de empresas vendidas
Venta de características representativas de la empresa
Inicie sesión en el sistema utilizando las credenciales generadas enviadas por el administrador
Ver productos que se ofrecen actualmente a la venta.
Ver productos vendidos previamente, incluida información sobre los clientes que compraron cada producto y la compañía naviera.
Agregar nuevos productos.
Características de la compañía naviera
Procesar solicitudes de envío siempre que el cliente que compró ese pedido caiga dentro de sus regiones geográficas compatibles.
Se debe notificar a los clientes, una vez que se procese la solicitud de envío.
Características del cliente
Regístrese como un nuevo cliente a través del sistema.
Inicie sesión en el sistema utilizando las credenciales utilizadas durante el registro.
Ver órdenes de compra actuales y pasadas.
Hacer nuevas órdenes de compra. Los pedidos deben manejarse de manera especial para evitar situaciones de falla del servidor.
El procesamiento de ambos pedidos y su envío deben confirmarse a los clientes.
Requisitos técnicos
Uso de 4 tipos de frijoles diferentes para cumplir con los requisitos funcionales anteriores:
Apátrida
De estado
Semifallo
Mensaje conducido
La interfaz debe ser una interfaz basada en la web que utilice cualquier tecnología de su elección para simular una aplicación de compras en línea que funcione con diferentes usuarios según los requisitos funcionales mencionados anteriormente.
El servicio debe estar expuesto como API REST, y debe exponer sus frijoles utilizando REST para cumplir con la API REST del servicio web según corresponda.