Vous êtes sur la page 1sur 9

Curso: Desarrollo Java Instituto Profesional de Providencia

CASO: BIT COFFE


Profesor: Pedro González Curso: Desarrollo Java
Fecha de Entrega: 29/05/2009

El señor Patricio Mc-Donald, se encontraba con la siguiente disyuntiva,


sabia que quería invertir en un modelo de negocio innovador, pero este
precisamente pasaba por el hecho de que tenía que hacer un negocio que fuese
sustentado por un desarrollo informático, el cual no eran sus competencias, sólo a
nivel de usuario.
Su modelo de negocio, constaba de realizar un café virtual, a lo que llamaba “Bit
Coffe”:

Modelo de negocio General: eMarketPlace

Modelo de negocio BitCoffe

1
Curso: Desarrollo Java Instituto Profesional de Providencia

Mc-Donald, se ha propuesto que su café virtual debe cumplir con las siguientes
funcionalidades:

• Fácil registro de los clientes, donde solo sea necesario establecer el nick,
password, fono y dirección.
• El cliente puede programar sus pedidos, ya sea semanal, diario o mensual.
• El cliente además tiene la posibilidad de armar combos, es decir armar un
café del cualquier tipo (Capuchino, cortado, puro, con crema, etc), con los
demás productos del café, como son queques, tortas o kuchents.
• El pago permitido puede ser por WebPay o al despachador en efectivo, se
aceptan pagos por adelantados por las programaciones de pedidos.
• El cliente puede enviar una nota posterior a su pedido, ya sea felicitándonos
por el servicio o el buen producto, o cualquier inconveniente con el pedido.
• De acuerdo al punto anterior el back office se debe comunicar con el cliente
en no más de 12 horas, estableciendo un muchas gracias o una solución a
su inconveniente.

Patricio, si bien es cierto es un buen emprendedor, no sabe de tecnología


de la información, ni tampoco es la función que el eligió para desarrollarse
profesionalmente, por lo que indago en fuentes cercanas y por medio de
Internet, como pudiese llevar a cabo esta empresa, en los aspectos de TI.
El entendió que el desarrollo debía ser en Java, por el hecho que es
mayormente una tecnología de uso libre y abarataría los costos en licencias,
pero además se encontró con los siguientes puntos que el debe exigir al
momento de comenzar a desarrollar el café virtual:

1. Debido a que los negocios se renuevan completamente cada tres años,


el dinamismo y el cambio continuo “Lo único permanente es el
cambio”, es por ello que la solución debe ser construida con al menos
el patrón de diseño MVC (Model View Controller).

2
Curso: Desarrollo Java Instituto Profesional de Providencia

2. Utilizar un servidor de aplicaciones de uso libre, ya sea Apache o Jboss


3. La interfaz de usuario (Vista), debe ser lo mas intuitiva posible, para
nada complicada, en el fondo que aleje a los clientes.

“Entre dos explicaciones, elige la más clara; entre dos formas, la más

elemental; entre dos expresiones, la más breve.”1

Patricio se hizo asesorar por un Ingeniero informático y creo el siguiente


modelo de datos, que sustenta el modelo de negocios que el se ha propuesto:

1
Eugeni d' Ors (1881-1954) Escritor español

3
Curso: Desarrollo Java Instituto Profesional de Providencia

Consideraciones:

• Solo se debe desarrollar el Front-End del sitio, es decir los productos y


comunas se ingresan en la base de datos, no es estrictamente necesario
realizar mantenedores.

El sitio debe contar con lo siguiente:

Inicio

Registro:
Ingreso de:
• COD_USUARIO :
• BC_COMUNA_COD_COMUNA :
• NOMBRE :
• FONO1 :

4
Curso: Desarrollo Java Instituto Profesional de Providencia

• FONO2 :
• MOVIL :
• EMAIL :
• PASSWORD :
• DIRECCION :

Comanda:

Solo despliegue:
ID_COMANDA :
BC_USUARIO_COD_USUARIO :

INGRESO:

FECHA : Fecha de la solicitud del producto

Desplegar lista de productos en grilla

Descripción del producto Precio Check


Capuchino 1300 OK
Kutchen 1500 OK

Suma total 2800

Dar la posibilidad de programar el mismo pedido

