---
# System prepended metadata

title: Ingreso de nuevos desarrolladores

---

Ingreso de nuevos desarrolladores
===
## ¿Cómo instalar Equip en el computador de los desarrolladores?


### Windows 10
Para poder ejecutar el sistema se deben instalar las siguientes herramientas:
- [Git](https://git-scm.com/download/win) 
- [Node.js versión 12](https://nodejs.org/es/download/)
- [Ubuntu](https://www.microsoft.com/es-ar/p/ubuntu/9nblggh4msv6?activetab=pivot:overviewtab)
- [Docker Desktop](https://docs.docker.com/docker-for-windows/install-windows-home/)

NOTA: Las instrucciones de instalacion de las mismas son proporcionadas en sus sitios web oficiales. 

1. Crear la siguiente estructura de directorios:
```
 equip
    /api
    /web
```
2. Descargar repositorios en carpetas respectivas
  - git clone https://github.com/alliende/equip_api.git .
  - git clone https://github.com/alliende/equip_web.git .

3. Tener corriendo Docker Desktop:

![](https://i.imgur.com/wv4hlnf.png)

4. Abrir una terminal, posicionarse en la carpeta raiz de la copia local repositorio de la api y posicionarse en la rama develop: 
```
git checkout develop
```

Descargar el archivo de docker actualizado: 
```
  docker pull alliende/db_dev:1
```
![](https://i.imgur.com/7miiYoX.png)

5. Agregar un tag al archivo:

```
  docker tag alliende/db_dev:1 db_dev:1
```

Todos los comandos destinados a docker deben ejecutarse en terminales de Windows ya que es en dicho sistema donde corre Docker Desktop.

![](https://i.imgur.com/ny0ThG6.png)

7. En la carpeta raiz de la copia local repositorio de la api crear la siguiente estructura de directorios: 
```
 equip
   /api
     /db_data
       /loadDB
       /saveDB
```

8. Descargar el archivo con la base de datos de prueba desde el siguiente [Link](https://ejemplo.equip.cloud/k43jn543jk5nINI63vBHJYhvjv67253hvjV62TVV27263Ljl723/rethinkdb_dump.tar.gz) y guardarlo en el directorio loadDB creado en el paso anterior:

9. Crear el y arrancar el container mediante el comando: 
```
docker run -p 28015:28015 -p 33003:8080 -d --name DB -v "D:\Equip\equip_api\db_data\loadDB":/loadDB -v "D:\Equip\equip_api\db_data\saveDB":/saveDB db_dev:1
```
![](https://i.imgur.com/RWPj6mS.png)


``NOTA: Las rutas de acceso que aparecen entre comillas dobles corresponden a las rutas de acceso de los directorios creados en el paso 7.``

10. Cargar la base de datos guardada en el paso 8: 
```
npm run loadDB
```
![](https://i.imgur.com/dRmslXA.png)

11. Actualizar la base de datos: 
```
npm run updateDB -- --dbName=equip
```

12. Abrir una terminal de Ubuntu, e instalar Node.js version 12:

```
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
```

13. Posicionarse en el directorio raiz de la copia local del repositorio de la api e instalar las dependencias: 
```
npm ci
```
``
NOTA: Es necesario correr este y el siguiente comando en Ubuntu debido a que los scripts del proyecto fueron definidos de tal forma que solo funcionan en sistemas Linux. 
``

13. Correr la api: 
```
npm start
```
![](https://i.imgur.com/KqIFiNk.png)

Llegado a este punto se tiene el backend configurado. Si el contenedor se detiene por algun motivo, como puede ser un reinicio de la PC, es necesario ejecutar ``(en una terminal de windows posicionada en la raiz de la api)`` el comando: 
```
npm run startContainerDB
```
Equivalente al comando: 
```
docker container start DB
```

14. Para correr el frontend de la web es necesario abrir otra terminal de Ubuntu, posicionarse en la carpeta raiz de la copia local del repositorio de la web, hacer checkout a develop e instalar las dependencias: 
```
npm ci
```

15. Por ultimo se corre la web: 

```
npm start
```



### Linux y Mac
Antes de seguir el procedimiento es necesario:
- [Instalar Node versión 12](https://nodejs.org/en/download/)
  - Instalar npm v8: `npm i -g npm@8`
- [Instalar Docker](https://docs.docker.com/install/)

1. Crear la siguiente estructura de directorios:
```
  equip
    /api
    /web
```
2.  Descargar repositorios en carpetas respectivas
    - `git clone https://github.com/alliende/equip_api.git .`
    - `git clone https://github.com/alliende/equip_web.git .`
3.  En api ejecutar
    - `npm ci`
    - `docker pull alliende/db_dev:1`
    - `docker tag alliende/db_dev:1 db_dev:1`
    - `npm run createContainerDB`
    - Cargar una copia de la BD de Demo
      - Descargarla en `db_data/loadDB` y ejecutar npm run LoadDB
      - `curl -o db_data/loadDB/rethinkdb_dump.tar.gz "https://demo.equipco.app/k43jn543jk5nINI63vBHJYhvjv67253hvjV62TVV27263Ljl723/rethinkdb_dump.tar.gz"`
    - Ejecutar `npm start`
6.  En web ejecutar
    - `npm ci`
    - `npm start`

## Introducción al App de Equip
1. bootstrap/browser, dibuja <app> en el html
2. App.js Conectamos el store con los componentes y se lo asignamos las rutas y sus componentes.
3. Cada una de las rutas contiene un componente contenedor que le entrega a los componentes sus props y acciones a los componentes.
4. Las acciones: Se emiten desde los componentes
    - Ver la estructura de redux
      - confirmationActionTypes
      - derivatedActionTypes
      - middlewares
      - modules: reducers,
      - actionNAmes
      - reducers: combine reducers & confirm y derived
      - store.js: Ejecución de redux(thunkHanler y actionSender)
    - Lifecycle de las acciones: 
      1. Se ejecuta acciñon desde un componente
      2. middleware thunkHandler: que da la oportunidad de generar funciones async ó ejecutar otras acciones
      3. Ejecuta el reducer.
      4. middleware actionSender: Nuestro método para enviar las acciones al servidor. 
5. Sockets
6. Bundling: ¿Cómo se transforma el proyecto en archivos disponibles para el browser?
7. Componentes
     1. Cómo se cargan los estilos
       className y cx 
8. Storybook: /stories

