Aplicación piloto con Xamarin - mysql - node
Autor : Adán José Gómez Hernández
Contacto : AdanJoGoHe@gmail.com
El objetivo del proyecto será la creación de un sistema de gestión reparaciones para una tienda física de informática. La aplicación tendrá numerosas funcionalidades relacionadas con reparar productos.
El cliente y la idea son ficticias, existen con el fin de dar un propósito a la aplicación, también estoy utilizando este proyecto para afianzarme con GIT y GITHub. Se esperan fallos con el fin de aprender.
- Descripción de la idea
- Descripción de la base de datos
- Mockups y vistas
- Descripción de la aplicación
- Herramientas Utilizadas
El cliente me ha solicitado la creación de un programa para la gestión de reparaciones que realizan en la tienda creando una aplicación que sean capaz de manejar a través del móvil.
Las reparaciones se realizaran sobre equipos informáticos como ordenadores o servidores.
Cuando un cliente solicite una reparación y haya sido tramitada se le dará un ticket con un numero, este numero a través de la web podrá ver el estado del producto, las reparaciones tendrán varios estados que serán explicados a continuación.
Las reparaciones se podrán crear, donde se le dará un tiempo estimado para la reparación el cual sera genérico de 2 días.
Las reparaciones se podrán posponer, donde se podrá alargar el plazo del tiempo estimado para la reparación en caso de que se complique la reparación.
Las reparaciones se podrán suspender, donde se suspenderá la reparación en caso de que haya sido reparado y nadie lo haya recogido a las 2 semanas.
Las reparaciones se podrán terminar, este caso ocurrirá cuando el producto a reparar haya sido reparado y este listo para entregar, se guardara la fecha de reparación.
Las reparaciones se podrán entregar, el producto ha sido reparado y entregado al cliente se guardara la fecha de entrega.
Las reparaciones se podrán eliminar, el producto ha sido devuelto sin reparar por circunstancias varias.
También, se debe poder gestionar los operadores, clientes y productos desde la propia aplicación.
-- Versión del servidor: 5.7.24 - MySQL Community Server (GPL)
-- SO del servidor: Linux
-- HeidiSQL Versión: 9.5.0.5196
Creacion de la base de datos y las tablas : https://pastebin.com/NwU5tVp0
- 2.1 Diagrama entidad relacion
- 2.2 Tablas
El cliente compra reparacion. El cliente contendrá un nombre, también tendremos un telefono_contacto donde almacenaremos el teléfono , una contraseña y un id_cliente.
El operador realiza reparación. El operador tendrá un, nombre un apellido, un dni, una contraseña y un id_operador.
El producto es utilizado en reparacion, almacenaremos el nombre del producto, una descripcion del mismo y una id_producto.
De la REPARACION guardaremos :
-
id_reparacion Integer auto-incrementado.
-
id_cliente id del cliente que la haya solicitado.
-
id_operador id del operador que tome la reparación.
-
fecha_entrega Fecha en la que el cliente entregada el objeto a reparar a la tienda.
-
fecha_estimada Por defecto dos días después de recoger el pedido aunque puede ser aplazada manualmente por un operador.
-
fecha_reparacion La fecha en la que se ha reparado el producto.
-
fecha_recogida La fecha en la que el objeto es devuelto al propietario.
-
estado de la reparación que estará limitado a 5 estados que serán "En proceso","Reparado","Entregado", "Entregado sin reparar" y "Detenida",.
-
descripcion que puede ser la idea aproximada del problema.
-
precio_total Precio de los productos utilizados en la reparación y tarifa.
https://app.moqups.com/adanjogohe@gmail.com/R6m1FFlfTT/view
| Caso | Descripción |
|---|---|
| Titulo | ip+puerto/operador |
| Método | GET |
| Parametros de la URL | No tiene |
| Parametros de datos | No tiene |
| Respuesta con exito | Contenido de ejemplo : {"id_operador":14,"dni":"74859117X","nombre":"Adreso","apellidos":"Plisu","password":null},{"id_operador":15,"dni":"45346569E","nombre":"Adan","apellidos":"Leonhardt","password":"dd94709528bb1c83d08f3088d4043f4742891f4f"}] |
- 4.1 Linting
- 4.2 Funcionalidades
- 4.3 Diagrama de clases
- 4.4 Casos de uso
- 4.5 Manual de usuario
- 4.6 Comparacion de tecnologias
- 4.7 Tests
-- Tecnología : Xamarin
-- Sistema Operativo : Windows 10
-- Manual de Instalación y uso :WIP
-- Dependencias utilizadas :
El software que utilice para mejorar el código es SonarAnalyzer que se instala como complemento en el proyecto.
La aplicación contara con un CRUD desde la aplicación a el servicio web.
Se deberá poder gestionar :
- Clientes
- Productos
- Operadores
- Reparaciones
Sobre reparaciones :
El estado Crear reparación constara de un create que creara una tupla en la base de datos con los respectivos datos introducidos en la aplicación.
Al crear la reparación el campo estado se pondrá en el estado "en proceso" sin ninguna acción por parte del operario.
El estado posponer reparación constara de un put que modificara el campo "fecha estimada" que aumentara el plazo de la reparación del producto, el producto se pondrá en el estado "en proceso" si no lo estaba ya.
El estado terminar reparación constara de un put que modificara el campo "fecha de reparación" con la fecha dada por el operador, el estado pasara a "Terminado".
El estado suspender reparación constara de un put que modificara el estado por "Suspendido".
El estado reparación terminada constara de un put del campo "fecha de entrega" por la fecha dada por el operador y el campo estado se pondrá en "terminado".
| Tecnología | Ventajas | Inconvenientes |
|---|---|---|
| XAMARIN | -Compatibilidad Multiplataforma(iOS,Android,Windows) -Soporte de microsoft |
-Ligado al IDE Visual studio -Como presento en la documentación, las interfaces se hacen a codigo XML y no tiene un diseñador -Herramienta no tan conocida |
| Ionic(framwork) | -Compatibilidad en iOS y Android Información abundante |
-Dado que es un herramienta en desarrollo, hay que adaptarse a los cambios |
| Android(studio) | -Gran cantidad de informacion y documentación -Alta demanda |
-Solo desplegable en Dispositivos Android |
Una descripción de las herramientas y tecnologías utilizadas en este proyecto.


















