Want to create interactive content? It’s easy in Genially!

Reuse this 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:

Geniaflix Presentation

Vintage Mosaic Presentation

Shadow Presentation

Newspaper Presentation

Zen Presentation

Audio tutorial

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