Want to create interactive content? It’s easy in Genially!
Daruma - TFG
Adrian
Created on June 18, 2020
Trabajo de Fin de Grado de la Universidad de Córdoba
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Geniaflix Presentation
View
Vintage Mosaic Presentation
View
Shadow Presentation
View
Newspaper Presentation
View
Zen Presentation
View
Audio tutorial
View
Pechakucha Presentation
Transcript
ÍNDICE
Análisis
Problema
Diseño
Objetivos
Pruebas
Antecedentes
Conclusiones
Restricciones
Recursos
prOBLEMA REAL
DEFINICIÓN DEL PROBLEMA
INICIO DE UNA NUEVA AVENTURA
CON LAS ACTIVIDADES APARECEN LOS GASTOS
PROBLEMAS DE ENDEUDAMIENTO
PROBLEMA TÉCNICO
SCRUM
SPRINT 2
SPRINT 1
SPRINT 3
Entrega de producto
Entrega de producto
PROBLEMA TÉCNICO
CICLO DE VIDA DE SCRUM
SCRUM DIARIO
24H
SPRINT 1-4 semanas
product backlog
SPRINT BACKLOG
PRODUCTO ENTREGABLE
OBJETIVOS
AUTENTICACIÓN CERTIFICADA
CREACIÓN DE UNA APP MÓVIL
MODIFICACIÓN DEL PERFIL
Los usuarios podrán iniciar sesión en el sistema mediante identificación certificada.
Como frontend del sistema.
Los usuarios podrán modificar la información del perfil tras el registro
SISTEMA DE ajuste de deudas
gestión de grupos
Encargado de reajustar el endeudamiento de cada usuario.
Los usuarios podrán crear, modificar y eliminar los grupos a los que pertenezca.
Visualización de los gastos
gestión de gastos
Los miembros del grupos deberán poder ver los gastos realizados en el grupos de forma sencilla
Los miembros de un grupos podrán crear, modificar y eliminar gastos.
ANTECEDENTES
ANÁLISIS DE MERCADO
splitwise
splid
tricount
CARACTERÍSTICAS
settle up
DARUMA
AUTENTICACIÓN FEDERADA
TRATAMIENTO DE GASTOS GRUPALES
CAMBIAR DIVISA DE LOS GASTOS
INVITAR MEDIANTE ENLACE
TRANSACCIONES RECURRENTES
SOFTWARE LIBRE
10
RESTRICCIONES
Factores dato
software libre
Liberación con licencia de Software Libre ya que la idea nace del Aula Software Libre de la Universidad de Córdoba
APLICACIÓN MÓVIL
El sistema dispondrá de una aplicación móvil que interactue con el sistema mediante una API.
API REST
Dispondrá de una API para que otras entidades puedan comunicarse con el sistema desde cualquier dispositivo.
11
restricciones
Factores ESTRATÉGICOS
BACKEND
FRONTEND
12
reCURSOS
RECURSOS DEL SISTEMA
software
hardware
ENTORNO DE DESARROLLO
- Intel Core i7-4790 3.6 Ghz
- 16 GB RAM
- Shapphire Radeo RX 480 8GB
- 120 GB SSD
13
ANÁLISIS
conceptos previos
EVENT SOURCING
domain driven design (ddd)
CLEAN ARQUITECTURE
cqrs
14
clean arquitecture
CONCEPTOS PREVIOS
FRAMEWORKS Y DISPOSITIVOS
PUNTOS DE ACCESO AL SISTEMA
LÓGICA DE LA APLICACIÓN
LÓGICA DE NEGOCIO
ENTIDADES
15
DOMAIN-DRIVEN DESIGN (DDD)
conceptos previos
"Diseño guiado por el dominio es una metodología para el desarrollo de sistemas complejos donde el centro de atención recae en la esquematización de las actividades, eventos, tareas e información que conforma el dominio del problema."
VAUGH VERNON
16
DOMAIN-DRIVEN DESIGN (DDD)
17
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO ESTRATÉGICO
INVENTORIO
ventas
EMPLEADOS
ENVIOS
PROMOCIONES
18
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO ESTRATÉGICO
INVENTORIO
ventas
EMPLEADOS
ENVIOS
PROMOCIONES
18
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO ESTRATÉGICO
BOUNDED CONTEXT
BOUNDED CONTEXT
BOUNDED CONTEXT
INVENTORIO
ventas
EMPLEADOS
ENVIOS
PROMOCIONES
18
BOUNDED CONTEXT
BOUNDED CONTEXT
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO ESTRATÉGICO
BOUNDED CONTEXT
BOUNDED CONTEXT
BOUNDED CONTEXT
INVENTORIO
ventas
EMPLEADOS
LENGUAJEUBICUO
LENGUAJEUBICUO
LENGUAJEUBICUO
ENVIOS
PROMOCIONES
LENGUAJEUBICUO
LENGUAJEUBICUO
18
BOUNDED CONTEXT
BOUNDED CONTEXT
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO TÁCTICO
ENTIDAD
Id
19
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO TÁCTICO
ENTIDAD
Value Object
Id (VO)
Id
Value Object
Value Object
19
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO TÁCTICO
ENTIDAD
EVENTO de dominio
Value Object
newEntity(...)
EntityWasCreated
Id (VO)
Value Object
Value Object
19
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO TÁCTICO
ENTIDAD
EVENTO de dominio
Value Object
newEntity(...)
EntityWasCreated
Id (VO)
ColourWasChanged
changeColour(green)
Value Object
Value Object
19
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO TÁCTICO
AGREGADO
ENTIDAD
ENTIDAD
VO
VO
20
DOMAIN-DRIVEN DESIGN (DDD)
DISEÑO TÁCTICO
AGREGADO
ENTIDAD RAIZ
ENTIDAD
ENTIDAD
VO
VO
20
COMMAND QUERY RESPONSABILITY SEGREGATION
EVENTS
DOMAIN
PROJECTION
COMMAND HANDLER
QUERY HANDLER
QUERY
COMMAND
21
EVENT SOURCING
PERSISTENCIA DE DATOS
NAME Was CHANGED
COLOUR Was CHANGED
ENTITY Was CREATED
EVENT STORE
22
EVENT SOURCING
EJEMPLO
USUARIO
Adrián
adrianlopez
nombre
paypal
UserWasCreated
newUser(...)
User Was CREATED
EVENT STORE
23
EVENT SOURCING
EJEMPLO
USUARIO
nombre
name Was changeD
UserWasCreated
NameWasChanged
newUser(...)
changeName(Manuel)
Adrián
Manuel
paypal
User Was CREATED
adrianlopez
EVENT STORE
23
EVENT SOURCING
EJEMPLO
PAYPAL Was changeD
USUARIO
nombre
name Was changeD
PaypalWasChanged
UserWasCreated
changeName(Manuel)
changePaypal(mlopez)
Manuel
paypal
User Was CREATED
mlopez
adrianlopez
EVENT STORE
23
EVENT SOURCING
EJEMPLO DE RECONSTRUCCIÓN
PAYPAL Was changeD
USUARIO
nombre
name Was changeD
Adrián
paypal
User Was CREATED
adrianlopez
EVENT STORE
24
EVENT SOURCING
EJEMPLO DE RECONSTRUCCIÓN
PAYPAL Was changeD
USUARIO
nombre
name Was changeD
Manuel
Adrián
paypal
User Was CREATED
adrianlopez
EVENT STORE
24
EVENT SOURCING
EJEMPLO DE RECONSTRUCCIÓN
PAYPAL Was changeD
USUARIO
nombre
name Was changeD
Manuel
paypal
User Was CREATED
adrianlopez
mlopez
EVENT STORE
24
ANÁLISIS
25
EVENT MODELING
ANÁLISIS
eJECUTA
MUESTRA
CASOS DE USO
PROYECCIONES
Emite
MODIFICA
eventos
26
CASOS DE USO
27
DIAGRAMA DE CLASES
28
DISEÑO
29
DIAGRAMA DE DESPLIEGUE
30
PRUEBAS
REALIZADAS EN EL BACKEND
Pruebas unitarias
pruebas e2e
PRUEBAS DE INTEGRACIÓN
Cypress
Jest
Jest
Tests de caja blanca
Tests de caja negra
Tests de caja blanca
31
demostración
32
PRUEBAS
COBERTURA DE LAS PRUEBAS
33
CONCLUSIONES
34
7.1k
11.5k
LÍNEAS DE CÓDIGO
LÍNEAS DE CÓDIGO
Conclusiones
FRONTEND
BACKEND
ESTADÍSTICAS
321
94,56%
Commits
Coverage
35
futuras mejoras
cONCLUSIONES
Ponderaciones y porcentajes en gastos
Sistema de conversión de moneda
Permitir a los usuarios métodos para dividir los gastos de forma más exacta.
Incorporar una herramienta que permita a los usuarios hacer el cambio de dinero de forma sencilla
Aplicación web
Añadir fotos a gastos
Chat interno
Aprovechar la API para la creación de una aplicación web.
Crear un chat para mejorar la comunicación de los miembro del grupo
Añadir una opción durante la creación y edición de los gastos para incluir fotos de los recibos.
36
