├── 07-testing
├── 00-js-adivina
│ ├── src
│ │ ├── main.js
│ │ ├── modelo.js
│ │ └── shell.js
│ ├── vite.config.js
│ ├── .gitignore
│ ├── package.json
│ ├── README.md
│ └── index.html
└── 01-ts-adivina
│ ├── src
│ ├── main.ts
│ ├── vite-env.d.ts
│ ├── shell.ts
│ ├── modelo.ts
│ └── motor.ts
│ ├── .gitignore
│ ├── vite.config.ts
│ ├── package.json
│ ├── README.md
│ ├── tsconfig.json
│ └── index.html
├── 12-react
├── 01-enlazando
│ ├── README.md
│ ├── src
│ │ ├── app.jsx
│ │ ├── dummy.spec.ts
│ │ └── index.jsx
│ ├── test
│ │ └── jest.js
│ ├── vite.config.js
│ ├── .gitignore
│ ├── index.html
│ └── package.json
├── 02-Componentizando
│ ├── README.md
│ ├── test
│ │ └── jest.js
│ ├── src
│ │ ├── dummy.spec.ts
│ │ ├── index.jsx
│ │ └── app.jsx
│ ├── vite.config.js
│ ├── .gitignore
│ ├── index.html
│ └── package.json
└── 03-perdiendo-estado
│ ├── README.md
│ ├── test
│ └── jest.js
│ ├── src
│ ├── dummy.spec.ts
│ ├── index.jsx
│ ├── bienvenida.jsx
│ ├── routes.jsx
│ ├── app.jsx
│ └── style.css
│ ├── vite.config.js
│ ├── .gitignore
│ ├── index.html
│ └── package.json
├── 00-git
└── 00-boilerplate
│ ├── src
│ ├── index.js
│ └── index.html
│ ├── .gitignore
│ └── package.json
├── README.md
├── 13-banca-online
├── 02-rutas
│ ├── .env
│ ├── src
│ │ ├── pages
│ │ │ ├── login
│ │ │ │ ├── index.ts
│ │ │ │ └── login.page.tsx
│ │ │ ├── account
│ │ │ │ ├── index.ts
│ │ │ │ └── account.page.tsx
│ │ │ ├── transfer
│ │ │ │ ├── index.ts
│ │ │ │ └── transfer.page.tsx
│ │ │ ├── account-list
│ │ │ │ ├── index.ts
│ │ │ │ └── account-list.page.tsx
│ │ │ ├── movement-list
│ │ │ │ ├── index.ts
│ │ │ │ └── movement-list.page.tsx
│ │ │ └── index.ts
│ │ ├── vite-env.d.ts
│ │ ├── core
│ │ │ └── router
│ │ │ │ ├── index.ts
│ │ │ │ ├── routes.ts
│ │ │ │ └── router.component.tsx
│ │ ├── app.tsx
│ │ ├── dummy.spec.ts
│ │ └── index.tsx
│ ├── public
│ │ └── assets
│ │ │ ├── bg_login.jpg
│ │ │ └── icon-user.svg
│ ├── server
│ │ ├── config
│ │ │ └── routes.json
│ │ ├── src
│ │ │ ├── login.middleware.js
│ │ │ └── account.middleware.js
│ │ └── package.json
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── .gitignore
│ ├── index.html
│ ├── tsconfig.json
│ ├── vite.config.ts
│ └── package.json
├── 03-login
│ ├── .env
│ ├── src
│ │ ├── pages
│ │ │ ├── login
│ │ │ │ ├── index.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── login.api-model.ts
│ │ │ │ │ └── login.api.ts
│ │ │ │ ├── login.mapper.ts
│ │ │ │ ├── login.vm.ts
│ │ │ │ ├── login.mapper.spec.ts
│ │ │ │ ├── login.validation.ts
│ │ │ │ └── login.page.tsx
│ │ │ ├── account
│ │ │ │ ├── index.ts
│ │ │ │ └── account.page.tsx
│ │ │ ├── transfer
│ │ │ │ ├── index.ts
│ │ │ │ └── transfer.page.tsx
│ │ │ ├── account-list
│ │ │ │ ├── index.ts
│ │ │ │ └── account-list.page.tsx
│ │ │ ├── movement-list
│ │ │ │ ├── index.ts
│ │ │ │ └── movement-list.page.tsx
│ │ │ └── index.ts
│ │ ├── vite-env.d.ts
│ │ ├── core
│ │ │ └── router
│ │ │ │ ├── index.ts
│ │ │ │ ├── routes.ts
│ │ │ │ └── router.component.tsx
│ │ ├── app.tsx
│ │ ├── dummy.spec.ts
│ │ └── index.tsx
│ ├── public
│ │ └── assets
│ │ │ ├── bg_login.jpg
│ │ │ └── icon-user.svg
│ ├── server
│ │ ├── config
│ │ │ └── routes.json
│ │ ├── src
│ │ │ ├── login.middleware.js
│ │ │ └── account.middleware.js
│ │ └── package.json
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── .gitignore
│ ├── index.html
│ ├── tsconfig.json
│ ├── vite.config.ts
│ └── package.json
├── 04-estilado
│ ├── .env
│ ├── src
│ │ ├── pages
│ │ │ ├── login
│ │ │ │ ├── index.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── login.api-model.ts
│ │ │ │ │ └── login.api.ts
│ │ │ │ ├── login.mapper.ts
│ │ │ │ ├── login.vm.ts
│ │ │ │ ├── components
│ │ │ │ │ └── login-form.component.module.css
│ │ │ │ ├── login.mapper.spec.ts
│ │ │ │ └── login.validation.ts
│ │ │ ├── account
│ │ │ │ ├── index.ts
│ │ │ │ └── account.page.tsx
│ │ │ ├── transfer
│ │ │ │ ├── index.ts
│ │ │ │ └── transfer.page.tsx
│ │ │ ├── account-list
│ │ │ │ ├── index.ts
│ │ │ │ └── account-list.page.tsx
│ │ │ ├── movement-list
│ │ │ │ ├── index.ts
│ │ │ │ └── movement-list.page.tsx
│ │ │ └── index.ts
│ │ ├── vite-env.d.ts
│ │ ├── core
│ │ │ └── router
│ │ │ │ ├── index.ts
│ │ │ │ ├── routes.ts
│ │ │ │ └── router.component.tsx
│ │ ├── app.tsx
│ │ ├── dummy.spec.ts
│ │ └── index.tsx
│ ├── public
│ │ └── assets
│ │ │ ├── bg_login.jpg
│ │ │ └── icon-user.svg
│ ├── server
│ │ ├── config
│ │ │ └── routes.json
│ │ ├── src
│ │ │ ├── login.middleware.js
│ │ │ └── account.middleware.js
│ │ └── package.json
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── .gitignore
│ ├── index.html
│ ├── tsconfig.json
│ ├── vite.config.ts
│ └── package.json
├── 01-boilerplate
│ ├── .env
│ ├── src
│ │ ├── vite-env.d.ts
│ │ ├── app.tsx
│ │ ├── dummy.spec.ts
│ │ └── index.tsx
│ ├── server
│ │ ├── config
│ │ │ └── routes.json
│ │ ├── src
│ │ │ ├── login.middleware.js
│ │ │ └── account.middleware.js
│ │ └── package.json
│ ├── public
│ │ └── assets
│ │ │ ├── bg_login.jpg
│ │ │ └── icon-user.svg
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── .gitignore
│ ├── index.html
│ ├── tsconfig.json
│ ├── vite.config.ts
│ └── package.json
├── 06-mis-cuentas
│ ├── .env
│ ├── src
│ │ ├── layouts
│ │ │ ├── index.ts
│ │ │ └── app
│ │ │ │ ├── app-layout.module.css
│ │ │ │ ├── components
│ │ │ │ ├── index.ts
│ │ │ │ ├── footer.component.module.css
│ │ │ │ ├── footer.component.tsx
│ │ │ │ ├── navbar.component.module.css
│ │ │ │ ├── header.component.tsx
│ │ │ │ └── header.component.module.css
│ │ │ │ └── app-layout.tsx
│ │ ├── pages
│ │ │ ├── account
│ │ │ │ ├── index.ts
│ │ │ │ └── account.page.tsx
│ │ │ ├── login
│ │ │ │ ├── index.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── login.api-model.ts
│ │ │ │ │ └── login.api.ts
│ │ │ │ ├── login.mapper.ts
│ │ │ │ ├── login.vm.ts
│ │ │ │ ├── components
│ │ │ │ │ └── login-form.component.module.css
│ │ │ │ ├── login.mapper.spec.ts
│ │ │ │ └── login.validation.ts
│ │ │ ├── transfer
│ │ │ │ ├── index.ts
│ │ │ │ └── transfer.page.tsx
│ │ │ ├── account-list
│ │ │ │ ├── index.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── account-list.api-model.ts
│ │ │ │ │ └── account-list.api.ts
│ │ │ │ ├── account-list.vm.ts
│ │ │ │ ├── account-list.page.module.css
│ │ │ │ ├── account-list.mapper.ts
│ │ │ │ └── components
│ │ │ │ │ ├── account-list-table.component.module.css
│ │ │ │ │ └── account-list-item.component.module.css
│ │ │ ├── movement-list
│ │ │ │ ├── index.ts
│ │ │ │ └── movement-list.page.tsx
│ │ │ └── index.ts
│ │ ├── vite-env.d.ts
│ │ ├── core
│ │ │ ├── profile
│ │ │ │ ├── index.ts
│ │ │ │ └── profile.context.tsx
│ │ │ └── router
│ │ │ │ ├── index.ts
│ │ │ │ ├── routes.ts
│ │ │ │ └── router.component.tsx
│ │ ├── dummy.spec.ts
│ │ ├── app.tsx
│ │ └── index.tsx
│ ├── server
│ │ ├── config
│ │ │ └── routes.json
│ │ ├── src
│ │ │ ├── login.middleware.js
│ │ │ └── account.middleware.js
│ │ └── package.json
│ ├── public
│ │ └── assets
│ │ │ ├── bg_login.jpg
│ │ │ └── icon-user.svg
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── .gitignore
│ ├── index.html
│ ├── tsconfig.json
│ ├── vite.config.ts
│ └── package.json
├── 07-transferencia
│ ├── .env
│ ├── src
│ │ ├── layouts
│ │ │ ├── index.ts
│ │ │ └── app
│ │ │ │ ├── app-layout.module.css
│ │ │ │ ├── components
│ │ │ │ ├── index.ts
│ │ │ │ ├── footer.component.module.css
│ │ │ │ ├── footer.component.tsx
│ │ │ │ ├── navbar.component.module.css
│ │ │ │ ├── header.component.tsx
│ │ │ │ └── header.component.module.css
│ │ │ │ └── app-layout.tsx
│ │ ├── pages
│ │ │ ├── login
│ │ │ │ ├── index.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── login.api-model.ts
│ │ │ │ │ └── login.api.ts
│ │ │ │ ├── login.mapper.ts
│ │ │ │ ├── login.vm.ts
│ │ │ │ ├── components
│ │ │ │ │ └── login-form.component.module.css
│ │ │ │ ├── login-field.validation.ts
│ │ │ │ ├── login.mapper.spec.ts
│ │ │ │ └── login.validation.ts
│ │ │ ├── account
│ │ │ │ ├── index.ts
│ │ │ │ └── account.page.tsx
│ │ │ ├── transfer
│ │ │ │ ├── index.ts
│ │ │ │ ├── components
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── transfer-form.component.module.css
│ │ │ │ ├── validations
│ │ │ │ │ └── index.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── transfer.api-model.ts
│ │ │ │ │ └── transfer.api.ts
│ │ │ │ ├── transfer.page.module.css
│ │ │ │ └── transfer.mapper.ts
│ │ │ ├── account-list
│ │ │ │ ├── index.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── account-list.api-model.ts
│ │ │ │ │ └── account-list.api.ts
│ │ │ │ ├── account-list.vm.ts
│ │ │ │ ├── account-list.page.module.css
│ │ │ │ ├── account-list.mapper.ts
│ │ │ │ └── components
│ │ │ │ │ ├── account-list-table.component.module.css
│ │ │ │ │ └── account-list-item.component.module.css
│ │ │ ├── movement-list
│ │ │ │ ├── index.ts
│ │ │ │ └── movement-list.page.tsx
│ │ │ └── index.ts
│ │ ├── vite-env.d.ts
│ │ ├── core
│ │ │ ├── profile
│ │ │ │ ├── index.ts
│ │ │ │ └── profile.context.tsx
│ │ │ └── router
│ │ │ │ ├── index.ts
│ │ │ │ ├── routes.ts
│ │ │ │ └── router.component.tsx
│ │ ├── dummy.spec.ts
│ │ ├── common
│ │ │ └── validations
│ │ │ │ ├── index.ts
│ │ │ │ ├── validation.model.ts
│ │ │ │ ├── validation.const.ts
│ │ │ │ ├── validation.helper.ts
│ │ │ │ └── plain.validation.ts
│ │ ├── app.tsx
│ │ └── index.tsx
│ ├── server
│ │ ├── config
│ │ │ └── routes.json
│ │ ├── src
│ │ │ ├── login.middleware.js
│ │ │ └── account.middleware.js
│ │ └── package.json
│ ├── public
│ │ └── assets
│ │ │ ├── bg_login.jpg
│ │ │ └── icon-user.svg
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── .gitignore
│ ├── index.html
│ ├── tsconfig.json
│ └── vite.config.ts
└── 05-app-cuentas-layout
│ ├── .env
│ ├── src
│ ├── layouts
│ │ ├── index.ts
│ │ └── app
│ │ │ ├── app-layout.module.css
│ │ │ ├── components
│ │ │ ├── index.ts
│ │ │ ├── footer.component.module.css
│ │ │ ├── footer.component.tsx
│ │ │ ├── navbar.component.module.css
│ │ │ ├── header.component.tsx
│ │ │ └── header.component.module.css
│ │ │ └── app-layout.tsx
│ ├── pages
│ │ ├── login
│ │ │ ├── index.ts
│ │ │ ├── api
│ │ │ │ ├── index.ts
│ │ │ │ ├── login.api-model.ts
│ │ │ │ └── login.api.ts
│ │ │ ├── login.mapper.ts
│ │ │ ├── login.vm.ts
│ │ │ ├── components
│ │ │ │ └── login-form.component.module.css
│ │ │ ├── login.mapper.spec.ts
│ │ │ └── login.validation.ts
│ │ ├── account
│ │ │ ├── index.ts
│ │ │ └── account.page.tsx
│ │ ├── transfer
│ │ │ ├── index.ts
│ │ │ └── transfer.page.tsx
│ │ ├── account-list
│ │ │ ├── index.ts
│ │ │ └── account-list.page.tsx
│ │ ├── movement-list
│ │ │ ├── index.ts
│ │ │ └── movement-list.page.tsx
│ │ └── index.ts
│ ├── vite-env.d.ts
│ ├── core
│ │ ├── profile
│ │ │ ├── index.ts
│ │ │ └── profile.context.tsx
│ │ └── router
│ │ │ ├── index.ts
│ │ │ ├── routes.ts
│ │ │ └── router.component.tsx
│ ├── dummy.spec.ts
│ ├── app.tsx
│ └── index.tsx
│ ├── server
│ ├── config
│ │ └── routes.json
│ ├── src
│ │ ├── login.middleware.js
│ │ └── account.middleware.js
│ └── package.json
│ ├── public
│ └── assets
│ │ ├── bg_login.jpg
│ │ └── icon-user.svg
│ ├── config
│ └── test
│ │ └── jest.js
│ ├── .gitignore
│ ├── index.html
│ ├── tsconfig.json
│ ├── vite.config.ts
│ └── package.json
├── 10-async
├── 00-bloqueo
│ ├── src
│ │ ├── vite-env.d.ts
│ │ ├── dummy.spec.ts
│ │ └── main.ts
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── .gitignore
│ ├── vite.config.ts
│ ├── package.json
│ ├── README.md
│ ├── tsconfig.json
│ └── index.html
├── 01-depurando
│ ├── src
│ │ ├── vite-env.d.ts
│ │ ├── main.ts
│ │ └── dummy.spec.ts
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── .gitignore
│ ├── vite.config.ts
│ ├── package.json
│ ├── index.html
│ ├── README.md
│ └── tsconfig.json
├── 06-lab-asincronia
│ ├── public
│ │ ├── irma.webp
│ │ ├── bacterio.webp
│ │ ├── besuguio.webp
│ │ ├── boniguez.webp
│ │ ├── filemon.webp
│ │ ├── ofelia.webp
│ │ ├── patrona.jpg
│ │ ├── bestiajez.webp
│ │ ├── borriquez.webp
│ │ ├── mortadelo.webp
│ │ ├── rompetechos.webp
│ │ ├── superintendente.webp
│ │ └── director-general.webp
│ └── package.json
├── 03-server-peliculas
│ ├── assets
│ │ ├── movies
│ │ │ ├── thor.webp
│ │ │ ├── ant-man.webp
│ │ │ ├── eternals.webp
│ │ │ ├── iron-man.webp
│ │ │ ├── shang-chi.webp
│ │ │ ├── spider-man.jpg
│ │ │ ├── black-widow.webp
│ │ │ ├── iron-man-2.webp
│ │ │ ├── iron-man-3.webp
│ │ │ ├── black-panther.webp
│ │ │ ├── captain-marvel.webp
│ │ │ ├── doctor-strange.webp
│ │ │ ├── the-avengers.webp
│ │ │ ├── thor-ragnarok.webp
│ │ │ ├── ant-man-the-wasp.webp
│ │ │ ├── avengers-endgame.webp
│ │ │ ├── thor-dark-world.webp
│ │ │ ├── the-incredible-hulk.jpg
│ │ │ ├── avengers-infinity-war.webp
│ │ │ ├── spider-man-homecoming.webp
│ │ │ ├── avengers-age-of-ultron.webp
│ │ │ ├── guardians-of-the-galaxy.webp
│ │ │ ├── spider-man-far-from-home.webp
│ │ │ ├── spider-man-no-way-home.webp
│ │ │ ├── captain-america-civil-war.webp
│ │ │ ├── guardians-of-the-galaxy-2.webp
│ │ │ ├── captain-america-first-avenger.webp
│ │ │ └── captain-america-winter-soldier.webp
│ │ └── actors
│ │ │ ├── liv-tyler.jpg
│ │ │ ├── paul-rudd.webp
│ │ │ ├── tim-roth.jpg
│ │ │ ├── brie-larson.webp
│ │ │ ├── chris-evans.jpg
│ │ │ ├── chris-pratt.jpg
│ │ │ ├── hugo-weaving.jpg
│ │ │ ├── mark-ruffalo.jpg
│ │ │ ├── paul-bettany.jpg
│ │ │ ├── anthony-mackie.jpg
│ │ │ ├── chris-hemsworth.jpg
│ │ │ ├── edward-norton.jpg
│ │ │ ├── elizabeth-olsen.jpg
│ │ │ ├── haylay-atwell.jpg
│ │ │ ├── jeremy-renner.webp
│ │ │ ├── mickey-rourke.webp
│ │ │ ├── natalie-portman.jpg
│ │ │ ├── samuel-jackson.jpg
│ │ │ ├── sebastian-stan.webp
│ │ │ ├── tarrence-howard.jpg
│ │ │ ├── tom-hiddleston.jpg
│ │ │ ├── tommy-lee-jones.jpg
│ │ │ ├── chadwick-boseman.jpg
│ │ │ ├── gwyneth-paltrow.jpeg
│ │ │ ├── robert-downey-jr.webp
│ │ │ ├── benedict-cumberbatch.jpg
│ │ │ └── scarlett-johansson.jpg
│ └── package.json
├── 02-simular-event-loop
│ ├── vite.config.js
│ ├── config
│ │ └── test
│ │ │ └── jest.js
│ ├── src
│ │ └── dummy.spec.ts
│ ├── .gitignore
│ ├── package.json
│ ├── index.html
│ └── README.md
├── 04-banco-camas-1
│ └── package.json
└── 05-banco-camas-2
│ └── package.json
└── .gitignore
/07-testing/00-js-adivina/src/main.js:
--------------------------------------------------------------------------------
1 | import "./shell";
2 |
--------------------------------------------------------------------------------
/07-testing/01-ts-adivina/src/main.ts:
--------------------------------------------------------------------------------
1 | import "./shell";
2 |
--------------------------------------------------------------------------------
/12-react/01-enlazando/README.md:
--------------------------------------------------------------------------------
1 | # javascript-react-sandbox
--------------------------------------------------------------------------------
/12-react/02-Componentizando/README.md:
--------------------------------------------------------------------------------
1 | # javascript-react-sandbox
--------------------------------------------------------------------------------
/00-git/00-boilerplate/src/index.js:
--------------------------------------------------------------------------------
1 | console.log("¡Hola Git!");
2 |
--------------------------------------------------------------------------------
/12-react/03-perdiendo-estado/README.md:
--------------------------------------------------------------------------------
1 | # javascript-react-sandbox
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # bootcamp-js-2
2 | Material de trabajo del Bootcamp JS 2
3 |
--------------------------------------------------------------------------------
/13-banca-online/02-rutas/.env:
--------------------------------------------------------------------------------
1 | VITE_BASE_API_URL = http://localhost:3000/api
--------------------------------------------------------------------------------
/13-banca-online/03-login/.env:
--------------------------------------------------------------------------------
1 | VITE_BASE_API_URL = http://localhost:3000/api
--------------------------------------------------------------------------------
/13-banca-online/04-estilado/.env:
--------------------------------------------------------------------------------
1 | VITE_BASE_API_URL = http://localhost:3000/api
--------------------------------------------------------------------------------
/10-async/00-bloqueo/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
11 | Tu nombre de usuario es: {usuario} 12 |
13 |{userName}
15 |{userName}
15 |{userName}
15 |Descripción del hotel {hotel.id}
7 |