Marco Carrasco, Sebastian Andaur, Alvaro Silva S. Desarrollo de aplicaciones cliente - servidor Ingeniera Civil Informtica Facultad de Ingeniera Departamento de Ciencias Matemticas y Fsicas Profesor: Gaston Contreras Universidad Catlica de Temuco
Resumen
En una tienda puede resultar muy facil administrar distintos productos en un cuaderno o libreta, pero cuando la cantidad de productos y tienda es grande es necesario un sistema que sea de facil acceso y control de productos totales de la tienda, dando lugar a la realizacion del proyecto sistema de administracion de productos, proyecto que consiste en administrar productos y empleados de la tienda World Computers, logrando manipular registros de una base de datos, asi mismo realizar busquedas mediante una interfaz grafica que sera realizada en JAVA .
La estructura de la base de datos del proyecto consiste de la siguiente manera: Los empleados tienen conexin directa con los proveedores, y tambien con los productos Cada empleado tiene asignado un cargo por lo que este cargo servira para asignar roles de administrador y vendedor para la aplicacin en desarrollo Las categorias de productos esta divididas por PC de escritorio, Notebooks y Tablets Todos los productos tienen caracteristicas similares, es por ello que se comparte caracteristicas como Tarjeta de video, Pantalla, Sistema operativo, procesador, memoria ram y disco duro. Los empleados que sean vendedores tienen acceso solo a buscar productos en la tienda y los empleados que sean Administradores del sistema tienen acceso a realizar modificaciones a la base de datos de los productos y empleados.
Inicio
Administrador
Administrador
Acceso
Men Administrador
Men Vendedor
Desarrollo de la Aplicacin
El lenguaje que se a empleado para desarrollar la aplicacin Sistema de administracion de productos : World Computers es JAVA, en donde se utilizo el IDE Netbeans para poder utilizar las herramientas de creacion de Swings, creando frames y panels para lograr crear una interfaz grafica lo mas amistosa posible para el usuario.
Clase Categoria La clase categoria tiene los atributos de codigo de categoria y nombre de categoria, el cual nos serviran para poder instanciar cuando conectemos la aplicacin con la base de datos mas adelante, conteniendo esta una tabla de categrias con los atributos ya mencionados.
Clase Detalle proveedor La clase Detalle proveedor tiene los atributos de Proveedor, producto, cantidad, preciocompra, precioventa, nroFactura la cual nos facilitara para crear mas adelante un metodo para verificar a cuanto se compra el producto y a cuanto se vende el producto obteniendo el resultado de la ganancia con este proveedor.
Clase Empleado La clase Empleado se tiene los atributos de nroEmpleado, dni, nombre, Apellido, email, sexo, edad, telefono, celular, direccion, imagen. De esta forma podremos guardar cada dato del empleado que posteriormente sera explicado en el desarrollo de la base de datos de empleado, ademas se incluyo la funcion para poder guardar una foto del empleado para asi poder obtener una idetificacin clara del empleado. La clase empleado ademas servira para poder tomar los datos ya registrados y poder crear posteriormente un usuario ya sea vendedor o administrador del sistema.
al igual que las otras clases se crea un metodo para instanciar y un get para obtener el la estructura cuando se llame desde otra clase.
Clase Producto La clase Producto contiene en sus atributos cada una de las caracteristicas con las que podremos diferenciar uno de otro, el cual nos servira al momento de realizar las consultas, actualizar y obtener un resumen de ello, esta clase tiene relacion con la clase categoria, ya que de ella lograremos ver que tipo de producto es, siendo un pc desktop, portatil o tablet.
Clase proveedor La clase Proveedor al igual que las otras contiene como atributos cada una de las caracteristicas, que posteriormente con un metodo devolveran los datos cuando se le pida.
Clase Usuario La clase Usuario se utilizara para crear los usuarios de acceso al sistema, esta contiene los atributos empleados, id y contrasea la cual son mas que suficientes para poder crear un metodo mas adelante que nos facilite el acceso al sistema
Paquete Enlace a Base de Datos Ya teniendo las clases definidas con sus atributos se da lugar a la creacion de clases que que crearan la conexin a la base de datos utilizando cada clase definida en anteriormente.
Cada una de estas clases contendra los metodos que se utilizaran posteriormente para la ejecucin de consultas a la base de datos, logrando realizar con estos metodos distintas consultas como mostrar, modificar, borrar, agregar, etc.
Clase conexin a Base de datos BD La clase BD realiza la conexin al servidor de la base de datos , producto a que la base de datos ue tenimaos no nos dejaba realizar actualizaciones, modificacion, etc. se nos fue facilitado la base de datos de un compaero el cual tenia acceso a la base de datos sin problema de permisos, facilitandonos el desarrollo de nuestra aplicacin. Se realiza una conexin mediante socket ya aprendido durante el curso, ingresando los datos url para sealar el servidor, base de datos, usuario y contrasea del servidor de la base de datos alojado en la universidad.
Para conectar MySQL con JAVA se utilizo el Driver JDBC mysql conector descargado de internet.
Clase Bdcategoria En esta clase se crearon los metodos para insertar, buscar, eliminar, actualizar y mostrar categorias. Se llama a Atribworldcomputer.categoria del paquete donde se crearon las clases con sus metodos para utilizar su estructura. Ya creada la funcion para insertar una categoria, se crea el soquet y se establece conexin con la clase ya hecha anterior BD, ejecutando un INSERT INTO para agregar datos a nuestro sistema.
Clase Bd Empleado Al igual que las clases anteriores de consultas, enBDEmpleado se ingresaron todas las funciones para mostrar, buscar, actualizar y borrar datos dentro de ella.
Clase Bd Producto La clase de los productos como las importante de todas se crearon los metodos para insertar los datos da cada computador, con su nombre, modelo, id, ram, procesador, bateria, sistema operativo, etc. La cual posteriormente despues de haber ingresado los datos de podran visualizar en la funcion buscar.
Clases de Base de datos de Usuarios Para dar permisos distintos entre un administrador y un vendedor se crearon 2 tablas distintas para almacenar los usuarios vendedores y administradores, asi cada vez que ingrese en modo administrador registrara en el Login el usuario y la contrasea solo del administrador, siendo de la misma forma para el vendedor. Metodo conectar vendedor
Junto con la funcion de Login, en cada clase se ingresan los metodos para agregar, modificar, borrar y mostrar los usuario que se usara cuando se muestren los frames.
Creacin de Frames
Antes de crear los frames se crea un paquete contenedor de las imgenes que se utilizaran en esta
Inicio de programa
se crea un frame con un progress bar un jpanel(imagen en frame) para dar inicio a la aplicacin, para establecer conexin con la base de datos e iniciar frame de seleccin de modo de trabajo.
Frame Seleccin Modo de trabajo Se creo un Jpanel y frame para seleccin el modo de trabajo utilizando jbottons y jtext.
Para lograr insertar una imagen de fondo se creo un Jpanel como contenedor de esta imagen
en clase FrameselecVenededor/Admin se definen las dimensiones y la posicion del frame, y las funciones de los botones.
Funciones de botones Al hacer click en un boton, este llamara otro frame como funcion de ejecucion, y se desplegara en este caso los modos y ayuda para el ingreso.
Si el usuario es un Administrador, tendra acceso a manipular la base de datos realizando modificaciones en todas las tablas, sin embargo si el usuario es un vendedor solo tendra acceso a realizar busqueda de productos en la base de datos
Frame Acceso de Administrador y vendedor Al seleccionar Modo administrador o Modo Vendedor automaticamente abrira una ventana de acceso de modo de trabajo, el usuario tendra que identificarse con su usuario y contrasea de acceso.
Para poder tener una demostracin del programa en ejecucin se dejo un frame con usuario y contraseas para obtener ingreso
Al ingresar en Modo Administrador/Vendedor se abrira una ventana de Menu principal en donde se seleccionara la opcion de mantenimiento o busqueda de productos/empleados. Modo administrador
Modo Vendedor
Modo vendedor
Al iniciar sesion un, se apreciara que barra de opciones es distinta a la del administrador, ya que en el vendedor se suplio todo tipo de Mantencion y solo tiene funcion de busqueda al sistema.
Por tanto el Administrador tiene opciones de Mantencion al sistema, modificando productos, empleados, proveedores, usuarios etc.
Opciones de Mantencin
Al identificarse el Administrador tendra acceso a modificar el personal y productos que se encuentran en la tienda, ademas tiene acceso para realizar busquedas de productos especificos.
adems tiene la opcin para mostrar todos los productos del sistema creando una vista general
Registro de Nuevo Empleado Al registrar un nuevo empleado, este puede registrarse en Usuarios como administrador o vendedor.
Usuarios
Al ya tener un empleado registrado, en la barra desplegable de Usuarios podemos asignar a este empleado tanto como vendedor o Administrador.
como anteriormente se explicaba, se crearon 2 tablas en donde se almancenara cada tipo de usuario. Registro Vendedor
Registro Administrador
Otros frames
Ademas de los frames mostrados, se creron 2 frames mas que nada para entregar informacion se del sistema de administracion de producto e indicaciones de uso (ayuda)
Ejecucin Directa Si desea iniciarlo sin abrir el proyecto se creo un archivo.jar para arrancar el programa ubicado en SAPWorldComputers_V1.6/dist/SAPWorldComputers_V1.6.jar
Conclusin
La implementacin de una base de datos con el propsito de ventas es primordial, por lo cual nuestra empresa ficticia necesita tener una forma de acceder de forma segura a la base de datos, por este motivo creamos una opcin para poder acceder a editar datos de en nuestro servidor y otra para solo poder buscar informacin en el cual la base de datos la administraremos nosotros. Gracias a este proyecto se logro aprender a trabajar en Java de una forma mas ligada a lo que hoy en dia se busca en el area de programacion con base de datos y programacin, que resulta super interesante ya que estas cosas motivan a poder realizar cosas mayores.