añade primeras documentaciones
This commit is contained in:
57
docs/acta-constitucion.md
Normal file
57
docs/acta-constitucion.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Galerías Fotográficas - Acta de Constitución
|
||||
|
||||
---
|
||||
|
||||
## Propósito
|
||||
|
||||
Crear una plataforma web que permita a fotógrafos profesionales almacenar, distribuir y colaborar con sus clientes en la gestión de imágenes digitales de manera eficiente y segura.
|
||||
|
||||
## Objetivos
|
||||
|
||||
1. Facilitar el almacenamiento y la organización de imágenes digitales.
|
||||
2. Mejorar la comunicación y colaboración entre fotógrafos y clientes.
|
||||
3. Proporcionar herramientas para la retroalimentación y revisión de imágenes.
|
||||
4. Ofrecer una experiencia de usuario intuitiva y accesible.
|
||||
5. Ofrecer una solución integral que unifique todos los aspectos de la gestión de imágenes digitales.
|
||||
6. Ofrecer un portfolio público para atraer nuevos clientes.
|
||||
|
||||
## Alcance
|
||||
|
||||
Funcionalidades incluidas:
|
||||
|
||||
- Subida y almacenamiento de imágenes.
|
||||
- Visualización y descarga de imágenes en diferentes tamaños y resoluciones.
|
||||
- Etiquetado y clasificación manual de imágenes.
|
||||
- Creación y gestión de colecciones de imágenes.
|
||||
- Creación y gestión de eventos temporales asociados a colecciones.
|
||||
- Compra de sesiones por parte de clientes.
|
||||
- Compra de imágenes individuales o colecciones.
|
||||
- Generación de portfolio para el profesional.
|
||||
- Gestión de usuarios con diferentes roles (anónimo, cliente, profesional, administrador).
|
||||
- Sistema de feedback y comentarios en imágenes, colecciones, sesiones y portfolio general.
|
||||
|
||||
Funcionalidades excluidas o relegadas a futuro:
|
||||
|
||||
- Generación de títulos y descripciones automáticas para imágenes.
|
||||
- Etiquetado y clasificación automática de imágenes.
|
||||
- Integración con redes sociales para compartir imágenes.
|
||||
- Edición avanzada de imágenes dentro de la plataforma.
|
||||
- Soporte para videos y otros formatos multimedia.
|
||||
- Integración con servicios de impresión y productos físicos.
|
||||
- Funcionalidades de inteligencia artificial para la mejora automática de imágenes.
|
||||
- Soporte para múltiples idiomas y localización.
|
||||
- Integración con herramientas de marketing y análisis de datos.
|
||||
- Funcionalidades de automatización de flujos de trabajo.
|
||||
- Soporte para la gestión de derechos de autor y licencias de imágenes.
|
||||
|
||||
## Interesados
|
||||
|
||||
- Fotógrafos profesionales y empresas de imagen
|
||||
|
||||
## Restricciones y limitaciones
|
||||
|
||||
- Todas las imágenes vistas en la web tendrán una resolución máxima de 1080p.
|
||||
- No se permitirá la descarga de imágenes en alta resolución sin comprarla.
|
||||
- No se generarán rutas para las imágenes.
|
||||
- Solo se permitirá la subida de imágenes en formatos JPEG, JPG y PNG.
|
||||
- No se permitirá comprar a usuarios no autenticados.
|
@@ -53,4 +53,104 @@ El cliente no quiere recibir las imágenes en un zip o tener que descargarlas de
|
||||
|
||||
### Trabajo colaborativo
|
||||
|
||||
El profesional quiere que el cliente escoja la imagen que más el guste y le ayude a
|
||||
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
|
||||
|
4
docs/requisitos-funcionales.md
Normal file
4
docs/requisitos-funcionales.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Galerías Fotográficas - Requisitos funcionales
|
||||
|
||||
---
|
||||
|
Reference in New Issue
Block a user