157 lines
8.6 KiB
Markdown
157 lines
8.6 KiB
Markdown
# Galerías Fotográficas
|
|
|
|
---
|
|
|
|
## Que problema identificamos
|
|
|
|
Existen multiples alternativas para la distribución de imágenes digitales, como redes sociales o proveedores de almacenamiento en la nube.
|
|
Las redes sociales exponen publicamente y con poco control el contenido de las imágenes.
|
|
Los proveedores de almacenamiento ofrecen un control mayor sobre la exposición de las imágenes a cambio de una suscripción o pago por uso.
|
|
|
|
Como profesional que espera cobrar por el trabajo, publicar fotos privadas en redes sociales abre camino a múltiples problemas: perdida de privacidad para el cliente, mala exposición y pobre posicionamiento web, perdida de calidad en la imágen, se impide reutilizar la imagen con otros fines sin herramientas de terceros que pueden ser perjudiciales para clientes y profesionales.
|
|
Usar proveedores como WeTransfer, Google Drive o Dropbox, requiere de pagos y un conocimiento mínimo sobre el uso de estos servicios por parte del cliente; además, para ahorrar costes los profesionales deben eliminar los grupos de imágenes con cierta frequencia o fracturar por tiempo de almacenamiento al cliente.
|
|
Ambas opciones limitan la cooperatividad y la recuperación de las imágenes por parte del cliente.
|
|
Además, expone fácilmente al profesional a varios riesgos y problemáticas emergentes con la evolución constante del software: la perdida de credenciales, el robo de identidad, el plagio, la pérdida de control sobre la calidad de transmisión de la imagen.
|
|
|
|
Como cliente, recibir una sesión por WeTransfer limita las opciones de feedback y mejora o personalización. Recibirla por correo electrónico limita la cantidad de imágenes recibidas. Recibirlas por Google Drive o similares nos quita espacio de nuestro almacenamiento en la nube. Si el profesional publica las imágenes, referenciándos puede afectar a nuestra huella digital e imagen en redes.
|
|
Además, según la configuración del servicio que use el profesional, es común tener a disposición las imágenes solamente durante un tiempo determinado, haciendo imposible recuperarlas o acceder a ellas pasado ese tiempo.
|
|
|
|
Ambos participantes de la actividad recaen en un moderno problema: necesitar diversos servicios para controlar un único recurso.
|
|
Como profesional, necesitas una web-portfolio, un perfil en redes, un servicio de almacenamiento y una forma de contacto con el cliente.
|
|
Como cliente, necesitas poder ver el trabajo anterior del profesional, contactar con él y poder revisar el trabajo de forma conjunta para lograr el resultado que uno espera.
|
|
|
|
## Que queremos resolver
|
|
|
|
Desde el punto de vista del profesional, podemos agrupar todos los servicios en un único servico.
|
|
Una especie de Amazon para imágenes.
|
|
|
|
Desde el punto de vista del cliente, agrupandolo todo, evitamos la necesidad de acceder a tantos servicios diferentes y familiarizamos al usuario con una interfaz sencilla y directa, minimizando el roce con el aplicativo.
|
|
|
|
## Alternativas a nuestra solución
|
|
|
|
Existen multitud de alternativas a una web hecha a mano, como Wix o Joomla.
|
|
Existen alternativas cloud-native para alojar un portfolio.
|
|
Existen muchos proveedores de almacenamiento web.
|
|
Existen muchas redes sociales donde compartir las imágenes.
|
|
Existen metodos de comunicación y trabajo colaborativo.
|
|
En su gran mayoría, en servicios diferenciados.
|
|
Sin embargo no existe servicios unificados.
|
|
|
|
---
|
|
|
|
## Despiece del problema
|
|
|
|
### Almacenamiento
|
|
|
|
El profesional no quiere tener que gastar en almacenamiento ni preocuparse del estado de un proveedor.
|
|
Por tanto, el sistema tiene que poder almacenar las imágenes durante mucho tiempo y mantenerlas en linea el mismo tiempo.
|
|
|
|
### Distribución
|
|
|
|
El profesional no quiere tener que usar más de un servicio para enviar las imágenes al cliente o subirlas a redes sociales.
|
|
El cliente no quiere recibir las imágenes en un zip o tener que descargarlas desde un servicio de terceros.
|
|
|
|
### Trabajo colaborativo
|
|
|
|
El profesional quiere que el cliente escoja la imagen que más el guste y le de feedback sobre el retoque y la edición de la imágen.
|
|
El cliente queire revisar el trabajo del profesional para escoger las imágenes que más le gusten.
|
|
|
|
### Feedback
|
|
|
|
El cliente puede dar feedback mediante comentarios en cada imágen como votando la imagen.
|
|
La nota asignada a cada imágen se determinará como: (votos positivos - votos negativos) / votos totales
|
|
Los comentarios se puntuarán de la misma forma.
|
|
El profesional podrá responder a los comentarios y los leerá de forma que el comentario con mejor puntuación quede el primero, en su defecto se ordenarán por fecha.
|
|
|
|
El feedback también podrá ser dado a imágenes y colecciones del portfolio público, solamente lo podrán hacer los clientes autenticados. Aquellos que adquieran una sesión podrán dejar feedback al profesional de forma pública.
|
|
|
|
### Portfolio
|
|
|
|
El profesional no quiere gastar en otro servicio más para alojar el protfolio.
|
|
El profesional quiere subir las imágenes al servicio y escoger cuales van a conformar el portfolio.
|
|
El profesional quiere que la primera ojeada que tenga el cliente sobre el servicio sea el portfolio.
|
|
|
|
### Colecciones
|
|
|
|
El profesional quiere organizar las imágenes por fecha, personas que salen en ellas, categorías, eventos...
|
|
El profesional quiere poder reunir imágenes que se relacionen entre sí por categoría, evento, fechas, motivos...
|
|
El profesional quiere juntar todas las imágenes que van destinadas a un cliente.
|
|
|
|
### Sesiones
|
|
|
|
El profesional hará varias imágenes que revisará con el cliente.
|
|
El cliente escogerá únicamente las mejoras y que más le gusten.
|
|
El profesional revisará esas imágenes, con un límite numérico de imágenes totales.
|
|
El cliente recibirá una colección de esas imágenes.
|
|
Múltiples clientes y profesionales podrán trabajar en una única sesión.
|
|
Durante el proceso, debe existir una colaboración mutua mediante feedback.
|
|
|
|
### Multiples clientes
|
|
|
|
El profesional quiere poder trabajar sobre un proyecto y poder enviar el resultado del proyecto a multiples clientes.
|
|
|
|
### Venta del servicio
|
|
|
|
El profesional quiere cobrar una imágen única, una o varias colecciones, o una sesión.
|
|
Un cliente pagará por una imágen, una o diversas colección premaquetadas, y por una sesión.
|
|
Muchos clientes podrán pagar conjuntamente el servicio.
|
|
|
|
### Usuarios
|
|
|
|
Existirán 4 tipos de usuarios:
|
|
|
|
- Anonimo
|
|
- Cliente
|
|
- Profesional
|
|
- Administrador
|
|
|
|
El usuario anónimo podrá consultar el portfolio y ver los diferentes botones y enlaces para ver el resto de imágenes públicas, redes sociales, blog o identificarse.
|
|
|
|
El cliente, o usuario identificado, podrá hacer lo mismo que el anónimo. También podrá comprar las diferentes imágenes y colecciones disponibles. Además, podrá contratar una sesión, interactuar con la sesión que tenga activa dando feedback o escogiendo las imágenes; y consultar pedidos anteriores para descargar las imágenes, publicarlas en redes sociales o compartirlas de forma directa con otros clientes identificados.
|
|
|
|
El profesional, podrá editar las imágenes y colecciones públicas que haya en el portfolio; organizar nuevas sesiones, editar las sesiones en marcha y actualizarlas; crear y editar nuevas colecciones; crear y editar eventos y categorías.
|
|
|
|
El administrador, podrá hacer lo mismo que el profesional y además podrá añadir profesionales y editar aspectos clave de la web.
|
|
|
|
Para facilitar el registro y el inicio de sesión, los usuarios podrán iniciar sesión con Google, Microsoft, Meta y Apple. Además, contarán con la opción de usar correo y contraseña. Para ello nos adaptaremos a OpenId y OAuth 2.
|
|
Todos los usuarios tendrán un método MFA como sms o passkeys.
|
|
Aquellos usuarios que inicien sesión con contraseña, recibirán un magic link para entrar.
|
|
|
|
### Conexiones lentas
|
|
|
|
Todas las imágenes subidas se procesarán en 3 categorías:
|
|
|
|
- Baja resolución: 360p, comprimidas en WebP
|
|
- Media resolución: 720p, comprimidas en WebP
|
|
- Resolución Nativa: nativa, sin compresión
|
|
|
|
### Pagos
|
|
|
|
Se establecerá como recomendación el uso de linkpay o servicios como google wallet.
|
|
|
|
---
|
|
|
|
## Tecnologías a usar
|
|
|
|
Back:
|
|
JWT, OpenId + OAuth 2 -> Duende Identity Server
|
|
DDD con CQRS -> MediatR
|
|
Entity Framework Core + sqlite -> Base de datos
|
|
AutoMapper -> Mapeo de objetos
|
|
Serilog + OpenTelemetry -> Logging y trazabilidad
|
|
Scalar + OpenApi -> Documentación y pruebas de API
|
|
FluentValidation -> Validación de modelos
|
|
Redis -> Almacenamiento en caché
|
|
mailkit -> Envío de correos electrónicos
|
|
ImageSharp -> Procesamiento de imágenes
|
|
|
|
Front:
|
|
TailwindCSS -> Estilos
|
|
Angular -> Framework
|
|
RxJS -> Programación reactiva
|
|
NgRx -> Manejo del estado
|
|
scss -> Preprocesador CSS
|
|
axios -> Cliente HTTP
|
|
Vite -> Bundler
|
|
Typescript -> Lenguaje
|