Willow Documentation Versión 1.1.0 - Willow Documentation - Read the Docs

Página creada Diego Fontana
 
SEGUIR LEYENDO
Willow Documentation
               Versión 1.1.0

     Willow Documentation

          22 de noviembre de 2017
Índice general

1. Acerca de la Presente Documentación                3

2. Requerimientos                                     9

3. Análisis y Diseño                                 15

4. Desarrollo                                        17

5. Pruebas del Software                              21

6. Integración del Software                          23

7. Mantenimiento del Software                        25

                                                      I
II
Willow Documentation, Versión 1.1.0

Nota: ¿Primera vez en la documentación de Willow? Te sugerimos encarecidamente revisar primero la sección
Acerca De

¿Qué es Willow?
Willow es un sistema web para administrar stands y centros comerciales. Se habla de Sistemas Willow porqué Willow
esta implementando para diversas empresas, las cuales suelen variar en requerimientos y necesidades.
Contenido

Índice general                                                                                                 1
Willow Documentation, Versión 1.1.0

2                                     Índice general
CAPÍTULO          1

                                                      Acerca de la Presente Documentación

Esta sección explicará a detalle el ¿Cómo?, ¿Qué? y ¿Por qué? de la presente documentación.
Contenido

1.1 Definiciones

stand TODO
planograma TODO
contrato TODO
local TODO
empresa TODO
centro comercial TODO
ingreso regular TODO
ingreso adicional TODO
gasto TODO
categoría de gasto TODO
fondo TODO

1.2 Estructura de la Documentación

La presente está divida en 6 secciones (sin contar esta misma) debido a que estos 6 últimos comúnmente son conside-
rados como ciclos del desarrollo del software.

                                                                                                                 3
Willow Documentation, Versión 1.1.0

Nota: Es importante recalcar que el repositorio(.git) que contiene la presente documentación sigue siendo un contro-
lador de versiones, y por lo tanto se deben respetar las reglas esenciales de estos, como:
       No guardar imágenes que no sean completamente necesarias.
       Los cambios se podrán hacer solo por personas autentificadas.
       etc.

1.3 Construcción de la Documentación

Nota: No confundir con Construcción del Software(Desarrollo)

       Trello para almacenar las tareas de cada Sprint y mostrar el avance y requisitos de todos los sistemas, más
       información en Uso de Trello
       Gitlab es un hosting para control de versiones Git, llama la atención debido a su refinado diseño y su comuni-
       cación directa con sus usuarios. Además de poseer muchas herramientas que otros servicios no cuentan. Más
       información en Uso de Gitlab
       Sphinx es un motor open source escrito en Python para enlazar documentos y generar documentación, para
       escribir en Sphinx se deberá usar Markdown o reEstructuredText Más información en Uso de Sphinx
       Read The Docs es un hosting para documentación en formato Sphinx, es completamente gratuito y open source.
       Más información en Uso de Read The Docs
       Google Drive para almacenar los binarios que son muy pesados o archivos que no tiene sentido guardarlos en
       el control de versiones, como por ejemplo archivos fuente de Adobe Illustrator, Fotos de Contratos, etc. Más
       información en Uso de Google Drive
       Draw.io es un servicio cloud open source gratuito que nos permite hacer diagramas y tablas, este software será
       nuestra herramienta principal para crear los documentos de análisis y diseño, etc.
       VSCode: opcional, pero altamente recomendable para editar el código fuente de la documentación. El reposi-
       torio viene con una configuración para este editor de código que ayudará a los colaboradores. Más información
       en Uso de Visual Studio Code
Contenido

1.3.1 Uso de Trello

Uso de Trello.
Link

Guía de Etiquetas

1. Estado del Item

       Item Defered: Indica que el item perteneció inicialmente a un sprint anterior
       Doing: Indica que el elemento se esta realizando

4                                                         Capítulo 1. Acerca de la Presente Documentación
Willow Documentation, Versión 1.1.0

       Done: Indica que el elemento ha sido implementado

2. Respectos a su implicancia

       Needs Code Review: Indica que el código implementado necesita ser supervisado
       Code Reviewed: El código implementado ha sido revisado y aprobado al menos por otro desarrollador
       Needs Testing: Indica que la funcionalidad necesita pruebas automatizadas
       Needs UX Discussion: Indica que la usabilidad de la funcionalidad necesita ser discutida