Cuantos dias hábiles desea programar el pedido: ____


Desplegar fecha de termino de la programación.

5
Curso: Desarrollo Java Instituto Profesional de Providencia

Una vez que se realice el pedido, el cliente tiene la posibilidad de emitir la


comanda, como especie de boleta

BIT COFEE

Cliete:_______________________ Comanda:____________

Producto Precio

Total

Se pide :

1. Crear la base de datos (Base de su preferencia).


2. Diagrama de clases, correspondiente a la capa de negocios.
3. Interfaz en JSP
4. Implementación del sitio, bajo el patrón MVC (Ya sea manual o realizado
bajo STRUTS).
5. Utilizar pool de conexión a base de datos JDBC.
6. Creación de un archivo WAR, deploy en APACHE TOMCAT

6
Curso: Desarrollo Java Instituto Profesional de Providencia

ANEXO: SCRIPT DE BASE DE DATOS

CREATE TABLE BC_COMUNA (


COD_COMUNA INTEGER NOT NULL IDENTITY ,
DESCRIPCION INTEGER ,
PRIMARY KEY(COD_COMUNA));
GO

CREATE TABLE BC_PRODUCTO (


COD_PRODUCTO INTEGER NOT NULL IDENTITY ,
DESCRIPCION VARCHAR(255) ,
PRIMARY KEY(COD_PRODUCTO));
GO

CREATE TABLE BC_LISTAPRECIOS (


BC_PRODUCTO_COD_PRODUCTO INTEGER NOT NULL ,
PRECIO INTEGER ,
FECHA_VIGENCIA DATETIME ,
PRIMARY KEY(BC_PRODUCTO_COD_PRODUCTO) ,
FOREIGN KEY(BC_PRODUCTO_COD_PRODUCTO)
REFERENCES BC_PRODUCTO(COD_PRODUCTO));
GO

CREATE INDEX BC_LISTAPRECIOS_FKIndex1 ON BC_LISTAPRECIOS (BC_PRODUCTO_COD_PRODUCTO);


GO
CREATE INDEX IFK_Rel_06 ON BC_LISTAPRECIOS (BC_PRODUCTO_COD_PRODUCTO);
GO

CREATE TABLE BC_USUARIO (


COD_USUARIO VARCHAR(20) NOT NULL IDENTITY ,
BC_COMUNA_COD_COMUNA INTEGER NOT NULL ,
NOMBRE VARCHAR(255) ,
FONO1 VARCHAR(20) ,
FONO2 VARCHAR(20) ,
MOVIL VARCHAR(20) ,
EMAIL VARCHAR(100) ,
PASSWORD VARCHAR(50) ,
DIRECCION VARCHAR(255) ,
PRIMARY KEY(COD_USUARIO) ,
FOREIGN KEY(BC_COMUNA_COD_COMUNA)
REFERENCES BC_COMUNA(COD_COMUNA));
GO

CREATE INDEX BC_USUARIO_FKIndex1 ON BC_USUARIO (BC_COMUNA_COD_COMUNA);


GO

7
Curso: Desarrollo Java Instituto Profesional de Providencia

CREATE INDEX IFK_Rel_07 ON BC_USUARIO (BC_COMUNA_COD_COMUNA);


GO

CREATE TABLE BC_COMANDA (


ID_COMANDA INTEGER NOT NULL IDENTITY ,
BC_USUARIO_COD_USUARIO VARCHAR(20) NOT NULL ,
FECHA DATETIME ,
PRIMARY KEY(ID_COMANDA, BC_USUARIO_COD_USUARIO) ,
FOREIGN KEY(BC_USUARIO_COD_USUARIO)
REFERENCES BC_USUARIO(COD_USUARIO));
GO

CREATE INDEX BC_COMANDA_FKIndex1 ON BC_COMANDA (BC_USUARIO_COD_USUARIO);


GO

CREATE INDEX IFK_Rel_03 ON BC_COMANDA (BC_USUARIO_COD_USUARIO);


GO

