├── app
├── public
│ ├── robots.txt
│ └── index.html
├── .firebaserc
├── src
│ ├── assets
│ │ ├── scss
│ │ │ ├── bootstrap
│ │ │ │ ├── utilities
│ │ │ │ │ ├── _clearfix.scss
│ │ │ │ │ ├── _screenreaders.scss
│ │ │ │ │ ├── _visibility.scss
│ │ │ │ │ ├── _shadows.scss
│ │ │ │ │ ├── _sizing.scss
│ │ │ │ │ ├── _float.scss
│ │ │ │ │ ├── _align.scss
│ │ │ │ │ ├── _background.scss
│ │ │ │ │ ├── _position.scss
│ │ │ │ │ ├── _embed.scss
│ │ │ │ │ ├── _display.scss
│ │ │ │ │ ├── _spacing.scss
│ │ │ │ │ ├── _borders.scss
│ │ │ │ │ ├── _text.scss
│ │ │ │ │ └── _flex.scss
│ │ │ │ ├── _media.scss
│ │ │ │ ├── mixins
│ │ │ │ │ ├── _box-shadow.scss
│ │ │ │ │ ├── _clearfix.scss
│ │ │ │ │ ├── _size.scss
│ │ │ │ │ ├── _visibility.scss
│ │ │ │ │ ├── _lists.scss
│ │ │ │ │ ├── _text-truncate.scss
│ │ │ │ │ ├── _resize.scss
│ │ │ │ │ ├── _float.scss
│ │ │ │ │ ├── _badge.scss
│ │ │ │ │ ├── _alert.scss
│ │ │ │ │ ├── _nav-divider.scss
│ │ │ │ │ ├── _text-emphasis.scss
│ │ │ │ │ ├── _transition.scss
│ │ │ │ │ ├── _text-hide.scss
│ │ │ │ │ ├── _list-group.scss
│ │ │ │ │ ├── _pagination.scss
│ │ │ │ │ ├── _background-variant.scss
│ │ │ │ │ ├── _reset-text.scss
│ │ │ │ │ ├── _table-row.scss
│ │ │ │ │ ├── _border-radius.scss
│ │ │ │ │ ├── _screen-reader.scss
│ │ │ │ │ ├── _hover.scss
│ │ │ │ │ ├── _image.scss
│ │ │ │ │ ├── _caret.scss
│ │ │ │ │ ├── _grid.scss
│ │ │ │ │ ├── _grid-framework.scss
│ │ │ │ │ ├── _gradients.scss
│ │ │ │ │ ├── _buttons.scss
│ │ │ │ │ ├── _forms.scss
│ │ │ │ │ └── _breakpoints.scss
│ │ │ │ ├── _transitions.scss
│ │ │ │ ├── _jumbotron.scss
│ │ │ │ ├── bootstrap-reboot.scss
│ │ │ │ ├── _utilities.scss
│ │ │ │ ├── _root.scss
│ │ │ │ ├── bootstrap-grid.scss
│ │ │ │ ├── _progress.scss
│ │ │ │ ├── _close.scss
│ │ │ │ ├── bootstrap.scss
│ │ │ │ ├── _mixins.scss
│ │ │ │ ├── _code.scss
│ │ │ │ ├── _badge.scss
│ │ │ │ ├── _grid.scss
│ │ │ │ ├── _images.scss
│ │ │ │ ├── _alert.scss
│ │ │ │ ├── _breadcrumb.scss
│ │ │ │ ├── _pagination.scss
│ │ │ │ ├── _nav.scss
│ │ │ │ ├── _type.scss
│ │ │ │ ├── _functions.scss
│ │ │ │ ├── _tooltip.scss
│ │ │ │ ├── _buttons.scss
│ │ │ │ ├── _list-group.scss
│ │ │ │ ├── _print.scss
│ │ │ │ ├── _tables.scss
│ │ │ │ ├── _dropdown.scss
│ │ │ │ ├── _button-group.scss
│ │ │ │ ├── _popover.scss
│ │ │ │ ├── _modal.scss
│ │ │ │ ├── _input-group.scss
│ │ │ │ ├── _carousel.scss
│ │ │ │ ├── _card.scss
│ │ │ │ ├── _navbar.scss
│ │ │ │ └── _forms.scss
│ │ │ ├── style.scss
│ │ │ ├── _site-base.scss
│ │ │ └── _site-navbar.scss
│ │ ├── logo.png
│ │ ├── images
│ │ │ └── m1.jpg
│ │ ├── fonts
│ │ │ ├── icomoon.eot
│ │ │ ├── icomoon.ttf
│ │ │ └── icomoon.woff
│ │ └── icons
│ │ │ └── facebook.svg
│ ├── views
│ │ ├── About.vue
│ │ └── Home.vue
│ ├── plugins
│ │ └── bootstrap-vue.js
│ ├── App.vue
│ ├── main.js
│ ├── registerServiceWorker.js
│ ├── router
│ │ └── index.js
│ ├── components
│ │ ├── Gafas.vue
│ │ ├── Otros.vue
│ │ ├── Guantes.vue
│ │ ├── Medicas.vue
│ │ ├── FFP3.vue
│ │ ├── Infantiles.vue
│ │ ├── Desinfectantes.vue
│ │ ├── NavBar.vue
│ │ ├── Landpage.vue
│ │ └── Footer.vue
│ └── store
│ │ └── index.js
├── babel.config.js
├── database.rules.json
├── .gitignore
├── firebase.json
├── README.md
├── package.json
└── .firebase
│ └── hosting.ZGlzdA.cache
├── bot
├── requirements.txt
├── .gitignore
├── README.md
└── myBot.py
├── readmeImages
└── esquema.png
└── README.md
/app/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/bot/requirements.txt:
--------------------------------------------------------------------------------
1 | firebase-admin==4.2.0
2 | selenium==3.141.0
3 |
--------------------------------------------------------------------------------
/app/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "marcarillas-online"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/assets/scss/bootstrap/utilities/_clearfix.scss:
--------------------------------------------------------------------------------
1 | .clearfix {
2 | @include clearfix();
3 | }
4 |
--------------------------------------------------------------------------------
/app/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | "presets": [
3 | "@vue/cli-plugin-babel/preset"
4 | ]
5 | }
--------------------------------------------------------------------------------
/bot/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | /__pycache__
3 | chromedriver.exe
4 | key.json
5 | secrets.py
6 | debug.log
7 | bot.py
--------------------------------------------------------------------------------
/app/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpl1018/Automated-Amazon-Affiliate-Store/HEAD/app/src/assets/logo.png
--------------------------------------------------------------------------------
/readmeImages/esquema.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpl1018/Automated-Amazon-Affiliate-Store/HEAD/readmeImages/esquema.png
--------------------------------------------------------------------------------
/app/src/assets/images/m1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mpl1018/Automated-Amazon-Affiliate-Store/HEAD/app/src/assets/images/m1.jpg
--------------------------------------------------------------------------------
/app/src/views/About.vue:
--------------------------------------------------------------------------------
1 |
2 | This is an about page
4 |
4 | `s.
4 | // We previously tried the "images are responsive by default" approach in Bootstrap v2,
5 | // and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
6 | // which weren't expecting the images within themselves to be involuntarily resized.
7 | // See also https://github.com/twbs/bootstrap/issues/18178
8 | .img-fluid {
9 | @include img-fluid;
10 | }
11 |
12 |
13 | // Image thumbnails
14 | .img-thumbnail {
15 | padding: $thumbnail-padding;
16 | background-color: $thumbnail-bg;
17 | border: $thumbnail-border-width solid $thumbnail-border-color;
18 | @include border-radius($thumbnail-border-radius);
19 | @include box-shadow($thumbnail-box-shadow);
20 |
21 | // Keep them at most 100% wide
22 | @include img-fluid;
23 | }
24 |
25 | //
26 | // Figures
27 | //
28 |
29 | .figure {
30 | // Ensures the caption's text aligns with the image.
31 | display: inline-block;
32 | }
33 |
34 | .figure-img {
35 | margin-bottom: ($spacer / 2);
36 | line-height: 1;
37 | }
38 |
39 | .figure-caption {
40 | font-size: $figure-caption-font-size;
41 | color: $figure-caption-color;
42 | }
43 |
--------------------------------------------------------------------------------
/app/src/assets/scss/bootstrap/mixins/_image.scss:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 |
10 | @mixin img-fluid {
11 | // Part 1: Set a maximum relative to the parent
12 | max-width: 100%;
13 | // Part 2: Override the height to auto, otherwise images will be stretched
14 | // when setting a width and height attribute on the img element.
15 | height: auto;
16 | }
17 |
18 |
19 | // Retina image
20 | //
21 | // Short retina mixin for setting background-image and -size.
22 |
23 | // stylelint-disable indentation, media-query-list-comma-newline-after
24 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
25 | background-image: url($file-1x);
26 |
27 | // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
28 | // but doesn't convert dppx=>dpi.
29 | // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
30 | // Compatibility info: https://caniuse.com/#feat=css-media-resolution
31 | @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
32 | only screen and (min-resolution: 2dppx) { // Standardized
33 | background-image: url($file-2x);
34 | background-size: $width-1x $height-1x;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/app/src/assets/scss/bootstrap/_alert.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Base styles
3 | //
4 |
5 | .alert {
6 | position: relative;
7 | padding: $alert-padding-y $alert-padding-x;
8 | margin-bottom: $alert-margin-bottom;
9 | border: $alert-border-width solid transparent;
10 | @include border-radius($alert-border-radius);
11 | }
12 |
13 | // Headings for larger alerts
14 | .alert-heading {
15 | // Specified to prevent conflicts of changing $headings-color
16 | color: inherit;
17 | }
18 |
19 | // Provide class for links that match alerts
20 | .alert-link {
21 | font-weight: $alert-link-font-weight;
22 | }
23 |
24 |
25 | // Dismissible alerts
26 | //
27 | // Expand the right padding and account for the close button's positioning.
28 |
29 | .alert-dismissible {
30 | padding-right: ($close-font-size + $alert-padding-x * 2);
31 |
32 | // Adjust close link position
33 | .close {
34 | position: absolute;
35 | top: 0;
36 | right: 0;
37 | padding: $alert-padding-y $alert-padding-x;
38 | color: inherit;
39 | }
40 | }
41 |
42 |
43 | // Alternate styles
44 | //
45 | // Generate contextual modifier classes for colorizing the alert.
46 |
47 | @each $color, $value in $theme-colors {
48 | .alert-#{$color} {
49 | @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/app/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import VueRouter from 'vue-router'
3 | import Landpage from '../components/Landpage.vue'
4 | import Gafas from '../components/Gafas.vue'
5 | import Guantes from '../components/Guantes.vue'
6 | import Desinfectantes from '../components/Desinfectantes.vue'
7 | import Otros from '../components/Otros.vue'
8 | import Infantiles from '../components/Infantiles.vue'
9 | import Medicas from '../components/Medicas.vue'
10 | import FFP3 from '../components/FFP3.vue'
11 |
12 | Vue.use(VueRouter)
13 |
14 | const routes = [
15 | {
16 | path: '/',
17 | name: 'Landpage',
18 | component: Landpage
19 | },
20 | {
21 | path: '/gafas',
22 | name: 'Gafas',
23 | component: Gafas
24 | },
25 | {
26 | path: '/guantes',
27 | name: 'Guantes',
28 | component: Guantes
29 | },
30 | {
31 | path: '/desinfectantes',
32 | name: 'Desinfectantes',
33 | component: Desinfectantes
34 | },
35 | {
36 | path: '/otros',
37 | name: 'Otros',
38 | component: Otros
39 | },
40 | {
41 | path: '/infantiles',
42 | name: 'Infantiles',
43 | component: Infantiles
44 | },
45 | {
46 | path: '/medicas',
47 | name: 'Medicas',
48 | component: Medicas
49 | },
50 | {
51 | path: '/FFP3-N95-FFP2',
52 | name: 'FFP3',
53 | component: FFP3
54 | },
55 | ]
56 |
57 | const router = new VueRouter({
58 | routes
59 | })
60 |
61 | export default router
62 |
--------------------------------------------------------------------------------
/app/src/assets/scss/bootstrap/_breadcrumb.scss:
--------------------------------------------------------------------------------
1 | .breadcrumb {
2 | display: flex;
3 | flex-wrap: wrap;
4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x;
5 | margin-bottom: $breadcrumb-margin-bottom;
6 | list-style: none;
7 | background-color: $breadcrumb-bg;
8 | @include border-radius($breadcrumb-border-radius);
9 | }
10 |
11 | .breadcrumb-item {
12 | // The separator between breadcrumbs (by default, a forward-slash: "/")
13 | + .breadcrumb-item {
14 | padding-left: $breadcrumb-item-padding;
15 |
16 | &::before {
17 | display: inline-block; // Suppress underlining of the separator in modern browsers
18 | padding-right: $breadcrumb-item-padding;
19 | color: $breadcrumb-divider-color;
20 | content: $breadcrumb-divider;
21 | }
22 | }
23 |
24 | // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
25 | // without `