3. Respecto al impacto del Cambio

       Breaking Change: Indica que el cambio no será compatible con anteriores versiones
       Major Change: Indica que el cambio significa una mejora mayor para la versión actual
       Minor Change: Indica que el cambio es mínimo y no debería

4. Respecto al tipo de tarea

       Design: Indica que la tarea está relacionada con diseño, ilustración o prototipado
       Engineering: Indica que la tarea requiere investigación y de ingeniar una solución para un problema que no se
       puede resolver actualmente
       Docs: Indica que la tarea es acerca de documentación

1.3.2 Uso de Gitlab

Uso de Gitlab
Link

1.3.3 Uso de Sphinx

Uso de Sphinx

1.3.4 Uso de Read The Docs

Uso de Read The Docs
Link

1.3.5 Uso de Visual Studio Code

Uso de Visual Studio Code

1.3. Construcción de la Documentación                                                                             5
Willow Documentation, Versión 1.1.0

1.4 ¿Por qué no usamos Microsoft Word?

Creemos que el stack de tecnologías escogido es sencillo y poderoso, desde nuestra perspectiva de desarrolladores es
suficiente para la documentación que se necesita en este proyecto. Nos da muchas comodidades y flexibilidad, que
como desarrolladores, nos gusta.
Además de seguir las buenas prácticas y sugerencias establecidas por la comunidad Open Source.

1.4.1 Ventajas respecto a Microsoft Word

      No se tiene que lidiar con problemas de versiones de Word(2009, 2010, 2013, 2016, etc)
      No se necesita contar con Word para editar el documento, esto facilita la lectura y edición para usuarios de Mac
      OSX y de Linux
      Es amigable para el desarrollador, esto quiere decir que resulta más conveniente y más rápido escribir en Mark-
      down o en reEstructuredText
      Se integra perfectamente con un controlador de versiones como Git, a diferencia de Word, Markdown permite
      sacarle todo el provecho a la herramienta de diferenciación(diff ) de Git
      Este stack det tecnologías es open source y completamente gratuito, no nos debemos preocupar de licencias
      Read The Docs nos permite convertir la documentación a HTML, PDF o incluso como e-Book de manera
      instantánea
      Los artefactos(textos) son increíblemente ligeros, reducen el espacio ocupado por la documentación
      Read The Docs genera una vista online que está bien diseñada y es responsiva para computadoras de escritorio
      y móviles
      Read The Docs nos permite intercambiar de versiones de manera muy simple
      Read The Docs nos ofrece una webhook para poder hacer desarrollo continuo, es decir, hacemos cambios al
      repositorio de la documentación y se verán reflejados automáticamente
      Sphinx nos da un cuadro de búsqueda
      Sphinx soporte traducciones para la documentación

1.4.2 Desventajas respecto a Microsoft Word

      El código fuente de los artefactos no es tan fácil de entender para los que no conocen de programación de
      etiquetas
      No hay mucho control de colores, sombreados y herramientas de edición avanzadas
      No se pueden incrustar imágenes por documento, solo se pueden enlazar desde otras locaciones
      Hacer Tablas puede llegar a ser un poco tedioso
      No tiene soporte para detección de errores de ortografía, aunque varios editores de código y texto pueden solu-
      cionar el tema
      Si no se conoce Markdown y reEstructuredText, se requiere de un esfuerzo(mínimo) para poder escribir la
      documentación, a diferencia de Word, donde todo el mundo sabe usarlo

6                                                         Capítulo 1. Acerca de la Presente Documentación
Willow Documentation, Versión 1.1.0

1.5 Tabla de Origen Para Los Artefactos

En la presente documentación se encontrará una tabla al inicio de cada artefacto, la cual será llamada “tabla de
origen”, se usará como alternativa a las nomenclaturas y darán información adicional.
 EMPRESA                    LOCALES
 Nombre de la empresa       Nombre del o de los locales
      Empresa: El nombre de le empresa a la cual pertenece el artefacto.
      Locales: El nombre del local o de los locales al cual pertenece el artefacto.

1.5.1 Ejemplos

Esta notación denota que el artefacto aplica para todas las empresas y (por consiguiente) para todos los locales
 EMPRESA         LOCALES
 TODOS           TODOS
Esta notación denota que el artefacto aplica para el local GAMARRA de la empresa CARRUSEL
 EMPRESA         LOCALES
 CARRUSEL        GAMARRA
Esta notación denota que el artefacto aplica para todos los locales de la empresa NIBA
 EMPRESA         LOCALES
 NIBA            TODOS
