Sobre este proyecto
it-programming / mobile-development
Abierto
El objetivo de la app de Niceglam es ofrecer servicios de estética para mujeres y hombres por medio de la app. Dichos servicios se piensan ofrecer solo en determinadas colonias de la Ciudad de México por lo que se debe poder validar las zonas de cobertura e ir ampliando terreno poco a poco conforme se vaya creciendo. El modelo debe funcionar teniendo dos aplicaciones híbridas (cliente y empleado) y un sistema de administración web.
app de cliente
1. El usuario puede descargar la app de las tiendas para Android y iOS (El despliegue de las aplicaciones a las tiendas no está incluido)
2. Al abrir la app se mostrará un splash con el logotipo y una barra de carga (loading) para que se sepa que se está iniciando la app.
3. Después del splash se debe mostrar un pantalla donde se debe elegir la plataforma (hombre o mujer)
4. Una vez dentro se podrá ver los servicios y paquetes que se ofrecen sin necesidad de registrarse en la plataforma o iniciar sesión. Incluso se podrán agregar productos al carrito de compras.
5. Para solicitar un servicio, el cliente deberá registrarse o iniciar sesión en la app. Si es un nuevo registro la app deberá pedir la ubicación del usuario en primer lugar para verificar si hay cobertura en su localidad antes de proceder con el registro. En caso de que si haya cobertura se debe poder continuar el registro en caso contrario se mostrará un mensaje de error indicando que no hay cobertura en su zona.
Si se continúa con el registro se mostrará otro formulario de dirección solo para completar la información que no se pueda recolectar con el mapa (número interior, referencias, etc.), Y lo que sí se pudo recolectar con el mapa (colonia, ciudad, código postal, etc) se debe mostrar en campos de texto no editables, Por último mostrar un formulario el cual solicite datos básicos (nombre, correo, sexo, telefono, foto y contraseña).
6. Después de llenar la información de registro se debe verificar por correo electrónico la autenticidad de la cuenta con una liga que active la cuenta. No se podrán realizar compras si el usuario no comprueba su correo electrónico.
7. Ya con el usuario creado y verificado se podrán realizar pedidos. Estos pedidos deben calcular varias cosas:
7.1 Al realizar el pedido, los servicios y/o paquetes agregados al carrito deben de contener la categoría o categorías de los profesionales que se necesitan para prestar el servicio, y en base a estas categorías se filtran los profesionales que pueden realizar el trabajo. Por ejemplo, un barbero no puede aparecer en la lista (de profesionales a elegir) de una dama que solicite un manicure.
7.2 Se deberá elegir la dirección donde se prestará el servicio. Se deben de mostrar las direcciones que el usuario tiene dadas de alta en su cuenta la cuales se pueden revisar y gestionar desde la opción de “Mis direcciones” del menú lateral.
7.3 Se debe ingresar el día y la hora en que se necesita el servicio por medio de un calendario y reloj para evitar errores y no se podrán elegir fechas pasadas y al menos de debe poder agendar con una hora y media de anticipación, no menor. Por ejemplo no se puede solicitar un servicio a las 12:15 pm si la hora actual es 12:00 pm, se debe de elegir por lo menos con una hora y media de diferencia.
7.4 Deberá mostrar en base a esta información de categorías, dirección, día y horarios la lista de los profesionales disponibles. Los profesionales mostrados deberán coincidir sólo con la categoría que se solicitó por el cliente y la lista deberá mostrar su foto, nombre, categoría, descripción muy corta y su calificación en modo de 5 estrellas, ésta información será más bien una lista de tarjetas. Se tendrá que seleccionar un profesional por categoría.
Por ejemplo: si un cliente solicita un servicio de corte de cabello y un pedicure para el jueves 15 de junio de 2018 a las 12:00 pm, debe mostrar todos los profesionales que se dediquen a cortes de cabello y a pedicure que estén disponibles y deberá elegir uno de cada uno para poder continuar.
8. Una vez que se eligió fecha, hora y profesional se procede al pago, no sin antes mostrar una pantalla o modal para ingresar un cupón o código de descuento en caso de tener uno para aplicarlo antes del pago. ÉSte proceso de pago podrá ser con tarjeta de débito o crédito (utilizando Conekta) y mediante PayPal.
9. Ya que se realiza y se verifica el pago, el cliente deberá ser avisado (por medio de una notificación) cuando el profesional vaya en camino y deberá poder seguir la ruta del profesional dando clic en la notificación o por medio del menú lateral en la opción de “Mis pedidos” y seleccionando el pedido en curso, el cual abrirá la ventana de seguimiento en tiempo real y el chat en vivo con el profesional que solo podrá ser cuando esté activo el servicio.
10. Una vez concluido el servicio, el cliente deberá calificar el servicio y al profesional o profesionales que lo atendieron.
temas generales de la app de cliente
1. En caso no tener sesión activa el menú lateral solo mostrará las opciones de: Iniciar sesión, registrarse, términos y condiciones, cambiar de plataforma (de hombre a mujer y viceversa) y salir.
2. En caso de tener la sesión iniciada mostrar la siguientes opciones en el menú lateral: Mi perfil, pedidos realizados, mis direcciones, términos y condiciones, cambiar de plataforma (de hombre a mujer y viceversa), y cerrar sesión.
3. El cliente podrá ver y modificar su información de perfil (foto, nombre, correo, teléfono y contraseña) desde la opción “Mi perfil” del menú lateral de la app.
4. El cliente podrá ver e interactuar con la lista de pedidos realizados desde el menú lateral en la opción de “mis pedidos”. Si el pedido seleccionado no está en curso, al dar click solo deberá de aparecer un toast con la leyenda de que no se puede editar. Si el pedido está en curso, al dar clic deberá mostrar el mapa de seguimiento del profesional a cargo y dos botones, uno para regresar a la pantalla de inicio y otro que abra el chat con el profesional
5.
El cliente podrá ver, editar, agregar o eliminar direcciones (PERO siempre debe de haber al menos una dirección, si solo se tiene una no se podrá eliminar) desde la opción de “mis direcciones” del menú lateral. Debe haber un botón en la barra superior (+) que sirva para agregar una nueva dirección, para agregarla se debe de abrir la ventana con el mapa para seleccionar la ubicación de la dirección y el formulario para completar los datos faltantes que no se puedan tomar a partir del mapa como “Número interior”, “Referencias”, Etc., éSte proceso de agregar dirección debe ser igual al que se hace al registrarse como usuario en la parte donde pide la dirección. ÉSte tema de las direcciones tiene que hacer una validación de cobertura según las ubicaciones que se tengan dadas de alta en el Admin. No se podrán dar de alta direcciones donde no se tenga cobertura del servicio.
6. Al dar clic en un elemento de la lista de servicios o paquetes se deberá abrir en una ventana nueva una tarjeta que contenga la foto y la descripción necesaria del mismo. Dicha información es la que se carga desde el Admin (web app). En ésta misma vista se debe de incluir un botón al final de la tarjeta para poder agregar al carrito de compras.
Una vez agregado se debe mostrar un toast indicando que se agregó el ítem al carrito y se debe regresar al inicio.
7. El carrito de compras debe mostrar una notificación con el número de servicios que se tienen agregados actualmente (los paquetes cuentan como un solo servicio). Al dar clic en el carrito se deberá listar los servicios agregados con su respectivo nombre, precio y cantidad y se deberá poder sumar cantidades del mismo servicio o incluso eliminarlos. También deberá mostrar el total de la compra y un botón que permita continuar el proceso.
Dicho botón tiene que validar si existe una sesión abierta y en caso contrario abrir la pantalla de login. De existir una sesión abierta sólo continuar con el proceso.
8. Un usuario hombre podrá solicitar un servicio de mujer y viceversa utilizando el mismo carrito de compras y con la misma lógica.
9. La pantalla de login debe mostrar los cuadros de texto estándar (correo y contraseña) y debe tener la opción de olvido de contraseña (funcional por medio de link enviado al correo electrónico) y la opción de nuevo registro. Como cualquier login con sus respectivas validaciones..
10. Cada cambio de vista o proceso que implique tiempo de carga sea cual sea la razón (pagos, consultas a la bd, cambios de vista, etc.), Deberá mostrar un icono de loading con movimiento para hacer saber al usuario que se está cargando el contenido solicitado.
11. En caso de intentar salir de la app se debe mostrar un alert indicando si estás seguro de que quiere salir para que no se salgan por error.
app del trabajador
1. Al abrir la app se debe mostrar un login que verificará que existe el usuario en la base de datos del sistema. Estos usuarios serán creados por el administrador
2.
El profesional deberá recibir una notificación en su app cuando algún cliente haya solicitado su servicio, dicha notificación deberá llegar en el momento en que lo solicita el cliente, sin importar si es dentro de una semana el servicio y con la información necesaria para poder llegar a prestar el servicio (Nombre, teléfono, dirección, horario, etc.). En caso de que el cliente solicite a fulanito1 para el día 1 de enero y fulanito renuncia o algo le pasa se deberá poder notificar al cliente el cambio de profesional o se le podrá enviar un bono o algo para recompensar la situación.
3. La pantalla inicial de su app de empleado deberá mostrar los servicios pendientes ordenados por fecha del más urgente al más lejano y de ser posible con color para identificar cuales están por comenzar y cuales tiene tiempo de sobra para atenderlos.
4. Se debe mostrar una notificación todos los días a primera hora para revisar los servicios del día en curso. ÉSto para evitar olvidos.
5. Al dar clic en algún servicio de la pantalla de inicio se deberá mostrar toda la información del mismo y la opción de abrir el chat con el cliente (en caso de que esté en curso) y la opción de marcar como “En proceso” o “Finalizado”.
5.1 Deberá poder chatear con el cliente actual (solo en el proceso del servicio) en tiempo real para posibles dudas o comentarios. ÉSto será posible desde la opción “Mis servicios” del menú lateral dentro del servicios que tenga el estado como “en curso” o como ya se mencionó desde la pantalla de inicio dando click en el servicio en curso.
5.2 Se podrá marcar el servicio en proceso o como finalizado desde el menú lateral en la opción de “Mis servicios” (o desde la pantalla de inicio seleccionando el servicio deseado). Si lo marca como finalizado el estatus del profesional deberá pasar automáticamente de “No disponible” a “Disponible” en la plataforma para que pueda tomar mas pedidos pronto.
6. También podrá apagar o encender su app en caso de que tenga o no tiempo de trabajar y su estado en la app deberá de cambiar de “Disponible” a “No disponible” y viceversa. ÉSto será posible desde el menú lateral de la app.
7. Se podrá ver la información de profesional desde el menú lateral en la opción de “Mi información” donde solo se podrá consultar, no cambiar. Se podrán ver datos como nombre, correo electrónico, id de profesional, número de teléfono, calificación, etc. Toda ésta información se deberá ingresar por medio de la web app por un administrador.
Solo en el caso de las calificaciones serán un cálculo automático según los que hayan calificado los clientes
sistema de administración web:
la opciones del admin serán:
1. Estadísticas: Apartado para mostrar las estadísticas descritas en el punto siguiente (10)
2. Ubicaciones: En este apartado se podrán dar de alta la ubicaciones donde se tendrá cobertura de servicio.
Propongo seleccionar una ubicación en el mapa y dar servicio a unos 10 km a la redonda. ÉSta parte está muy ligada con la validación del registro en la app del cliente donde te solicita que ingreses tu ubicación para poder registrarte.
3. Empleados: Formulario para dar de alta empleados, eliminar o editar los ya existentes. La cargar los empleados será de manera individual para esta versión. Los empleados que se den de alta aquí podrán utilizar las credenciales para acceder a la app de empleado.
Se deben ingresar los datos generales: Nombre, correo, teléfono, fotografía, dirección, identificación, etc. También se deberá generar un ID único por empleado para control interno y toda ésta información se mostrará en la app de empleado y no podrá editarse desde la misma. Solo un administrador podrá realizar los cambios de esta parte.
4. Categorías: En este apartado solo servirá para registrar, editar o eliminar categorías (Estética, Barbería, Pedicure, etc.)
5. Servicios: Menú para dar de alta Servicios, la carga de los productos será de forma individual para ésta versión. Los servicios deben incluir nombre, foto, descripción, precio y categoría (la categoría se debe seleccionar de una lista que muestre las categorías dadas de alta). ÉStos servicios son los que se mostrarán en la app de cliente en el inicio.
6. Paquetes: Los paquetes serán promociones armadas por el administrador que se mostrarán en la app. Estos paquetes son una lista de servicios que se pueden contratar en conjunto por un precio menor que si se contrataran de manera individual. Para capturar un nuevo paquete solo hay que seleccionar los servicios que incluye el paquete (se seleccionan de una lista que muestra todos los servicios dados de alta), Ponerle nombre, descripción y precio.
Se podrán agregar, editar o eliminar paquetes.
7. Transacciones: Debe mostrar una lista informativa con el historial de transacciones realizadas por medio de la app con los datos relevantes como Fecha, hora, descripción del servicio contratado, profesional a cargo, método de pago, estatus, banco, etc. Esta lista se debe poder descargar en Excel.
8. Clientes registrados: Se debe mostrar una lista con todos los clientes registrados ordenados alfabéticamente por nombre. Se debe mostrar información relevante como nombre, sexo, correo, número de pedidos contratados, teléfono, dirección, etc. Esta lista debe poder descargar en un Excel
Recompensas: En éste apartado se podrán crear códigos de descuento donde se pueda ingresar el nombre del código, el código, el tipo de descuento, el monto de descuento, la vigencia y los términos y comentarios del mismo.
Además se podrán agregar, editar y eliminar códigos. ÉStos códigos se envían a determinados clientes (para eso las estadísticas de clientes) de manera manual y el cliente podrá utilizarlo antes de pagar algún servicio contratado y se debe registrar su uso para tener conocimiento de cuantos códigos se canjearon.
9. Mapa de empleados: Servirá para poder seguir en tiempo real a los profesionales sin que ellos lo sepan, solo cuando tengan su app de profesional encendida. En pocas palabras será un mapa donde se visualicen todos los profesionales en tiempo real. Para identificarlos se mostrará su ID y su nombre al poner el cursor en el marcador.
10. Detalle de las estadísticas: Toda la información importante y relevante para la empresa:
10.1 Estadística de clientes: Gráfica que muestre estadísticas por cliente (Poder seleccionar el cliente de una lista y mostrar sus estadísticas), cuánto se gastó el cliente, que servicio contrató y quien atendió el servicio.
10.2 Estadística de empleados: Gráfica que muestre estadísticas por empleado (Poder seleccionar el empleado de una lista y mostrar sus estadísticas), cuánto dinero generó ese empleado, los servicios que realizo, cuál fue el servicio que más le solicitaron.
10.3 Estadística de paquetes y servicios: Gráfica que muestre dos opciones, ver gráfica de servicios o ver gráfica de paquetes. ÉSta gráfica deberá mostrar las estadísticas completas por servicios y paquetes, cuánto dinero generaron, cual es el más solicitado, cuál el menos solicitado, etc.
10.4 Estadística de ingresos: Todos los ingresos generados históricos mostrados por mes o año.
Categoría Programación y Tecnología
Subcategoría Programación de Apps. Android, iOS y otros
¿Cuál es el alcance del proyecto? Crear una aplicación nueva
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo el diseño
Disponibilidad requerida Según se necesite
Experiencia en este tipo de proyectos Sí (He administrado este tipo de proyectos anteriormente)
Integraciones de API Payment Processor (Paypal, Stripe, etc.)
Plataformas requeridas Android, iPhone
Plazo de Entrega: No definido
Habilidades necesarias