Sobre este proyecto
it-programming / web-development
Abierto
Contexto general del proyecto
1. Introducción El propósito de este caso de estudio es definir los requerimientos y la estructura de un software web que facilite la interacción entre microempresas de costura y sus clientes. El sistema debe soportar cuatro roles principales: microempresas integrales (que manejan todo el proceso desde la compra de materia prima hasta la venta de productos terminados), microempresas satélite (que reciben cortes de prendas y se encargan solo de la confección), clientes y un administrador del sistema. Cada rol tiene funcionalidades específicas que incluyen la gestión de inventarios, pedidos, solicitudes, reportes y, como nuevo requisito, la administración de pagos a través de una pasarela de pago integrada. El sistema también incorpora un sistema de notificaciones por correo electrónico para mantener a los usuarios informados sobre el estado de sus pedidos, solicitudes y transacciones. La administración de pagos permitirá procesar transacciones de manera segura y eficiente, asegurando que tanto las microempresas como los clientes puedan completar y recibir pagos por los servicios o productos ofrecidos. El objetivo es proporcionar una guía clara y detallada para que el desarrollador pueda implementar todas las funcionalidades descritas, incluyendo la integración de la pasarela de pago, sin ambigüedades. 2. Objetivos Permitir a las microempresas integrales gestionar inventarios de materia prima y productos terminados, procesar pedidos (incluidos personalizados) y administrar los pagos recibidos de los clientes. Facilitar a las microempresas satélite la gestión de solicitudes de confección, la edición de su perfil de producción y la recepción de pagos por sus servicios. Ofrecer a los clientes una interfaz para explorar empresas, realizar pedidos o solicitudes, completar pagos de manera segura y recibir notificaciones por correo. Proporcionar al administrador herramientas para gestionar usuarios, generar reportes y supervisar el sistema, incluyendo aspectos relacionados con los pagos. Implementar un sistema de notificaciones por correo para informar a los usuarios sobre el estado de pedidos, solicitudes y confirmaciones de pago. Integrar una pasarela de pago para procesar transacciones de forma segura, eficiente y confiable. 3. Roles y Funcionalidades a. Microempresas Integrales Las microempresas integrales son responsables de todo el proceso de producción y venta. Sus funcionalidades incluyen: Iniciar sesión en el sistema. Gestionar inventario de materia prima: visualizar, agregar, modificar cantidades y eliminar ítems. Gestionar inventario de productos terminados: visualizar, agregar, modificar cantidades y eliminar productos. Visualizar y gestionar pedidos: ver los pedidos realizados por clientes y actualizar su estado (pendiente, en producción, terminado, enviado, entregado). Gestionar pedidos personalizados: revisar solicitudes de productos no disponibles en stock, aceptarlas (especificando precio y tiempo de entrega) o rechazarlas (con una justificación). Generar reportes de ventas: consultar ventas por períodos de tiempo seleccionados, asociadas a clientes específicos. Administrar pagos: recibir y verificar pagos a través de la pasarela de pago integrada para pedidos de productos terminados y pedidos personalizados aceptados. b. Microempresas Satélite Las microempresas satélite se enfocan en la confección de prendas a partir de cortes recibidos. Sus funcionalidades son: Iniciar sesión en el sistema. Editar perfil: describir máquinas disponibles, capacidad de producción, dirección y subir imágenes representativas. Ver y responder solicitudes de confección: visualizar solicitudes enviadas por clientes, asignar un valor por prenda o total, y notificar al cliente con la cotización. Administrar pagos: recibir pagos a través de la pasarela de pago una vez que el cliente acepta la cotización. c. Clientes Los clientes interactúan con las microempresas para adquirir productos o servicios. Sus funcionalidades incluyen: Registrarse e iniciar sesión. Ver catálogo de empresas: listar microempresas integrales y satélite con filtros por tipo, ubicación u otros criterios. Interactuar con microempresas integrales: Visualizar productos disponibles y agregarlos al carrito. Realizar pedidos y proceder al pago a través de la pasarela. Solicitar pedidos personalizados y, si son aceptados, completar el pago correspondiente. Interactuar con microempresas satélite: Visualizar perfiles y enviar solicitudes de confección. Recibir cotizaciones y proceder al pago si aceptan la propuesta. Recibir notificaciones por correo: actualizaciones sobre el estado de pedidos, solicitudes y confirmaciones de pago. d. Administrador del Sistema El administrador supervisa el sistema y tiene las siguientes responsabilidades: Modificar usuarios: gestionar cuentas de clientes y microempresas (activar, desactivar o editar). Ver reportes detallados: consultar ventas por microempresa, registros de nuevas microempresas y estadísticas relacionadas con los pagos. Supervisar la administración de pagos: asegurar que la pasarela de pago esté configurada y funcionando correctamente, resolviendo posibles incidencias. 4. Flujos de Usuario a. Ruta del Cliente Ingreso: Accede a la página principal, se registra o inicia sesión. Exploración: Consulta el catálogo de microempresas con filtros por tipo (integral o satélite). Selección de empresa: Microempresa integral: Visualiza productos, agrega al carrito o solicita un producto personalizado. Microempresa satélite: Revisa perfiles y envía una solicitud de confección. Carrito o solicitud: Para integrales: Confirma el pedido y es redirigido a la pasarela de pago. Para satélite: Envía la solicitud y espera la cotización. Pago: En integrales: Completa el pago del pedido o del personalizado aceptado a través de la pasarela. En satélite: Recibe la cotización, la acepta y realiza el pago correspondiente. Notificaciones: Recibe correos sobre la creación de pedidos/solicitudes, actualizaciones de estado y confirmación de pagos. b. Ruta de la Microempresa Integral Ingreso: Inicia sesión y accede al panel de control. Gestión: Actualiza el estado de los pedidos (lo que genera notificaciones automáticas al cliente). Administra inventarios de materia prima y productos terminados. Responde a pedidos personalizados (acepta o rechaza, notificando al cliente). Administración de pagos: Recibe confirmaciones de pago automáticamente a través de la pasarela cuando el cliente completa la transacción. c. Ruta de la Microempresa Satélite Ingreso: Inicia sesión y accede al panel de solicitudes. Respuesta: Revisa solicitudes de confección, asigna una cotización y notifica al cliente. Administración de pagos: Recibe pagos a través de la pasarela cuando el cliente acepta la cotización. d. Ruta del Administrador Ingreso: Accede al panel administrativo. Gestión: Administra usuarios y revisa reportes. Supervisión de pagos: Verifica que los pagos se procesen correctamente y resuelve problemas relacionados con la pasarela. 5. Modelos de Datos A continuación, se describen los modelos principales del sistema, con ajustes para incluir la administración de pagos: Usuario: Incluye tipo de usuario (integral, satélite, cliente, administrador), nombre, correo y datos de autenticación. MicroempresaIntegral: Relacionada con usuario, contiene inventarios de materia prima y productos terminados. MicroempresaSatelite: Relacionada con usuario, incluye perfil (máquinas, capacidad, dirección, imágenes). Producto: Relacionado con MicroempresaIntegral, incluye nombre, descripción, precio y cantidad en inventario. Pedido: Relacionado con cliente y MicroempresaIntegral, incluye productos, estado (pendiente, en producción, etc.) Y un campo pagado (booleano) para indicar si el pago se ha completado. PedidoPersonalizado: Relacionado con cliente y MicroempresaIntegral, incluye descripción, estado (pendiente, aceptado, rechazado), precio acordado y campo pagado (booleano). SolicitudConfeccion: Relacionada con cliente y MicroempresaSatelite, incluye descripción, cotización, estado y campo pagado (booleano). Transaccion: Nuevo modelo para registrar pagos: Campos: monto, fecha, estado (pendiente, completado, fallido), id_transaccion_pasarela (identificador único de la pasarela). Relaciones: Vinculado a Pedido, PedidoPersonalizado o SolicitudConfeccion según corresponda. 6. Administración de Pagos y Pasarela de Pago La administración de pagos es un componente clave del sistema. A continuación, se detalla cómo debe integrarse y funcionar: Integración de la Pasarela de Pago Opciones recomendadas: Se pueden utilizar pasarelas como PayPal, Stripe o servicios locales según el mercado objetivo. El desarrollador debe seleccionar una opción compatible con el sistema y las necesidades del cliente final. Configuración: La pasarela debe configurarse con claves API proporcionadas por el proveedor (almacenadas de forma segura en el sistema). El administrador del sistema debe tener acceso a una interfaz para verificar o ajustar esta configuración si es necesario. Flujo de Pago Inicio del pago: Cuando un cliente confirma un pedido (integral), un personalizado aceptado o una cotización (satélite), el sistema genera una sesión de pago. Redirección: El cliente es redirigido a la interfaz de la pasarela de pago para ingresar sus datos de pago (tarjeta, cuenta, etc.). Confirmación: La pasarela procesa el pago y notifica al sistema sobre el resultado (éxito, fallo o cancelación) a través de un mecanismo como webhooks. Actualización: Si el pago es exitoso, el sistema marca el pedido o solicitud como pagado y actualiza su estado (por ejemplo, a "en producción"). Se envía una notificación por correo al cliente confirmando el pago y al vendedor informando la transacción. Gestión de errores: Si el pago falla o es cancelado, el sistema notifica al cliente y mantiene el pedido/solicitud en estado pendiente. Funcionalidades Relacionadas Vistas para el cliente: Una página de checkout para iniciar el pago. Páginas de éxito o cancelación tras completar o abandonar el proceso. Notificaciones: Confirmación de pago exitoso al cliente y a la microempresa. Alerta en caso de fallo o cancelación. Reportes: El administrador y las microempresas pueden consultar transacciones por período, estado o cliente. Consideraciones de Seguridad El sistema debe operar bajo HTTPS para proteger las transacciones. No se debe almacenar información sensible (como números de tarjeta) en la base de datos; esta debe manejarse exclusivamente por la pasarela. Validar las notificaciones de la pasarela (por ejemplo, mediante firmas) para evitar fraudes. 7. Notificaciones por Correo El sistema debe enviar notificaciones automáticas en los siguientes casos: Clientes: Creación de pedidos/solicitudes, actualizaciones de estado, cotizaciones recibidas, confirmaciones de pago. Microempresas: Nuevos pedidos/solicitudes, aceptación de cotizaciones/personalizados, confirmaciones de pago. Formato: Los correos deben ser claros, incluir detalles relevantes (número de pedido, monto, estado) y un enlace al sistema si aplica. 8. Requerimientos Técnicos Base tecnológica: El sistema se desarrollará en un entorno compatible con la integración de pasarelas de pago (por ejemplo, Python/Django). Pasarela de pago: Compatible con opciones como Stripe, PayPal o equivalentes locales. Seguridad: https obligatorio, manejo seguro de claves api y datos sensibles. Escalabilidad: Capacidad para manejar múltiples transacciones simultáneas. Interfaz: Diseño intuitivo y responsive, con retroalimentación clara durante el proceso de pago. 9. Consideraciones Adicionales Pruebas: Probar los flujos de pago en modo sandbox (simulado) antes del despliegue real. Verificar que las notificaciones y actualizaciones de estado funcionen correctamente. Soporte: Incluir un mecanismo para que los usuarios reporten problemas con los pagos al administrador. Documentación: El desarrollador debe documentar el proceso de integración de la pasarela y los pasos para su mantenimiento. Este caso de estudio proporciona una guía completa y clara para el desarrollo del sistema, integrando la administración de pagos y una pasarela de pago como requisito central. El desarrollador debe seguir los flujos descritos, implementar los modelos de datos sugeridos y garantizar que las funcionalidades de pago y notificaciones sean seguras, eficientes y fáciles de usar para todos los roles involucrados.
Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Crear un nuevo sitio personalizado
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo una idea
Disponibilidad requerida Según se necesite
Integraciones de API Otros (Otras APIs)
Roles necesarios Programador
Plazo de Entrega: No definido
Habilidades necesarias