Esta notación denota que el artefacto aplica para el local MEGAPLAZA de la empresa NIBA y así mismo para los
locales GAMARRA y SAN JUAN de la empresa CARRUSEL
 EMPRESA                                                     LOCALES
 NIBA                                                        MEGAPLAZA
 CARRUSEL
                                                                   GAMARRA
                                                                   SAN JUAN

1.6 Colaboradores

      Diego Jara Palomino
      Francis Marquez Paico
      Raphael Bravo Dedo

1.7 Objetivo del Presente

¿Cual es la motivación detrás de la presente documentación, que se quiere lograr o transmitir hacia los lectores?

1.5. Tabla de Origen Para Los Artefactos                                                                            7
Willow Documentation, Versión 1.1.0

1.8 Estado Actual de la Documentación

Nota: Como parte de la primera entrega del curso Evolución de Software, esta presentación esta enfocada en mos-
trar innovación en como se documenta un software, ya que representa un esfuerzo por emplear herramientas y
metodologías que son ampliamente conocidas en las comunidades Open Source, pero en las Universidades ni se
les hace mención.
Esta presentación contiene diagramas de análisis y diseño, pero no su totalidad

    Sección                       Estructura    Contenido      Gráficos/Diagramas
    Requerimientos                100 %         100 %          No es necesario
    Análisis y Diseño             100 %         60 %           60 %
    Construcción del Software     100 %         20 %           0%
    Pruebas del Software          100 %         0%             0%
    Integración del Software      100 %         60 %           0%
    Mantenimiento del Software    100 %         30 %           30 %

8                                                        Capítulo 1. Acerca de la Presente Documentación
CAPÍTULO          2

                                                                                        Requerimientos

Requerimientos del sistema.

Nota: Se emplearán términos y conceptos que son propios del ecosistema de este ámbito comercial, por favor asegú-
rese de revisar primero La lista de definiciones

2.1 Perspectiva del Producto

Perspectiva del Producto

2.2 Funciones del Producto

Funciones del Producto

2.3 Características del Usuario

Características del Usuario

2.4 Restricciones

Restricciones

                                                                                                               9
Willow Documentation, Versión 1.1.0

2.5 Suposiciones y Dependencias

Suposiciones y Dependencias

2.6 Estructura de los Requerimientos

Estructura de los Requerimientos

2.7 Lista de Requerimientos

2.7.1 Requerimientos Funcionales

Requerimientos Funcionales
Contenido

Requerimientos Web del Administrador

Requerimientos Web del Administrador

RF-1: ENTRAR AL SISTEMA MEDIANTE UN REGISTRO

 EMPRESA        LOCALES
 TODOS          TODOS
      Descripción: Para poder entrar a una cuenta administrativa, el sistema protegerá el acceso mediante un usuario
      y una contraseña.
      Prioridad: 5

RF-2: LLEVAR CONTROL DE LOS CONTRATOS

 EMPRESA        LOCALES
 TODOS          TODOS
      Descripción: El sistema tendrá la información de los contratos, mostrándolos visualmente en un planograma.
      Prioridad: 5

RF-3: CONTROLAR EL LA INFORMACIÓN ESPACIAL DE LOS STANDS

 EMPRESA        LOCALES
 TODOS          TODOS
      Descripción: El sistema debe permitir controlar la ubicación y tamaño de los stands, de esta manera se podrá
      visualizar correctamente su locación en el planograma.
      Prioridad: 5

10                                                                                 Capítulo 2. Requerimientos
Willow Documentation, Versión 1.1.0

RF-4: REGISTRAR NUEVO PAGO DEL CONTRATO

 EMPRESA       LOCALES
 TODOS         TODOS
     Descripción: El sistema deberá permitir la adición de pagos de mensualidad por contrato.
     Prioridad: 5

RF-5: MODIFICAR LOS CONTRATOS

 EMPRESA       LOCALES
 TODOS         TODOS
     Descripción: El sistema deberá permitir la modificación de contratos.
     Prioridad: 4

RF-6: ADMINISTRAR LOS FONDOS

 EMPRESA       LOCALES
 TODOS         TODOS
     Descripción: El sistema deberá permitir la visualización, adición, modificación y eliminación de los fondos
     monetarios donde fluye el capital de la empresa.
     Prioridad: 4

RF-7: ADMINISTRAR LOS INGRESOS

 EMPRESA       LOCALES
 TODOS         TODOS
     Descripción: El sistema deberá permitir la visualización, adición, modificación y eliminación de los ingresos
     que registra la empresa.
     Prioridad: 4

