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