# mmorales.photo ## 1. Descripción General mmorales.photo es una plataforma web para la gestión, exhibición y venta de fotografías profesionales. Permite a fotógrafos administrar su portafolio, interactuar con clientes y facilitar la compra de imágenes digitales o impresas. ## 2. Análisis de Requisitos ### Requisitos Funcionales - Registro y autenticación de usuarios (fotógrafos y clientes). - Gestión de portafolio fotográfico (subida, edición, categorización). - Visualización pública de galerías. - Compra de fotografías (descarga digital y pedido de impresión). - Panel de administración para fotógrafos. - Sistema de comentarios y valoraciones. - Notificaciones por correo electrónico. ### Requisitos No Funcionales - Seguridad en el manejo de datos y pagos. - Escalabilidad para soportar múltiples usuarios y galerías. - Interfaz responsiva y accesible. - Integración con pasarelas de pago. ## 3. Arquitectura del Sistema - **Frontend:** Aplicación web en React (front/) para la interfaz de usuario. - **Backend:** API REST en Node.js/Express (back/) para la lógica de negocio y acceso a datos. - **Base de Datos:** PostgreSQL o MySQL (bd/) para almacenamiento de usuarios, fotos y transacciones. - **Almacenamiento de Imágenes:** Servicio externo (ej. AWS S3) o almacenamiento local. - **Autenticación:** JWT y OAuth para login seguro. - **Infraestructura:** Despliegue en servidores cloud (ej. AWS, Azure) con CI/CD. ## 4. Casos de Uso - **Fotógrafo:** Registra su cuenta, sube fotos, organiza galerías, revisa ventas y comentarios. - **Cliente:** Navega galerías, compra fotos, deja comentarios y valoraciones. - **Administrador:** Modera contenido, gestiona usuarios y reportes. ## 5. User Stories - Como fotógrafo, quiero subir y organizar mis fotos para mostrar mi portafolio. - Como cliente, quiero buscar y comprar fotos fácilmente. - Como administrador, quiero moderar contenido inapropiado. ## 6. Modelos de Datos (Ejemplo) - **Usuario:** id, nombre, email, rol, contraseña, fecha_registro - **Fotografía:** id, título, descripción, url, precio, fotógrafo_id, fecha_subida, categoría - **Compra:** id, cliente_id, foto_id, fecha, tipo_entrega, estado - **Comentario:** id, usuario_id, foto_id, texto, fecha ## 7. División de Tareas - **Frontend:** Diseño de UI, integración con API, gestión de estado, vistas responsivas. - **Backend:** Desarrollo de endpoints, lógica de negocio, autenticación, integración con base de datos. - **Base de Datos:** Diseño de esquemas, migraciones, optimización de consultas. - **DevOps:** Configuración de CI/CD, despliegue, monitoreo. - **QA:** Pruebas unitarias, de integración y de usuario.