RF-8: ADMINISTRAR LOS GASTOS

 EMPRESA       LOCALES
 TODOS         TODOS
     Descripción: El sistema deberá permitir la visualización, adición, modificación y eliminación de los gastos que
     registra la empresa.
     Prioridad: 4

RF-9: GENERAR REPORTE DE MENSUALIDADES

 EMPRESA       LOCALES
 TODOS         TODOS

2.7. Lista de Requerimientos                                                                                     11
Willow Documentation, Versión 1.1.0

      Descripción: Con el reporte se podrá ver todas las mensualidades del contrato desde su inicio, viendo los
      montos, las fechas y los datos del pago.
      Prioridad: 3

RF-10: REGISTRAR RENOVACIÓN DE CONTRATO

 EMPRESA         LOCALES
 TODOS           TODOS
      Descripción: El sistema deberá permitir la adición de renovaciones de contrato, los cuales significan que a partir
      de la fecha ingresada, se cambiará la mensualidad al monto indicado también.
      Prioridad: 3

RF-11: VISUALIZAR LISTA DE DEUDORES

 EMPRESA         LOCALES
 TODOS           TODOS
      Descripción: El sistema deberá permitir ver una lista de deudores, mostrando sus datos y los montos que deben.
      Prioridad: 3

Requerimientos Mobile del Administrador

Requerimientos Mobile del Administrador

Requerimientos Web del Inquilino

Requerimientos Web del Inquilino

2.7.2 Requerimientos No Funcionales

Requerimientos No Funcionales
Contenido

Rendimiento

Rendimiento

Atributos del Sistema

Atributos del Sistema

2.7.3 Interfaces

Interfaces
Contenido

12                                                                                    Capítulo 2. Requerimientos
Willow Documentation, Versión 1.1.0

Interfaces de Usuario

Interfaces de Usuario

Interfaces de Software

Interfaces de Software

Interfaces de Hardware

Interfaces de Hardware

Comunicación de Interfaces

Comunicación de Interfaces

2.7. Lista de Requerimientos                                   13
Willow Documentation, Versión 1.1.0

14                                    Capítulo 2. Requerimientos
CAPÍTULO          3

                                                                                      Análisis y Diseño

Documentos relacionados con el análisis y diseño del software.

Nota: Se emplearán términos y conceptos que son propios del ecosistema de este ámbito comercial, por favor asegú-
rese de revisar primero La lista de definiciones

                                                                                                              15
Willow Documentation, Versión 1.1.0

16                                    Capítulo 3. Análisis y Diseño
CAPÍTULO           4

                                                                                                   Desarrollo

Documentos relacionados con el desarrollo.
Contenido

4.1 Guía para empezar a desarrollar

Nota: Este sistema es capaz de ejecutarse en cualquier sistema operativo: Windows, MacOS o Linux

4.1.1 Software Requerido

      Git (> 2)
      Node.js (> 8)
      Yarn (> 1.3)
      Firebase tools (> 3)
Además requerirás del acceso al repositorio del código fuente y una cuenta de Firebase

4.1.2 Proyecto de Firebase

1. Crear o usar un Proyecto
El acceso a los proyectos reales está limitado, en cambio se recomienda que cada desarrollador se cree o comparta un
proyecto.
Para ello se deberá revisar la documentación de Firebase
2. Activar la autenticación

                                                                                                                 17
Willow Documentation, Versión 1.1.0

Willow(hasta la fecha) funciona con autenticación en base a correo y contraseña, este módulo deberá ser activado y
posteriormente se deberán crear algunos usuarios de prueba

4.1.3 Construir el entorno

1. Clonar el proyecto
Link del repositorio: https://gitlab.com/saintplay/willow
2. Instalar el repositorio
Ejecutar el comando yarn install

4.1.4 Variables de entorno

Nota: Si se desconoce del tema, por favor revisar Variables de entorno

Se deberá crear un archivo .env en la raíz del proyecto, luego siguiendo la estructura de .env.example (raíz del proyecto)
se deberán sustituir las variables por las adecuadas

4.1.5 Procesos

Para iniciar el sistema en la red local
yarn dev
Para formatear el código
yarn lint
Para testear el código
yarn test
Para construir el sistema
yarn build
Para desplegar el sistema
yarn deploy
      Más información en el archivo package.json*

4.2 Cronograma de Iteraciones