CREATE TABLE BC_PROGRAMACION_COMANDA (


BC_COMANDA_BC_USUARIO_COD_USUARIO VARCHAR(20) NOT NULL ,
BC_COMANDA_ID_COMANDA INTEGER NOT NULL ,
DIAS INTEGER ,
FECHA_TERMINO DATETIME ,
PRIMARY KEY(BC_COMANDA_BC_USUARIO_COD_USUARIO, BC_COMANDA_ID_COMANDA) ,
FOREIGN KEY(BC_COMANDA_ID_COMANDA, BC_COMANDA_BC_USUARIO_COD_USUARIO)
REFERENCES BC_COMANDA(ID_COMANDA, BC_USUARIO_COD_USUARIO));
GO

CREATE INDEX BC_PROGRAMACION_COMANDA_FKIndex1 ON BC_PROGRAMACION_COMANDA


(BC_COMANDA_ID_COMANDA, BC_COMANDA_BC_USUARIO_COD_USUARIO);
GO

CREATE INDEX IFK_Rel_12 ON BC_PROGRAMACION_COMANDA (BC_COMANDA_ID_COMANDA,


BC_COMANDA_BC_USUARIO_COD_USUARIO);
GO

CREATE TABLE BC_ATENCION (


BC_USUARIO_COD_USUARIO VARCHAR(20) NOT NULL ,
BC_COMANDA_BC_USUARIO_COD_USUARIO VARCHAR(20) NOT NULL ,
BC_COMANDA_ID_COMANDA INTEGER NOT NULL ,
COMENTARIO VARCHAR(5000) NOT NULL ,
PRIMARY KEY(BC_USUARIO_COD_USUARIO) ,
FOREIGN KEY(BC_USUARIO_COD_USUARIO)
REFERENCES BC_USUARIO(COD_USUARIO),
FOREIGN KEY(BC_COMANDA_ID_COMANDA, BC_COMANDA_BC_USUARIO_COD_USUARIO)
REFERENCES BC_COMANDA(ID_COMANDA, BC_USUARIO_COD_USUARIO));
GO

8
Curso: Desarrollo Java Instituto Profesional de Providencia

CREATE INDEX BC_ATENCION_FKIndex1 ON BC_ATENCION (BC_USUARIO_COD_USUARIO);


GO
CREATE INDEX BC_ATENCION_FKIndex2 ON BC_ATENCION (BC_COMANDA_ID_COMANDA,
BC_COMANDA_BC_USUARIO_COD_USUARIO);
GO

CREATE INDEX IFK_Rel_08 ON BC_ATENCION (BC_USUARIO_COD_USUARIO);


GO
CREATE INDEX IFK_Rel_09 ON BC_ATENCION (BC_COMANDA_ID_COMANDA,
BC_COMANDA_BC_USUARIO_COD_USUARIO);
GO

CREATE TABLE BC_DETALLE_COMANDA (


BC_COMANDA_BC_USUARIO_COD_USUARIO VARCHAR(20) NOT NULL ,
BC_COMANDA_ID_COMANDA INTEGER NOT NULL ,
BC_PRODUCTO_COD_PRODUCTO INTEGER NOT NULL ,
PRIMARY KEY(BC_COMANDA_BC_USUARIO_COD_USUARIO, BC_COMANDA_ID_COMANDA,
BC_PRODUCTO_COD_PRODUCTO) ,
FOREIGN KEY(BC_COMANDA_ID_COMANDA, BC_COMANDA_BC_USUARIO_COD_USUARIO)
REFERENCES BC_COMANDA(ID_COMANDA, BC_USUARIO_COD_USUARIO),
FOREIGN KEY(BC_PRODUCTO_COD_PRODUCTO)
REFERENCES BC_PRODUCTO(COD_PRODUCTO));
GO

CREATE INDEX BC_DETALLE_COMANDA_FKIndex1 ON BC_DETALLE_COMANDA (BC_COMANDA_ID_COMANDA,


BC_COMANDA_BC_USUARIO_COD_USUARIO);
GO
CREATE INDEX BC_DETALLE_COMANDA_FKIndex2 ON BC_DETALLE_COMANDA (BC_PRODUCTO_COD_PRODUCTO);
GO

CREATE INDEX IFK_Rel_10 ON BC_DETALLE_COMANDA (BC_COMANDA_ID_COMANDA,


BC_COMANDA_BC_USUARIO_COD_USUARIO);
GO
CREATE INDEX IFK_Rel_11 ON BC_DETALLE_COMANDA (BC_PRODUCTO_COD_PRODUCTO);
GO