En está sección se detallará las iteraciones o sprints para cada versión del sistema
Contenido

18                                                                                            Capítulo 4. Desarrollo
Willow Documentation, Versión 1.1.0

4.2.1 Web 1.x (Pluton)

Nota: Esta versión actualmente está en desarrollo, por lo que el cronograma se verá a través del tablero de proyecto
en Trello.
Debido a esto, cada sprint backlog será documentado después del periodo activo de desarrollo

La primera versión estable de Willow deberá implementar un producto mínimo viable para la administración de stands,
contará con funcionalidades escenciales como el flujo de caja, visualización de planograma, administración de traba-
jadores, clientes, etc.
Contenido

Web 1.x Sprints

Nota: Esta versión actualmente está en desarrollo, por lo que el cronograma se verá a través del tablero de proyecto
en Trello.
Debido a esto, cada sprint backlog será documentado después del periodo activo de desarrollo

4.3 Sistema de Ramas

En está sección se detallará el uso de ramas(Git) para un adecuado control de versiones.

4.3.1 Master

La rama master

4.3.2 Ramas de Cambios Complejos

Ejemplos:
      feature-print-outlays
      fix-excel-table-generation

4.3.3 Ramas de Versiones Mayores

Ejemplos:
      feature-print-outlays
      fix-excel-table-generation

4.3. Sistema de Ramas                                                                                            19
Willow Documentation, Versión 1.1.0

4.3.4 Ramas de Cliente Final

     niba
     carrusel

Nota: ¿Tienes ganas de indagar más en el tema? Te recomendamos leer este artículo sobre una adecuada estruc-
tura para organizar ramas de Git

20                                                                                 Capítulo 4. Desarrollo
CAPÍTULO   5

                                                      Pruebas del Software

Documentos relacionados a las pruebas del software.

                                                                        21
Willow Documentation, Versión 1.1.0

22                                    Capítulo 5. Pruebas del Software
CAPÍTULO   6

                                                            Integración del Software

Documentos relacionados con la construcción del software.
     GitLab
     Firebase
     Algolia

                                                                                  23
Willow Documentation, Versión 1.1.0

24                                    Capítulo 6. Integración del Software
CAPÍTULO          7

                                                                       Mantenimiento del Software

Documentos relacionados con el mantenimiento del software.
Contenido

7.1 Plan de Mantenimiento

El plan de mantenimiento define los intervalos de tiempo en los que se harán desarrollo, mantenimiento LTS y mante-
nimiento.

                                                                                                                25
Willow Documentation, Versión 1.1.0

7.1.1 Calendario Detallado

                        Tabla 7.1: Calendario de Mantenimiento
 Versión       Alias         LTS Inicio     Mantenimiento Inicio      Mantenimiento
 Web 1.x       Pluton        17-05-2018     03-10-2019                18-02-2021
 Web 2.x       Express       01-11-2018     19-03-2020                05-08-2021
 Web 3.x       Conqueror     18-04-2019     18-02-2021                20-01-2022
 Mobile 1.x    Maya          03-10-2019     18-02-2021                20-01-2022
 Web 4.x       No Definido
 Mobile 2.x    No Definido

7.1.2 Fases de Mantenimiento

Nota: Beta, significa que el sistema todavía no se encuentra completamente estable, es un periodo indispensable antes
de pasar a LTS.

LTS

LTS o Mantenimiento LTS es el periodo de tiempo en el que se da prioridad a un sistema cuando se presentan errores
o vulnerabilidades.
      Durante este periodo el mantenimiento debería ser gratuito.
      Durante LTS no se agregan funcionalidades ni cambios mayores.

Mantenimiento

El Mantenimiento es el periodo de tiempo en el que se soporte básico a un sistema cuando se presentan errores o
vulnerabilidades.
      Durante este periodo el mantenimiento debería ser pagado.
Ver también:
Composición de Ramas en Git Explicación detallada de la función de cada rama usada en el control de versiones.
Roadmap Explicación detallada de las funcionalidades del sistema agrupadas por versiones.
Versionamiento Explicación de las reglas que se toman en cuenta para versionar el sistema.

26                                                                   Capítulo 7. Mantenimiento del Software
Índice

C
categoría de gasto, 3
centro comercial, 3
contrato, 3

E
empresa, 3

F
fondo, 3

G
gasto, 3

I
ingreso adicional, 3
ingreso regular, 3

L
local, 3

P
planograma, 3

S
stand, 3

                            27
También puede leer