├── LICENSE ├── README.md ├── client ├── .babelrc ├── .gitignore ├── .snyk ├── LICENSE ├── README.md ├── index.d.ts ├── jest.config.js ├── package-lock.json ├── package.json ├── public │ ├── favicon.ico │ ├── images │ │ ├── a-partridge-in-a-pear-tree-2.gif │ │ ├── a-partridge-in-a-pear-tree-thumbnail.gif │ │ ├── a-partridge-in-a-pear-tree.gif │ │ ├── adoration-of-the-kings-2.gif │ │ ├── adoration-of-the-kings-thumbnail.gif │ │ ├── adoration-of-the-kings.gif │ │ ├── afghan-flower-2.gif │ │ ├── afghan-flower-thumbnail.gif │ │ ├── afghan-flower.gif │ │ ├── albania-flower-2.gif │ │ ├── albania-flower-thumbnail.gif │ │ ├── albania-flower.gif │ │ ├── alsace-2.gif │ │ ├── alsace-thumbnail.gif │ │ ├── alsace.gif │ │ ├── altar-piece-2.gif │ │ ├── altar-piece-thumbnail.gif │ │ ├── altar-piece.gif │ │ ├── apocalypse-tapestry-2.gif │ │ ├── apocalypse-tapestry-thumbnail.gif │ │ ├── apocalypse-tapestry.gif │ │ ├── arc-d-triomphe-2.gif │ │ ├── arc-d-triomphe-thumbnail.gif │ │ ├── arc-d-triomphe.gif │ │ ├── austria-flower-2.gif │ │ ├── austria-flower-thumbnail.gif │ │ ├── austria-flower.gif │ │ ├── baby-seal-2.gif │ │ ├── baby-seal-thumbnail.gif │ │ ├── baby-seal.gif │ │ ├── bag-big.png │ │ ├── bag.png │ │ ├── birds-2.gif │ │ ├── birds-thumbnail.gif │ │ ├── birds.gif │ │ ├── buffalo-2.gif │ │ ├── buffalo-thumbnail.gif │ │ ├── buffalo.gif │ │ ├── bulgarian-flower-2.gif │ │ ├── bulgarian-flower-thumbnail.gif │ │ ├── bulgarian-flower.gif │ │ ├── canada-goose-2.gif │ │ ├── canada-goose-thumbnail.gif │ │ ├── canada-goose.gif │ │ ├── caribou-2.gif │ │ ├── caribou-thumbnail.gif │ │ ├── caribou.gif │ │ ├── centaur-2.gif │ │ ├── centaur-thumbnail.gif │ │ ├── centaur.gif │ │ ├── chartres-cathedral-2.gif │ │ ├── chartres-cathedral-thumbnail.gif │ │ ├── chartres-cathedral.gif │ │ ├── christmas-seal-2.gif │ │ ├── christmas-seal-thumbnail.gif │ │ ├── christmas-seal.gif │ │ ├── christmas-tree-2.gif │ │ ├── christmas-tree-thumbnail.gif │ │ ├── christmas-tree.gif │ │ ├── coat-of-arms-2.gif │ │ ├── coat-of-arms-thumbnail.gif │ │ ├── coat-of-arms.gif │ │ ├── colobus-2.gif │ │ ├── colobus-thumbnail.gif │ │ ├── colobus.gif │ │ ├── colombia-flower-2.gif │ │ ├── colombia-flower-thumbnail.gif │ │ ├── colombia-flower.gif │ │ ├── congo-flower-2.gif │ │ ├── congo-flower-thumbnail.gif │ │ ├── congo-flower.gif │ │ ├── congo-rhino-2.gif │ │ ├── congo-rhino-thumbnail.gif │ │ ├── congo-rhino.gif │ │ ├── corsica-2.gif │ │ ├── corsica-thumbnail.gif │ │ ├── corsica.gif │ │ ├── costa-rica-flower-2.gif │ │ ├── costa-rica-flower-thumbnail.gif │ │ ├── costa-rica-flower.gif │ │ ├── county-of-nice-2.gif │ │ ├── county-of-nice-thumbnail.gif │ │ ├── county-of-nice.gif │ │ ├── dutch-sea-horse-2.gif │ │ ├── dutch-sea-horse-thumbnail.gif │ │ ├── dutch-sea-horse.gif │ │ ├── dutch-swans-2.gif │ │ ├── dutch-swans-thumbnail.gif │ │ ├── dutch-swans.gif │ │ ├── easter-rebellion-2.gif │ │ ├── easter-rebellion-thumbnail.gif │ │ ├── easter-rebellion.gif │ │ ├── equatorial-rhino-2.gif │ │ ├── equatorial-rhino-thumbnail.gif │ │ ├── equatorial-rhino.gif │ │ ├── espresso-2.gif │ │ ├── espresso-thumbnail.gif │ │ ├── espresso.gif │ │ ├── ethiopian-elephant-2.gif │ │ ├── ethiopian-elephant-thumbnail.gif │ │ ├── ethiopian-elephant.gif │ │ ├── ethiopian-rhino-2.gif │ │ ├── ethiopian-rhino-thumbnail.gif │ │ ├── ethiopian-rhino.gif │ │ ├── flags.png │ │ ├── gabon-flower-2.gif │ │ ├── gabon-flower-thumbnail.gif │ │ ├── gabon-flower.gif │ │ ├── galileo-2.gif │ │ ├── galileo-thumbnail.gif │ │ ├── galileo.gif │ │ ├── gallic-cock-2.gif │ │ ├── gallic-cock-thumbnail.gif │ │ ├── gallic-cock.gif │ │ ├── ghana-flower-2.gif │ │ ├── ghana-flower-thumbnail.gif │ │ ├── ghana-flower.gif │ │ ├── guiness-2.gif │ │ ├── guiness-thumbnail.gif │ │ ├── guiness.gif │ │ ├── haute-couture-2.gif │ │ ├── haute-couture-thumbnail.gif │ │ ├── haute-couture.gif │ │ ├── holly-cat-2.gif │ │ ├── holly-cat-thumbnail.gif │ │ ├── holly-cat.gif │ │ ├── home-hero.png │ │ ├── hunt-2.gif │ │ ├── hunt-thumbnail.gif │ │ ├── hunt.gif │ │ ├── ifni-fish-2.gif │ │ ├── ifni-fish-thumbnail.gif │ │ ├── ifni-fish.gif │ │ ├── iris-2.gif │ │ ├── iris-thumbnail.gif │ │ ├── iris.gif │ │ ├── irish-coat-of-arms-2.gif │ │ ├── irish-coat-of-arms-thumbnail.gif │ │ ├── irish-coat-of-arms.gif │ │ ├── israel-flower-2.gif │ │ ├── israel-flower-thumbnail.gif │ │ ├── israel-flower.gif │ │ ├── italia-2.gif │ │ ├── italia-thumbnail.gif │ │ ├── italia.gif │ │ ├── italian-airmail-2.gif │ │ ├── italian-airmail-thumbnail.gif │ │ ├── italian-airmail.gif │ │ ├── italy-jesus-2.gif │ │ ├── italy-jesus-thumbnail.gif │ │ ├── italy-jesus.gif │ │ ├── italy-maria-2.gif │ │ ├── italy-maria-thumbnail.gif │ │ ├── italy-maria.gif │ │ ├── kat-over-new-moon-2.gif │ │ ├── kat-over-new-moon-thumbnail.gif │ │ ├── kat-over-new-moon.gif │ │ ├── king-salmon-2.gif │ │ ├── king-salmon-thumbnail.gif │ │ ├── king-salmon.gif │ │ ├── laos-bird-2.gif │ │ ├── laos-bird-thumbnail.gif │ │ ├── laos-bird.gif │ │ ├── laotian-elephant-2.gif │ │ ├── laotian-elephant-thumbnail.gif │ │ ├── laotian-elephant.gif │ │ ├── liberian-elephant-2.gif │ │ ├── liberian-elephant-thumbnail.gif │ │ ├── liberian-elephant.gif │ │ ├── lorraine-2.gif │ │ ├── lorraine-thumbnail.gif │ │ ├── lorraine.gif │ │ ├── love-2.gif │ │ ├── love-thumbnail.gif │ │ ├── love.gif │ │ ├── madonna-child-2.gif │ │ ├── madonna-child-thumbnail.gif │ │ ├── madonna-child.gif │ │ ├── marianne-2.gif │ │ ├── marianne-thumbnail.gif │ │ ├── marianne.gif │ │ ├── mazzini-2.gif │ │ ├── mazzini-thumbnail.gif │ │ ├── mazzini.gif │ │ ├── men-size-full.png │ │ ├── men.png │ │ ├── mercury-2.gif │ │ ├── mercury-thumbnail.gif │ │ ├── mercury.gif │ │ ├── mistletoe-2.gif │ │ ├── mistletoe-thumbnail.gif │ │ ├── mistletoe.gif │ │ ├── mockup.png │ │ ├── mozambique-lion-2.gif │ │ ├── mozambique-lion-thumbnail.gif │ │ ├── mozambique-lion.gif │ │ ├── musk-ox-2.gif │ │ ├── musk-ox-thumbnail.gif │ │ ├── musk-ox.gif │ │ ├── mustache-monkey-2.gif │ │ ├── mustache-monkey-thumbnail.gif │ │ ├── mustache-monkey.gif │ │ ├── notre-dame-2.gif │ │ ├── notre-dame-thumbnail.gif │ │ ├── notre-dame.gif │ │ ├── paris-peace-conference-2.gif │ │ ├── paris-peace-conference-thumbnail.gif │ │ ├── paris-peace-conference.gif │ │ ├── peru-llama-2.gif │ │ ├── peru-llama-thumbnail.gif │ │ ├── peru-llama.gif │ │ ├── poland-flower-2.gif │ │ ├── poland-flower-thumbnail.gif │ │ ├── poland-flower.gif │ │ ├── product_loading.png │ │ ├── product_placeholder.png │ │ ├── romania-alsatian-2.gif │ │ ├── romania-alsatian-thumbnail.gif │ │ ├── romania-alsatian.gif │ │ ├── romania-flower-2.gif │ │ ├── romania-flower-thumbnail.gif │ │ ├── romania-flower.gif │ │ ├── romulus-remus-2.gif │ │ ├── romulus-remus-thumbnail.gif │ │ ├── romulus-remus.gif │ │ ├── russia-flower-2.gif │ │ ├── russia-flower-thumbnail.gif │ │ ├── russia-flower.gif │ │ ├── sambar-2.gif │ │ ├── sambar-thumbnail.gif │ │ ├── sambar.gif │ │ ├── san-marino-flower-2.gif │ │ ├── san-marino-flower-thumbnail.gif │ │ ├── san-marino-flower.gif │ │ ├── sarah-bernhardt-2.gif │ │ ├── sarah-bernhardt-thumbnail.gif │ │ ├── sarah-bernhardt.gif │ │ ├── sea-gull-2.gif │ │ ├── sea-gull-thumbnail.gif │ │ ├── sea-gull.gif │ │ ├── sidemain-men.png │ │ ├── sidemainfull.png │ │ ├── sidemen.png │ │ ├── snow-deer-2.gif │ │ ├── snow-deer-thumbnail.gif │ │ ├── snow-deer.gif │ │ ├── somali-fish-2.gif │ │ ├── somali-fish-thumbnail.gif │ │ ├── somali-fish.gif │ │ ├── somali-ostriches-2.gif │ │ ├── somali-ostriches-thumbnail.gif │ │ ├── somali-ostriches.gif │ │ ├── st-francis-2.gif │ │ ├── st-francis-thumbnail.gif │ │ ├── st-francis.gif │ │ ├── st-lucia-2.gif │ │ ├── st-lucia-thumbnail.gif │ │ ├── st-lucia.gif │ │ ├── st-lucy-2.gif │ │ ├── st-lucy-thumbnail.gif │ │ ├── st-lucy.gif │ │ ├── st-patrick-2.gif │ │ ├── st-patrick-thumbnail.gif │ │ ├── st-patrick.gif │ │ ├── st-peter-2.gif │ │ ├── st-peter-thumbnail.gif │ │ ├── st-peter.gif │ │ ├── success-300.png │ │ ├── success-3000.png │ │ ├── suvla-bay-2.gif │ │ ├── suvla-bay-thumbnail.gif │ │ ├── suvla-bay.gif │ │ ├── swede-santa-2.gif │ │ ├── swede-santa-thumbnail.gif │ │ ├── swede-santa.gif │ │ ├── sword-of-light-2.gif │ │ ├── sword-of-light-thumbnail.gif │ │ ├── sword-of-light.gif │ │ ├── tankanyika-giraffe-2.gif │ │ ├── tankanyika-giraffe-thumbnail.gif │ │ ├── tankanyika-giraffe.gif │ │ ├── the-promise-of-spring-2.gif │ │ ├── the-promise-of-spring-thumbnail.gif │ │ ├── the-promise-of-spring.gif │ │ ├── the-rapture-of-psyche-2.gif │ │ ├── the-rapture-of-psyche-thumbnail.gif │ │ ├── the-rapture-of-psyche.gif │ │ ├── the-three-wise-men-2.gif │ │ ├── the-three-wise-men-thumbnail.gif │ │ ├── the-three-wise-men.gif │ │ ├── the-virgin-mary-2.gif │ │ ├── the-virgin-mary-thumbnail.gif │ │ ├── the-virgin-mary.gif │ │ ├── thomas-moore-2.gif │ │ ├── thomas-moore-thumbnail.gif │ │ ├── thomas-moore.gif │ │ ├── thrilling-love-2.gif │ │ ├── thrilling-love-thumbnail.gif │ │ ├── thrilling-love.gif │ │ ├── torch-2.gif │ │ ├── torch-thumbnail.gif │ │ ├── torch.gif │ │ ├── trout-2.gif │ │ ├── trout-thumbnail.gif │ │ ├── trout.gif │ │ ├── uruguay-flower-2.gif │ │ ├── uruguay-flower-thumbnail.gif │ │ ├── uruguay-flower.gif │ │ ├── visit-the-zoo-2.gif │ │ ├── visit-the-zoo-thumbnail.gif │ │ ├── visit-the-zoo.gif │ │ ├── weather-vane-2.gif │ │ ├── weather-vane-thumbnail.gif │ │ ├── weather-vane.gif │ │ ├── wow.png │ │ ├── wreath-2.gif │ │ ├── wreath-thumbnail.gif │ │ └── wreath.gif │ └── index.html ├── server.js ├── src │ ├── api │ │ ├── CommonAPI.ts │ │ ├── FileAPI.ts │ │ ├── StringAPI.ts │ │ └── compose.js │ ├── assets │ │ ├── fonts │ │ │ ├── Flaticon.eot │ │ │ ├── Flaticon.ttf │ │ │ └── Flaticon.woff │ │ └── images │ │ │ └── Flaticon.svg │ ├── components │ │ ├── Paper.js │ │ ├── TextField.js │ │ ├── addressForm │ │ │ ├── AddressFormComponent.tsx │ │ │ ├── IAddressFormComponentProps.ts │ │ │ ├── IAddressFormComponentState.ts │ │ │ └── index.ts │ │ ├── appBar │ │ │ ├── AppBarComponent.tsx │ │ │ ├── IAppBarComponentProps.ts │ │ │ ├── IAppBarComponentState.ts │ │ │ └── index.ts │ │ ├── appFooter │ │ │ ├── AppFooterComponent.tsx │ │ │ ├── IAppFooterComponentProps.ts │ │ │ ├── IAppFooterComponentState.ts │ │ │ └── index.ts │ │ ├── editProfile │ │ │ ├── EditProfileComponent.tsx │ │ │ ├── IEditProfileComponentProps.ts │ │ │ ├── IEditProfileComponentState.ts │ │ │ └── index.ts │ │ ├── finish │ │ │ ├── FinishComponent.tsx │ │ │ ├── IFinishComponentProps.ts │ │ │ ├── IFinishComponentState.ts │ │ │ └── index.ts │ │ ├── formButton │ │ │ ├── FormButtonComponent.tsx │ │ │ ├── IFormButtonComponentProps.ts │ │ │ ├── IFormButtonComponentState.ts │ │ │ └── index.ts │ │ ├── homeHeader │ │ │ ├── HomeHeaderComponent.tsx │ │ │ ├── IHomeHeaderComponentProps.ts │ │ │ ├── IHomeHeaderComponentState.ts │ │ │ └── index.ts │ │ ├── imageGallery │ │ │ ├── IImageGalleryComponentProps.ts │ │ │ ├── IImageGalleryComponentState.ts │ │ │ ├── ImageGalleryComponent.tsx │ │ │ └── index.ts │ │ ├── img │ │ │ ├── IImgComponentProps.ts │ │ │ ├── IImgComponentState.ts │ │ │ ├── ImgComponent.tsx │ │ │ └── index.ts │ │ ├── imgCover │ │ │ ├── IImgCoverComponentProps.ts │ │ │ ├── IImgCoverComponentState.ts │ │ │ ├── ImgCoverComponent.tsx │ │ │ └── index.ts │ │ ├── layoutBody │ │ │ ├── ILayoutBodyComponentProps.ts │ │ │ ├── ILayoutBodyComponentState.ts │ │ │ ├── LayoutBodyComponent.tsx │ │ │ └── index.ts │ │ ├── masterLoading │ │ │ ├── IMasterLoadingComponentProps.ts │ │ │ ├── IMasterLoadingComponentState.ts │ │ │ ├── MasterLoadingComponent.tsx │ │ │ └── index.ts │ │ ├── newsLetter │ │ │ ├── INewsLetterComponentProps.ts │ │ │ ├── INewsLetterComponentState.ts │ │ │ ├── NewsLetterComponent.tsx │ │ │ └── index.ts │ │ ├── paymentForm │ │ │ ├── IPaymentFormComponentProps.ts │ │ │ ├── IPaymentFormComponentState.ts │ │ │ ├── PaymentFormComponent.tsx │ │ │ └── index.ts │ │ ├── product │ │ │ ├── IProductComponentProps.ts │ │ │ ├── IProductComponentState.ts │ │ │ ├── ProductComponent.tsx │ │ │ └── index.ts │ │ ├── productDetail │ │ │ ├── IProductDetailComponentProps.ts │ │ │ ├── IProductDetailComponentState.ts │ │ │ ├── ProductDetailComponent.tsx │ │ │ └── index.ts │ │ ├── productHero │ │ │ ├── IProductHeroComponentProps.ts │ │ │ ├── IProductHeroComponentState.ts │ │ │ ├── ProductHeroComponent.tsx │ │ │ └── index.ts │ │ ├── productHeroLayout │ │ │ ├── IProductHeroLayoutComponentProps.ts │ │ │ ├── IProductHeroLayoutComponentState.ts │ │ │ ├── ProductHeroLayoutComponent.tsx │ │ │ └── index.ts │ │ ├── productHowItWorks │ │ │ ├── IProductHowItWorksComponentProps.ts │ │ │ ├── IProductHowItWorksComponentState.ts │ │ │ ├── ProductHowItWorksComponent.tsx │ │ │ └── index.ts │ │ ├── profileHeader │ │ │ ├── IProfileHeaderComponentProps.ts │ │ │ ├── IProfileHeaderComponentState.ts │ │ │ ├── ProfileHeaderComponent.tsx │ │ │ └── index.ts │ │ ├── review │ │ │ ├── IReviewComponentProps.ts │ │ │ ├── IReviewComponentState.ts │ │ │ ├── ReviewComponent.tsx │ │ │ └── index.ts │ │ ├── sidebar │ │ │ ├── ISidebarComponentProps.ts │ │ │ ├── ISidebarComponentState.ts │ │ │ ├── SidebarComponent.tsx │ │ │ └── index.ts │ │ ├── sidebarContent │ │ │ ├── ISidebarContentComponentProps.ts │ │ │ ├── ISidebarContentComponentState.ts │ │ │ ├── SidebarContentComponent.tsx │ │ │ └── index.ts │ │ ├── sidebarMain │ │ │ ├── ISidebarMainComponentProps.ts │ │ │ ├── ISidebarMainComponentState.ts │ │ │ ├── SidebarMainComponent.tsx │ │ │ └── index.ts │ │ ├── toolbar │ │ │ ├── IToolBarComponentProps.ts │ │ │ ├── IToolBarComponentState.ts │ │ │ ├── ToolBarComponent.tsx │ │ │ └── index.ts │ │ ├── topAppBar │ │ │ ├── ITopAppBarComponentProps.ts │ │ │ ├── ITopAppBarComponentState.ts │ │ │ ├── TopAppBarComponent.tsx │ │ │ └── index.ts │ │ ├── typography │ │ │ ├── ITypographyComponentProps.ts │ │ │ ├── ITypographyComponentState.ts │ │ │ ├── TypographyComponent.tsx │ │ │ └── index.ts │ │ └── userAvatar │ │ │ ├── IUserAvatarComponentProps.ts │ │ │ ├── IUserAvatarComponentState.ts │ │ │ ├── UserAvatarComponent.tsx │ │ │ └── index.ts │ ├── config │ │ ├── environment.dev.ts │ │ ├── environment.prod.ts │ │ └── index.ts │ ├── constants.js │ ├── constants │ │ ├── addToCartActionType.ts │ │ ├── authorizeActionType.ts │ │ ├── checkoutActionType.ts │ │ ├── globalActionType.ts │ │ ├── imageGalleryActionType.ts │ │ ├── productActionType.ts │ │ ├── serverActionType.ts │ │ ├── serverRequestType.ts │ │ ├── shippingsActionType.ts │ │ └── userActionType.ts │ ├── containers │ │ ├── addToCart │ │ │ ├── AddToCartComponent.tsx │ │ │ ├── IAddToCartComponentProps.ts │ │ │ ├── IAddToCartComponentState.ts │ │ │ └── index.ts │ │ ├── appForm │ │ │ ├── AppFormComponent.tsx │ │ │ ├── IAppFormComponentProps.ts │ │ │ ├── IAppFormComponentState.ts │ │ │ └── index.ts │ │ ├── checkout │ │ │ ├── CheckoutComponent.tsx │ │ │ ├── ICheckoutComponentProps.ts │ │ │ ├── ICheckoutComponentState.ts │ │ │ └── index.ts │ │ ├── home │ │ │ ├── HomeComponent.tsx │ │ │ ├── IHomeComponentProps.ts │ │ │ ├── IHomeComponentState.ts │ │ │ └── index.ts │ │ ├── homeSections │ │ │ ├── HomeSectionsComponent.tsx │ │ │ ├── IHomeSectionsComponentProps.ts │ │ │ ├── IHomeSectionsComponentState.ts │ │ │ └── index.ts │ │ ├── login │ │ │ ├── ILoginComponentProps.ts │ │ │ ├── ILoginComponentState.ts │ │ │ ├── LoginComponent.tsx │ │ │ └── index.ts │ │ ├── master │ │ │ ├── IMasterComponentProps.ts │ │ │ ├── IMasterComponentState.ts │ │ │ ├── MasterComponent.tsx │ │ │ └── index.ts │ │ ├── productDetails │ │ │ ├── IProductsComponentProps.ts │ │ │ ├── IProductsComponentState.ts │ │ │ ├── ProductDetailsComponent.tsx │ │ │ └── index.ts │ │ ├── products │ │ │ ├── IProductsComponentProps.ts │ │ │ ├── IProductsComponentState.ts │ │ │ ├── ProductsComponent.tsx │ │ │ └── index.ts │ │ └── signup │ │ │ ├── ISignupComponentProps.ts │ │ │ ├── ISignupComponentState.ts │ │ │ ├── SignupComponent.tsx │ │ │ └── index.ts │ ├── core │ │ ├── domain │ │ │ ├── authorize │ │ │ │ ├── index.ts │ │ │ │ ├── loginUser.ts │ │ │ │ ├── oauthType.ts │ │ │ │ └── registerUserResult.ts │ │ │ ├── cart │ │ │ │ ├── cart.ts │ │ │ │ ├── index.ts │ │ │ │ └── order.ts │ │ │ ├── comments │ │ │ │ ├── comment.ts │ │ │ │ └── index.ts │ │ │ ├── common │ │ │ │ ├── baseDomain.ts │ │ │ │ ├── feed.ts │ │ │ │ ├── feedType.ts │ │ │ │ ├── index.ts │ │ │ │ └── socialError.ts │ │ │ ├── imageGallery │ │ │ │ ├── image.ts │ │ │ │ └── index.ts │ │ │ ├── products │ │ │ │ ├── index.ts │ │ │ │ └── product.ts │ │ │ ├── shippings │ │ │ │ ├── index.ts │ │ │ │ ├── shippingAddress.ts │ │ │ │ ├── shippingRates.ts │ │ │ │ └── shippingRegion.ts │ │ │ └── users │ │ │ │ ├── index.ts │ │ │ │ ├── profile.ts │ │ │ │ ├── user.ts │ │ │ │ └── userProvider.ts │ │ ├── environment.ts │ │ ├── factories │ │ │ ├── IServiceProvider.ts │ │ │ ├── index.ts │ │ │ └── serviceProvide.ts │ │ ├── services │ │ │ ├── authorize │ │ │ │ ├── IAuthorizeService.ts │ │ │ │ └── index.ts │ │ │ ├── cart │ │ │ │ ├── ICartService.ts │ │ │ │ └── index.ts │ │ │ ├── common │ │ │ │ ├── ICommonService.ts │ │ │ │ └── index.ts │ │ │ ├── files │ │ │ │ ├── IStorageService.ts │ │ │ │ └── index.ts │ │ │ ├── imageGallery │ │ │ │ ├── IImageGalleryService.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── products │ │ │ │ ├── IProductService.ts │ │ │ │ └── index.ts │ │ │ ├── shippings │ │ │ │ ├── IShippingService.ts │ │ │ │ └── index.ts │ │ │ └── users │ │ │ │ ├── IUserService.ts │ │ │ │ └── index.ts │ │ └── socialProviderTypes.ts │ ├── data │ │ └── ecommerceClient │ │ │ ├── dependecyRegisterar.ts │ │ │ ├── index.ts │ │ │ └── services │ │ │ ├── authorize │ │ │ ├── AuthorizeService.ts │ │ │ └── index.ts │ │ │ ├── cart │ │ │ ├── CartService.ts │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── products │ │ │ ├── ProductService.ts │ │ │ └── index.ts │ │ │ └── shippings │ │ │ ├── ShippingService.ts │ │ │ └── index.ts │ ├── ecommerceEngine.ts │ ├── index.tsx │ ├── layouts │ │ ├── appInput │ │ │ ├── AppInputComponent.tsx │ │ │ ├── IAppInputComponentProps.ts │ │ │ ├── IAppInputComponentState.ts │ │ │ └── index.ts │ │ ├── dialogTitle │ │ │ ├── DialogTitleComponent.tsx │ │ │ ├── IDialogTitleComponentProps.ts │ │ │ ├── IDialogTitleComponentState.ts │ │ │ └── index.ts │ │ ├── iconButtonElement │ │ │ ├── IconButtonElementComponent.tsx │ │ │ └── index.ts │ │ └── loadMoreProgress │ │ │ ├── LoadMoreProgressComponent.tsx │ │ │ └── index.ts │ ├── locale │ │ ├── ch.json │ │ ├── en.json │ │ └── es.json │ ├── models │ │ ├── files │ │ │ ├── fileResult.ts │ │ │ └── index.ts │ │ ├── server │ │ │ ├── index.ts │ │ │ └── serverRequestModel.ts │ │ └── users │ │ │ ├── index.ts │ │ │ └── userRegisterModel.ts │ ├── registerServiceWorker.js │ ├── registerServiceWorker.ts │ ├── routes │ │ ├── HomeRouter.tsx │ │ ├── IRoute.ts │ │ ├── IRouterProps.ts │ │ ├── MasterRouter.tsx │ │ ├── PrivateRoute.tsx │ │ ├── PublicRoute.tsx │ │ └── index.ts │ ├── setupTests.js │ ├── store │ │ ├── actions │ │ │ ├── addToCartActions.ts │ │ │ ├── authorizeActions.ts │ │ │ ├── checkoutActions.ts │ │ │ ├── globalActions.ts │ │ │ ├── imageGalleryActions.ts │ │ │ ├── index.ts │ │ │ ├── localeActions.ts │ │ │ ├── productActions.ts │ │ │ ├── serverActions.ts │ │ │ ├── serverRequestStatusType.ts │ │ │ ├── shippingsActions.ts │ │ │ └── userActions.ts │ │ ├── configureStore.dev.ts │ │ ├── configureStore.prod.ts │ │ ├── configureStore.ts │ │ ├── devTools.tsx │ │ ├── reducers │ │ │ ├── addToCart │ │ │ │ ├── IAddToCartAction.ts │ │ │ │ ├── addToCartReducer.ts │ │ │ │ ├── addToCartState.ts │ │ │ │ └── index.ts │ │ │ ├── authorize │ │ │ │ ├── AuthorizeState.ts │ │ │ │ ├── IAuthorizeAction.ts │ │ │ │ ├── authorizeReducer.ts │ │ │ │ ├── authorizeSelector.ts │ │ │ │ └── index.ts │ │ │ ├── checkout │ │ │ │ ├── CheckoutState.ts │ │ │ │ ├── ICheckoutAction.ts │ │ │ │ ├── checkoutReducer.ts │ │ │ │ └── index.ts │ │ │ ├── global │ │ │ │ ├── GlobalState.ts │ │ │ │ ├── IGlobalAction.ts │ │ │ │ ├── globalReducer.ts │ │ │ │ └── index.ts │ │ │ ├── imageGallery │ │ │ │ ├── IImageGalleryAction.ts │ │ │ │ ├── ImageGalleryState.ts │ │ │ │ ├── imageGalleryReducer.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── locale │ │ │ │ └── langugeType.ts │ │ │ ├── products │ │ │ │ ├── IProductAction.ts │ │ │ │ ├── ProductState.ts │ │ │ │ ├── index.ts │ │ │ │ ├── productReducer.ts │ │ │ │ └── productSelector.ts │ │ │ ├── rootReducer.ts │ │ │ ├── server │ │ │ │ ├── IServerAction.ts │ │ │ │ ├── ServerState.ts │ │ │ │ ├── index.ts │ │ │ │ └── serverReducer.ts │ │ │ ├── shippings │ │ │ │ ├── IShippingsAction.ts │ │ │ │ ├── ShippingsState.ts │ │ │ │ ├── index.ts │ │ │ │ ├── shippingsReducer.ts │ │ │ │ └── shippingsSelector.ts │ │ │ └── users │ │ │ │ ├── IUserAction.ts │ │ │ │ ├── UserState.ts │ │ │ │ ├── index.ts │ │ │ │ └── userReducer.ts │ │ └── sagas │ │ │ ├── localeSaga.ts │ │ │ └── rootSaga.ts │ ├── styles │ │ ├── app.css │ │ ├── app.scss │ │ ├── base │ │ │ ├── _animate.scss │ │ │ ├── _flaticon.scss │ │ │ ├── _grid.scss │ │ │ ├── _icon.scss │ │ │ └── _variables.scss │ │ ├── checkbox.min.css │ │ ├── components │ │ │ ├── _global.scss │ │ │ ├── _home.scss │ │ │ ├── _homeHeader.scss │ │ │ ├── _imageGallery.scss │ │ │ ├── _login.scss │ │ │ ├── _master.scss │ │ │ ├── _masterLoading.scss │ │ │ ├── _profile.scss │ │ │ ├── _sidebar.scss │ │ │ ├── _signup.scss │ │ │ └── _userBox.scss │ │ ├── images │ │ │ ├── bag-big.png │ │ │ ├── bag-small.png │ │ │ ├── bag.png │ │ │ ├── home-hero.png │ │ │ ├── men-size-full.png │ │ │ ├── men.png │ │ │ ├── sidemain-men.png │ │ │ ├── sidemainfull.png │ │ │ ├── sidemen.png │ │ │ ├── success-300.png │ │ │ └── wow.png │ │ └── rangeslider.min.css │ ├── tests │ │ ├── components │ │ │ ├── __snapshots__ │ │ │ │ └── productComponent.test.js.snap │ │ │ └── productComponent.test.js │ │ └── store │ │ │ ├── actions │ │ │ ├── __snapshots__ │ │ │ │ ├── addToCartActions.test.js.snap │ │ │ │ └── authorizeActions.test.js.snap │ │ │ ├── addToCartActions.test.js │ │ │ └── authorizeActions.test.js │ │ │ └── reducers │ │ │ ├── __snapshots__ │ │ │ └── authorizeReducer.test.js.snap │ │ │ └── authorizeReducer.test.js │ ├── theme.js │ └── typings │ │ ├── react-day-picker.d.ts │ │ ├── react-linkif.d.ts │ │ ├── react-loadable.d.ts │ │ ├── react-parallax.ts │ │ ├── react-share.ts │ │ └── react-string-replace.d.ts ├── tsconfig.json ├── tsconfig.prod.json ├── tsconfig.test.json ├── tslint.json └── yarn.lock └── server ├── .editorconfig ├── .env ├── .eslintrc ├── .gitignore ├── .nvmrc ├── .nycrc ├── .sequelizerc ├── LICENSE.md ├── Procfile ├── README.md ├── cluster.js ├── config ├── database.js ├── environments │ ├── development.js │ ├── production.js │ └── test.js ├── index.js ├── passport.js └── smtp.js ├── index.js ├── logs └── .gitkeep ├── package.json ├── scripts └── cleanup.js ├── src ├── app │ ├── Application.js │ ├── Operation.js │ ├── auth │ │ ├── Login.js │ │ ├── Logout.js │ │ ├── Signup.js │ │ ├── UserInfo.js │ │ └── index.js │ ├── category │ │ ├── GetAllCategoriesByDepartment.js │ │ └── index.js │ ├── department │ │ ├── GetAllDepartments.js │ │ └── index.js │ ├── product │ │ ├── GetAllProducts.js │ │ ├── GetAllProductsByCategory.js │ │ ├── GetAllProductsByText.js │ │ ├── GetProductAttributes.js │ │ ├── GetProductDetails.js │ │ └── index.js │ ├── shipping │ │ ├── GetShippingRates.js │ │ ├── GetShippingRegions.js │ │ ├── GetShippings.js │ │ ├── UpdateShippings.js │ │ └── index.js │ └── store │ │ ├── AddToCart.js │ │ ├── GetCart.js │ │ ├── PlaceOrder.js │ │ ├── UpdateCartItem.js │ │ ├── UpdateOrder.js │ │ └── index.js ├── container.js ├── domain │ ├── category │ │ └── Category.js │ ├── customer │ │ └── Customer.js │ ├── department │ │ └── Department.js │ ├── product │ │ └── Product.js │ ├── shipping │ │ ├── Shipping.js │ │ ├── ShippingRate.js │ │ └── ShippingRegion.js │ └── store │ │ ├── Orders.js │ │ └── ShoppingCart.js ├── infra │ ├── category │ │ ├── SequelizeCategoriesRepository.js │ │ └── SequelizeCategoryMapper.js │ ├── customer │ │ ├── SequelizeCustomerMapper.js │ │ └── SequelizeCustomersRepository.js │ ├── database │ │ ├── migrate │ │ │ ├── .gitkeep │ │ │ └── 20170308131539-create-user.js │ │ ├── models │ │ │ ├── AttributeValue.js │ │ │ ├── Category.js │ │ │ ├── Customer.js │ │ │ ├── Department.js │ │ │ ├── Product.js │ │ │ ├── ProductAttribute.js │ │ │ ├── ProductCategory.js │ │ │ ├── ShippingRate.js │ │ │ ├── ShippingRegion.js │ │ │ ├── ShoppingCart.js │ │ │ ├── attribute.js │ │ │ ├── audit.js │ │ │ ├── index.js │ │ │ ├── order_detail.js │ │ │ ├── orders.js │ │ │ ├── review.js │ │ │ └── tax.js │ │ ├── scripts │ │ │ └── ecommerce.sql.zip │ │ └── seeds │ │ │ ├── .gitkeep │ │ │ └── 20170308131757-test-users.js │ ├── department │ │ ├── SequelizeDepartmentMapper.js │ │ └── SequelizeDepartmentsRepository.js │ ├── factoryGirl │ │ ├── FactoriesLoader.js │ │ └── index.js │ ├── logging │ │ ├── LoggerStreamAdapter.js │ │ └── logger.js │ ├── mail │ │ ├── EmailHandler.js │ │ └── placeOrder │ │ │ ├── html.pug │ │ │ └── subject.pug │ ├── product │ │ ├── SequelizeProductMapper.js │ │ └── SequelizeProductsRepository.js │ ├── sequelize │ │ ├── ModelsLoader.js │ │ └── index.js │ ├── shipping │ │ ├── SequelizeShippingMapper.js │ │ ├── SequelizeShippingRegionMapper.js │ │ ├── SequelizeShippingRegionsRepository.js │ │ └── SequelizeShippingsRepository.js │ ├── shippingRate │ │ ├── SequelizeShippingRateMapper.js │ │ └── SequelizeShippingRatesRepository.js │ ├── store │ │ ├── SequelizeCartMapper.js │ │ ├── SequelizeCartsRepository.js │ │ ├── SequelizeOrderMapper.js │ │ └── SequelizeOrdersRepository.js │ └── support │ │ └── dataFaker.js └── interfaces │ ├── console │ ├── Console.js │ └── index.js │ └── http │ ├── Server.js │ ├── auth │ ├── AuthController.js │ ├── AuthSerializer.js │ ├── SignoutController.js │ ├── SignupController.js │ └── UserInfoController.js │ ├── category │ ├── CategoriesController.js │ └── CategorySerializer.js │ ├── department │ ├── DepartmentSerializer.js │ └── DepartmentsController.js │ ├── errors │ ├── devErrorHandler.js │ └── errorHandler.js │ ├── logging │ └── loggerMiddleware.js │ ├── product │ ├── ProductAttributeSerializer.js │ ├── ProductSerializer.js │ └── ProductsController.js │ ├── router.js │ ├── shipping │ ├── ShippingRateSerializer.js │ ├── ShippingRegionSerializer.js │ ├── ShippingSerializer.js │ └── ShippingsController.js │ ├── store │ ├── CartSerializer.js │ ├── OrderSerializer.js │ └── StoresController.js │ ├── swagger │ ├── swagger.json │ └── swaggerMiddleware.js │ └── utils │ └── createControllerRoutes.js └── test ├── features └── api │ ├── .gitkeep │ ├── auth │ ├── getUserInfo.spec.js │ ├── login.spec.js │ ├── logout.spec.js │ └── signup.spec.js │ ├── category │ └── listCategoriesByDepartment.spec.js │ ├── department │ └── listDepartments.spec.js │ ├── product │ ├── getProductAttributes.spec.js │ ├── getProductDetails.spec.js │ ├── listProducts.spec.js │ ├── listProductsByCategory.spec.js │ └── listProductsBySearchText.spec.js │ ├── shipping │ ├── getShippingAddress.spec.js │ ├── listShippingRates.spec.js │ ├── listShippingRegions.spec.js │ └── updateShippingAddress.spec.js │ └── store │ ├── addToCart.spec.js │ ├── getCart.spec.js │ ├── placeOrder.spec.js │ ├── updateCartItem.spec.js │ └── updateOrder.spec.js ├── mocha.opts.features ├── mocha.opts.unit ├── setup.js ├── support ├── cleanDatabase.js ├── factories │ ├── .gitkeep │ ├── attribute.js │ ├── attributeValue.js │ ├── category.js │ ├── customer.js │ ├── department.js │ ├── product.js │ ├── productAttribute.js │ ├── productCategory.js │ ├── shippingRate.js │ └── shippingRegion.js ├── factory.js └── request.js └── unit ├── app ├── Operation.spec.js └── auth │ └── Signup.spec.js ├── domain └── customer │ └── Customer.spec.js ├── infra ├── customer │ ├── SequelizeCustomerMapper.spec.js │ └── SequelizeCustomersRepository.spec.js └── logging │ └── LoggerStreamAdapter.spec.js └── interfaces └── http └── auth └── AuthSerializer.spec.js /client/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["env", {"modules": false}]], 3 | } 4 | -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | 23 | .vscode/ 24 | src/data/awsClient 25 | src/components/AWS.tsx -------------------------------------------------------------------------------- /client/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-paypal-express-checkout' 2 | declare module 'react-star-rating-component' 3 | declare module 'react-paginate' 4 | declare module 'react-image-fallback' 5 | declare module 'uniqid' 6 | -------------------------------------------------------------------------------- /client/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | setupTestFrameworkScriptFile: "/src/setupTests.ts" 3 | } 4 | -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/images/a-partridge-in-a-pear-tree-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/a-partridge-in-a-pear-tree-2.gif -------------------------------------------------------------------------------- /client/public/images/a-partridge-in-a-pear-tree-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/a-partridge-in-a-pear-tree-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/a-partridge-in-a-pear-tree.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/a-partridge-in-a-pear-tree.gif -------------------------------------------------------------------------------- /client/public/images/adoration-of-the-kings-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/adoration-of-the-kings-2.gif -------------------------------------------------------------------------------- /client/public/images/adoration-of-the-kings-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/adoration-of-the-kings-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/adoration-of-the-kings.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/adoration-of-the-kings.gif -------------------------------------------------------------------------------- /client/public/images/afghan-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/afghan-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/afghan-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/afghan-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/afghan-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/afghan-flower.gif -------------------------------------------------------------------------------- /client/public/images/albania-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/albania-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/albania-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/albania-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/albania-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/albania-flower.gif -------------------------------------------------------------------------------- /client/public/images/alsace-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/alsace-2.gif -------------------------------------------------------------------------------- /client/public/images/alsace-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/alsace-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/alsace.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/alsace.gif -------------------------------------------------------------------------------- /client/public/images/altar-piece-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/altar-piece-2.gif -------------------------------------------------------------------------------- /client/public/images/altar-piece-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/altar-piece-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/altar-piece.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/altar-piece.gif -------------------------------------------------------------------------------- /client/public/images/apocalypse-tapestry-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/apocalypse-tapestry-2.gif -------------------------------------------------------------------------------- /client/public/images/apocalypse-tapestry-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/apocalypse-tapestry-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/apocalypse-tapestry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/apocalypse-tapestry.gif -------------------------------------------------------------------------------- /client/public/images/arc-d-triomphe-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/arc-d-triomphe-2.gif -------------------------------------------------------------------------------- /client/public/images/arc-d-triomphe-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/arc-d-triomphe-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/arc-d-triomphe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/arc-d-triomphe.gif -------------------------------------------------------------------------------- /client/public/images/austria-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/austria-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/austria-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/austria-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/austria-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/austria-flower.gif -------------------------------------------------------------------------------- /client/public/images/baby-seal-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/baby-seal-2.gif -------------------------------------------------------------------------------- /client/public/images/baby-seal-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/baby-seal-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/baby-seal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/baby-seal.gif -------------------------------------------------------------------------------- /client/public/images/bag-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/bag-big.png -------------------------------------------------------------------------------- /client/public/images/bag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/bag.png -------------------------------------------------------------------------------- /client/public/images/birds-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/birds-2.gif -------------------------------------------------------------------------------- /client/public/images/birds-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/birds-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/birds.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/birds.gif -------------------------------------------------------------------------------- /client/public/images/buffalo-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/buffalo-2.gif -------------------------------------------------------------------------------- /client/public/images/buffalo-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/buffalo-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/buffalo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/buffalo.gif -------------------------------------------------------------------------------- /client/public/images/bulgarian-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/bulgarian-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/bulgarian-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/bulgarian-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/bulgarian-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/bulgarian-flower.gif -------------------------------------------------------------------------------- /client/public/images/canada-goose-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/canada-goose-2.gif -------------------------------------------------------------------------------- /client/public/images/canada-goose-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/canada-goose-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/canada-goose.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/canada-goose.gif -------------------------------------------------------------------------------- /client/public/images/caribou-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/caribou-2.gif -------------------------------------------------------------------------------- /client/public/images/caribou-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/caribou-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/caribou.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/caribou.gif -------------------------------------------------------------------------------- /client/public/images/centaur-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/centaur-2.gif -------------------------------------------------------------------------------- /client/public/images/centaur-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/centaur-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/centaur.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/centaur.gif -------------------------------------------------------------------------------- /client/public/images/chartres-cathedral-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/chartres-cathedral-2.gif -------------------------------------------------------------------------------- /client/public/images/chartres-cathedral-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/chartres-cathedral-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/chartres-cathedral.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/chartres-cathedral.gif -------------------------------------------------------------------------------- /client/public/images/christmas-seal-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/christmas-seal-2.gif -------------------------------------------------------------------------------- /client/public/images/christmas-seal-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/christmas-seal-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/christmas-seal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/christmas-seal.gif -------------------------------------------------------------------------------- /client/public/images/christmas-tree-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/christmas-tree-2.gif -------------------------------------------------------------------------------- /client/public/images/christmas-tree-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/christmas-tree-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/christmas-tree.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/christmas-tree.gif -------------------------------------------------------------------------------- /client/public/images/coat-of-arms-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/coat-of-arms-2.gif -------------------------------------------------------------------------------- /client/public/images/coat-of-arms-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/coat-of-arms-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/coat-of-arms.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/coat-of-arms.gif -------------------------------------------------------------------------------- /client/public/images/colobus-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/colobus-2.gif -------------------------------------------------------------------------------- /client/public/images/colobus-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/colobus-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/colobus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/colobus.gif -------------------------------------------------------------------------------- /client/public/images/colombia-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/colombia-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/colombia-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/colombia-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/colombia-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/colombia-flower.gif -------------------------------------------------------------------------------- /client/public/images/congo-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/congo-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/congo-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/congo-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/congo-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/congo-flower.gif -------------------------------------------------------------------------------- /client/public/images/congo-rhino-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/congo-rhino-2.gif -------------------------------------------------------------------------------- /client/public/images/congo-rhino-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/congo-rhino-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/congo-rhino.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/congo-rhino.gif -------------------------------------------------------------------------------- /client/public/images/corsica-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/corsica-2.gif -------------------------------------------------------------------------------- /client/public/images/corsica-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/corsica-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/corsica.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/corsica.gif -------------------------------------------------------------------------------- /client/public/images/costa-rica-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/costa-rica-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/costa-rica-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/costa-rica-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/costa-rica-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/costa-rica-flower.gif -------------------------------------------------------------------------------- /client/public/images/county-of-nice-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/county-of-nice-2.gif -------------------------------------------------------------------------------- /client/public/images/county-of-nice-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/county-of-nice-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/county-of-nice.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/county-of-nice.gif -------------------------------------------------------------------------------- /client/public/images/dutch-sea-horse-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/dutch-sea-horse-2.gif -------------------------------------------------------------------------------- /client/public/images/dutch-sea-horse-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/dutch-sea-horse-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/dutch-sea-horse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/dutch-sea-horse.gif -------------------------------------------------------------------------------- /client/public/images/dutch-swans-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/dutch-swans-2.gif -------------------------------------------------------------------------------- /client/public/images/dutch-swans-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/dutch-swans-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/dutch-swans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/dutch-swans.gif -------------------------------------------------------------------------------- /client/public/images/easter-rebellion-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/easter-rebellion-2.gif -------------------------------------------------------------------------------- /client/public/images/easter-rebellion-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/easter-rebellion-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/easter-rebellion.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/easter-rebellion.gif -------------------------------------------------------------------------------- /client/public/images/equatorial-rhino-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/equatorial-rhino-2.gif -------------------------------------------------------------------------------- /client/public/images/equatorial-rhino-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/equatorial-rhino-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/equatorial-rhino.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/equatorial-rhino.gif -------------------------------------------------------------------------------- /client/public/images/espresso-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/espresso-2.gif -------------------------------------------------------------------------------- /client/public/images/espresso-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/espresso-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/espresso.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/espresso.gif -------------------------------------------------------------------------------- /client/public/images/ethiopian-elephant-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ethiopian-elephant-2.gif -------------------------------------------------------------------------------- /client/public/images/ethiopian-elephant-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ethiopian-elephant-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/ethiopian-elephant.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ethiopian-elephant.gif -------------------------------------------------------------------------------- /client/public/images/ethiopian-rhino-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ethiopian-rhino-2.gif -------------------------------------------------------------------------------- /client/public/images/ethiopian-rhino-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ethiopian-rhino-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/ethiopian-rhino.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ethiopian-rhino.gif -------------------------------------------------------------------------------- /client/public/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/flags.png -------------------------------------------------------------------------------- /client/public/images/gabon-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/gabon-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/gabon-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/gabon-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/gabon-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/gabon-flower.gif -------------------------------------------------------------------------------- /client/public/images/galileo-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/galileo-2.gif -------------------------------------------------------------------------------- /client/public/images/galileo-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/galileo-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/galileo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/galileo.gif -------------------------------------------------------------------------------- /client/public/images/gallic-cock-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/gallic-cock-2.gif -------------------------------------------------------------------------------- /client/public/images/gallic-cock-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/gallic-cock-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/gallic-cock.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/gallic-cock.gif -------------------------------------------------------------------------------- /client/public/images/ghana-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ghana-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/ghana-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ghana-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/ghana-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ghana-flower.gif -------------------------------------------------------------------------------- /client/public/images/guiness-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/guiness-2.gif -------------------------------------------------------------------------------- /client/public/images/guiness-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/guiness-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/guiness.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/guiness.gif -------------------------------------------------------------------------------- /client/public/images/haute-couture-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/haute-couture-2.gif -------------------------------------------------------------------------------- /client/public/images/haute-couture-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/haute-couture-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/haute-couture.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/haute-couture.gif -------------------------------------------------------------------------------- /client/public/images/holly-cat-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/holly-cat-2.gif -------------------------------------------------------------------------------- /client/public/images/holly-cat-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/holly-cat-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/holly-cat.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/holly-cat.gif -------------------------------------------------------------------------------- /client/public/images/home-hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/home-hero.png -------------------------------------------------------------------------------- /client/public/images/hunt-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/hunt-2.gif -------------------------------------------------------------------------------- /client/public/images/hunt-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/hunt-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/hunt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/hunt.gif -------------------------------------------------------------------------------- /client/public/images/ifni-fish-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ifni-fish-2.gif -------------------------------------------------------------------------------- /client/public/images/ifni-fish-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ifni-fish-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/ifni-fish.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/ifni-fish.gif -------------------------------------------------------------------------------- /client/public/images/iris-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/iris-2.gif -------------------------------------------------------------------------------- /client/public/images/iris-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/iris-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/iris.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/iris.gif -------------------------------------------------------------------------------- /client/public/images/irish-coat-of-arms-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/irish-coat-of-arms-2.gif -------------------------------------------------------------------------------- /client/public/images/irish-coat-of-arms-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/irish-coat-of-arms-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/irish-coat-of-arms.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/irish-coat-of-arms.gif -------------------------------------------------------------------------------- /client/public/images/israel-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/israel-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/israel-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/israel-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/israel-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/israel-flower.gif -------------------------------------------------------------------------------- /client/public/images/italia-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italia-2.gif -------------------------------------------------------------------------------- /client/public/images/italia-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italia-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/italia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italia.gif -------------------------------------------------------------------------------- /client/public/images/italian-airmail-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italian-airmail-2.gif -------------------------------------------------------------------------------- /client/public/images/italian-airmail-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italian-airmail-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/italian-airmail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italian-airmail.gif -------------------------------------------------------------------------------- /client/public/images/italy-jesus-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italy-jesus-2.gif -------------------------------------------------------------------------------- /client/public/images/italy-jesus-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italy-jesus-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/italy-jesus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italy-jesus.gif -------------------------------------------------------------------------------- /client/public/images/italy-maria-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italy-maria-2.gif -------------------------------------------------------------------------------- /client/public/images/italy-maria-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italy-maria-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/italy-maria.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/italy-maria.gif -------------------------------------------------------------------------------- /client/public/images/kat-over-new-moon-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/kat-over-new-moon-2.gif -------------------------------------------------------------------------------- /client/public/images/kat-over-new-moon-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/kat-over-new-moon-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/kat-over-new-moon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/kat-over-new-moon.gif -------------------------------------------------------------------------------- /client/public/images/king-salmon-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/king-salmon-2.gif -------------------------------------------------------------------------------- /client/public/images/king-salmon-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/king-salmon-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/king-salmon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/king-salmon.gif -------------------------------------------------------------------------------- /client/public/images/laos-bird-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/laos-bird-2.gif -------------------------------------------------------------------------------- /client/public/images/laos-bird-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/laos-bird-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/laos-bird.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/laos-bird.gif -------------------------------------------------------------------------------- /client/public/images/laotian-elephant-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/laotian-elephant-2.gif -------------------------------------------------------------------------------- /client/public/images/laotian-elephant-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/laotian-elephant-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/laotian-elephant.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/laotian-elephant.gif -------------------------------------------------------------------------------- /client/public/images/liberian-elephant-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/liberian-elephant-2.gif -------------------------------------------------------------------------------- /client/public/images/liberian-elephant-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/liberian-elephant-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/liberian-elephant.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/liberian-elephant.gif -------------------------------------------------------------------------------- /client/public/images/lorraine-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/lorraine-2.gif -------------------------------------------------------------------------------- /client/public/images/lorraine-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/lorraine-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/lorraine.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/lorraine.gif -------------------------------------------------------------------------------- /client/public/images/love-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/love-2.gif -------------------------------------------------------------------------------- /client/public/images/love-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/love-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/love.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/love.gif -------------------------------------------------------------------------------- /client/public/images/madonna-child-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/madonna-child-2.gif -------------------------------------------------------------------------------- /client/public/images/madonna-child-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/madonna-child-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/madonna-child.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/madonna-child.gif -------------------------------------------------------------------------------- /client/public/images/marianne-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/marianne-2.gif -------------------------------------------------------------------------------- /client/public/images/marianne-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/marianne-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/marianne.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/marianne.gif -------------------------------------------------------------------------------- /client/public/images/mazzini-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mazzini-2.gif -------------------------------------------------------------------------------- /client/public/images/mazzini-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mazzini-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/mazzini.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mazzini.gif -------------------------------------------------------------------------------- /client/public/images/men-size-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/men-size-full.png -------------------------------------------------------------------------------- /client/public/images/men.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/men.png -------------------------------------------------------------------------------- /client/public/images/mercury-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mercury-2.gif -------------------------------------------------------------------------------- /client/public/images/mercury-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mercury-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/mercury.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mercury.gif -------------------------------------------------------------------------------- /client/public/images/mistletoe-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mistletoe-2.gif -------------------------------------------------------------------------------- /client/public/images/mistletoe-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mistletoe-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/mistletoe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mistletoe.gif -------------------------------------------------------------------------------- /client/public/images/mockup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mockup.png -------------------------------------------------------------------------------- /client/public/images/mozambique-lion-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mozambique-lion-2.gif -------------------------------------------------------------------------------- /client/public/images/mozambique-lion-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mozambique-lion-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/mozambique-lion.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mozambique-lion.gif -------------------------------------------------------------------------------- /client/public/images/musk-ox-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/musk-ox-2.gif -------------------------------------------------------------------------------- /client/public/images/musk-ox-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/musk-ox-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/musk-ox.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/musk-ox.gif -------------------------------------------------------------------------------- /client/public/images/mustache-monkey-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mustache-monkey-2.gif -------------------------------------------------------------------------------- /client/public/images/mustache-monkey-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mustache-monkey-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/mustache-monkey.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/mustache-monkey.gif -------------------------------------------------------------------------------- /client/public/images/notre-dame-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/notre-dame-2.gif -------------------------------------------------------------------------------- /client/public/images/notre-dame-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/notre-dame-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/notre-dame.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/notre-dame.gif -------------------------------------------------------------------------------- /client/public/images/paris-peace-conference-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/paris-peace-conference-2.gif -------------------------------------------------------------------------------- /client/public/images/paris-peace-conference-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/paris-peace-conference-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/paris-peace-conference.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/paris-peace-conference.gif -------------------------------------------------------------------------------- /client/public/images/peru-llama-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/peru-llama-2.gif -------------------------------------------------------------------------------- /client/public/images/peru-llama-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/peru-llama-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/peru-llama.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/peru-llama.gif -------------------------------------------------------------------------------- /client/public/images/poland-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/poland-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/poland-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/poland-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/poland-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/poland-flower.gif -------------------------------------------------------------------------------- /client/public/images/product_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/product_loading.png -------------------------------------------------------------------------------- /client/public/images/product_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/product_placeholder.png -------------------------------------------------------------------------------- /client/public/images/romania-alsatian-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romania-alsatian-2.gif -------------------------------------------------------------------------------- /client/public/images/romania-alsatian-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romania-alsatian-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/romania-alsatian.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romania-alsatian.gif -------------------------------------------------------------------------------- /client/public/images/romania-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romania-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/romania-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romania-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/romania-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romania-flower.gif -------------------------------------------------------------------------------- /client/public/images/romulus-remus-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romulus-remus-2.gif -------------------------------------------------------------------------------- /client/public/images/romulus-remus-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romulus-remus-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/romulus-remus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/romulus-remus.gif -------------------------------------------------------------------------------- /client/public/images/russia-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/russia-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/russia-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/russia-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/russia-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/russia-flower.gif -------------------------------------------------------------------------------- /client/public/images/sambar-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sambar-2.gif -------------------------------------------------------------------------------- /client/public/images/sambar-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sambar-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/sambar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sambar.gif -------------------------------------------------------------------------------- /client/public/images/san-marino-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/san-marino-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/san-marino-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/san-marino-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/san-marino-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/san-marino-flower.gif -------------------------------------------------------------------------------- /client/public/images/sarah-bernhardt-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sarah-bernhardt-2.gif -------------------------------------------------------------------------------- /client/public/images/sarah-bernhardt-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sarah-bernhardt-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/sarah-bernhardt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sarah-bernhardt.gif -------------------------------------------------------------------------------- /client/public/images/sea-gull-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sea-gull-2.gif -------------------------------------------------------------------------------- /client/public/images/sea-gull-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sea-gull-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/sea-gull.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sea-gull.gif -------------------------------------------------------------------------------- /client/public/images/sidemain-men.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sidemain-men.png -------------------------------------------------------------------------------- /client/public/images/sidemainfull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sidemainfull.png -------------------------------------------------------------------------------- /client/public/images/sidemen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sidemen.png -------------------------------------------------------------------------------- /client/public/images/snow-deer-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/snow-deer-2.gif -------------------------------------------------------------------------------- /client/public/images/snow-deer-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/snow-deer-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/snow-deer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/snow-deer.gif -------------------------------------------------------------------------------- /client/public/images/somali-fish-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/somali-fish-2.gif -------------------------------------------------------------------------------- /client/public/images/somali-fish-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/somali-fish-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/somali-fish.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/somali-fish.gif -------------------------------------------------------------------------------- /client/public/images/somali-ostriches-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/somali-ostriches-2.gif -------------------------------------------------------------------------------- /client/public/images/somali-ostriches-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/somali-ostriches-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/somali-ostriches.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/somali-ostriches.gif -------------------------------------------------------------------------------- /client/public/images/st-francis-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-francis-2.gif -------------------------------------------------------------------------------- /client/public/images/st-francis-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-francis-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/st-francis.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-francis.gif -------------------------------------------------------------------------------- /client/public/images/st-lucia-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-lucia-2.gif -------------------------------------------------------------------------------- /client/public/images/st-lucia-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-lucia-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/st-lucia.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-lucia.gif -------------------------------------------------------------------------------- /client/public/images/st-lucy-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-lucy-2.gif -------------------------------------------------------------------------------- /client/public/images/st-lucy-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-lucy-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/st-lucy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-lucy.gif -------------------------------------------------------------------------------- /client/public/images/st-patrick-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-patrick-2.gif -------------------------------------------------------------------------------- /client/public/images/st-patrick-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-patrick-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/st-patrick.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-patrick.gif -------------------------------------------------------------------------------- /client/public/images/st-peter-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-peter-2.gif -------------------------------------------------------------------------------- /client/public/images/st-peter-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-peter-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/st-peter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/st-peter.gif -------------------------------------------------------------------------------- /client/public/images/success-300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/success-300.png -------------------------------------------------------------------------------- /client/public/images/success-3000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/success-3000.png -------------------------------------------------------------------------------- /client/public/images/suvla-bay-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/suvla-bay-2.gif -------------------------------------------------------------------------------- /client/public/images/suvla-bay-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/suvla-bay-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/suvla-bay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/suvla-bay.gif -------------------------------------------------------------------------------- /client/public/images/swede-santa-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/swede-santa-2.gif -------------------------------------------------------------------------------- /client/public/images/swede-santa-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/swede-santa-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/swede-santa.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/swede-santa.gif -------------------------------------------------------------------------------- /client/public/images/sword-of-light-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sword-of-light-2.gif -------------------------------------------------------------------------------- /client/public/images/sword-of-light-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sword-of-light-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/sword-of-light.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/sword-of-light.gif -------------------------------------------------------------------------------- /client/public/images/tankanyika-giraffe-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/tankanyika-giraffe-2.gif -------------------------------------------------------------------------------- /client/public/images/tankanyika-giraffe-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/tankanyika-giraffe-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/tankanyika-giraffe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/tankanyika-giraffe.gif -------------------------------------------------------------------------------- /client/public/images/the-promise-of-spring-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-promise-of-spring-2.gif -------------------------------------------------------------------------------- /client/public/images/the-promise-of-spring-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-promise-of-spring-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/the-promise-of-spring.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-promise-of-spring.gif -------------------------------------------------------------------------------- /client/public/images/the-rapture-of-psyche-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-rapture-of-psyche-2.gif -------------------------------------------------------------------------------- /client/public/images/the-rapture-of-psyche-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-rapture-of-psyche-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/the-rapture-of-psyche.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-rapture-of-psyche.gif -------------------------------------------------------------------------------- /client/public/images/the-three-wise-men-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-three-wise-men-2.gif -------------------------------------------------------------------------------- /client/public/images/the-three-wise-men-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-three-wise-men-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/the-three-wise-men.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-three-wise-men.gif -------------------------------------------------------------------------------- /client/public/images/the-virgin-mary-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-virgin-mary-2.gif -------------------------------------------------------------------------------- /client/public/images/the-virgin-mary-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-virgin-mary-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/the-virgin-mary.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/the-virgin-mary.gif -------------------------------------------------------------------------------- /client/public/images/thomas-moore-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/thomas-moore-2.gif -------------------------------------------------------------------------------- /client/public/images/thomas-moore-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/thomas-moore-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/thomas-moore.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/thomas-moore.gif -------------------------------------------------------------------------------- /client/public/images/thrilling-love-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/thrilling-love-2.gif -------------------------------------------------------------------------------- /client/public/images/thrilling-love-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/thrilling-love-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/thrilling-love.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/thrilling-love.gif -------------------------------------------------------------------------------- /client/public/images/torch-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/torch-2.gif -------------------------------------------------------------------------------- /client/public/images/torch-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/torch-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/torch.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/torch.gif -------------------------------------------------------------------------------- /client/public/images/trout-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/trout-2.gif -------------------------------------------------------------------------------- /client/public/images/trout-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/trout-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/trout.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/trout.gif -------------------------------------------------------------------------------- /client/public/images/uruguay-flower-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/uruguay-flower-2.gif -------------------------------------------------------------------------------- /client/public/images/uruguay-flower-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/uruguay-flower-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/uruguay-flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/uruguay-flower.gif -------------------------------------------------------------------------------- /client/public/images/visit-the-zoo-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/visit-the-zoo-2.gif -------------------------------------------------------------------------------- /client/public/images/visit-the-zoo-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/visit-the-zoo-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/visit-the-zoo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/visit-the-zoo.gif -------------------------------------------------------------------------------- /client/public/images/weather-vane-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/weather-vane-2.gif -------------------------------------------------------------------------------- /client/public/images/weather-vane-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/weather-vane-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/weather-vane.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/weather-vane.gif -------------------------------------------------------------------------------- /client/public/images/wow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/wow.png -------------------------------------------------------------------------------- /client/public/images/wreath-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/wreath-2.gif -------------------------------------------------------------------------------- /client/public/images/wreath-thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/wreath-thumbnail.gif -------------------------------------------------------------------------------- /client/public/images/wreath.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/public/images/wreath.gif -------------------------------------------------------------------------------- /client/src/api/compose.js: -------------------------------------------------------------------------------- 1 | export default function compose(...funcs) { 2 | return funcs.reduce((a, b) => (...args) => a(b(...args)), arg => arg); 3 | } 4 | -------------------------------------------------------------------------------- /client/src/assets/fonts/Flaticon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/assets/fonts/Flaticon.eot -------------------------------------------------------------------------------- /client/src/assets/fonts/Flaticon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/assets/fonts/Flaticon.ttf -------------------------------------------------------------------------------- /client/src/assets/fonts/Flaticon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/assets/fonts/Flaticon.woff -------------------------------------------------------------------------------- /client/src/components/addressForm/index.ts: -------------------------------------------------------------------------------- 1 | import AddressFormComponent from './AddressFormComponent' 2 | export default AddressFormComponent 3 | -------------------------------------------------------------------------------- /client/src/components/appBar/IAppBarComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IAppBarComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * all properties 9 | */ 10 | props?: any 11 | 12 | } 13 | -------------------------------------------------------------------------------- /client/src/components/appBar/IAppBarComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IAppBarComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/appBar/index.ts: -------------------------------------------------------------------------------- 1 | import AppBarComponent from './AppBarComponent' 2 | export default AppBarComponent 3 | -------------------------------------------------------------------------------- /client/src/components/appFooter/IAppFooterComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IAppFooterComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * Redirect to {url} route 9 | * 10 | * @memberof IAppFooterComponentProps 11 | */ 12 | goTo?: (url: string) => any 13 | 14 | /** 15 | * Translate to locale string 16 | */ 17 | translate?: (state: any) => any 18 | 19 | } 20 | -------------------------------------------------------------------------------- /client/src/components/appFooter/IAppFooterComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IAppFooterComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/appFooter/index.ts: -------------------------------------------------------------------------------- 1 | import AppFooterComponent from './AppFooterComponent' 2 | export default AppFooterComponent 3 | -------------------------------------------------------------------------------- /client/src/components/editProfile/index.ts: -------------------------------------------------------------------------------- 1 | import EditProfileComponent from './EditProfileComponent' 2 | export default EditProfileComponent 3 | -------------------------------------------------------------------------------- /client/src/components/finish/IFinishComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IFinishComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * Redirect to {url} route 9 | * 10 | * @memberof IProductComponentProps 11 | */ 12 | goTo?: (url: string) => any 13 | 14 | /** 15 | * On edit profile dialog close event 16 | * 17 | * @memberof IReviewComponentProps 18 | */ 19 | update?: (value: number) => void 20 | 21 | } 22 | -------------------------------------------------------------------------------- /client/src/components/finish/IFinishComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IFinishComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/finish/index.ts: -------------------------------------------------------------------------------- 1 | import FinishComponent from './FinishComponent' 2 | export default FinishComponent 3 | -------------------------------------------------------------------------------- /client/src/components/formButton/IFormButtonComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IFormButtonComponentState { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /client/src/components/formButton/index.ts: -------------------------------------------------------------------------------- 1 | import FormButtonComponent from './FormButtonComponent' 2 | export default FormButtonComponent 3 | -------------------------------------------------------------------------------- /client/src/components/homeHeader/index.ts: -------------------------------------------------------------------------------- 1 | import HomeHeaderComponent from './HomeHeaderComponent' 2 | export default HomeHeaderComponent 3 | -------------------------------------------------------------------------------- /client/src/components/imageGallery/IImageGalleryComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IImageGalleryComponentState { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /client/src/components/imageGallery/index.ts: -------------------------------------------------------------------------------- 1 | import ImageGalleryComponent from './ImageGalleryComponent' 2 | export default ImageGalleryComponent 3 | -------------------------------------------------------------------------------- /client/src/components/img/IImgComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IImgComponentProps { 2 | 3 | /** 4 | * Image file name 5 | * 6 | * @type {string} 7 | * @memberof IImgComponentProps 8 | */ 9 | fileName: string 10 | 11 | /** 12 | * Image style sheet 13 | * 14 | * @type {{}} 15 | * @memberof IImgComponentProps 16 | */ 17 | style?: {} 18 | 19 | /** 20 | * Styles 21 | */ 22 | classes?: any 23 | 24 | /** 25 | * Translate to locale string 26 | */ 27 | translate?: (state: any) => any 28 | 29 | } 30 | -------------------------------------------------------------------------------- /client/src/components/img/IImgComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IImgComponentState { 3 | 4 | /** 5 | * Image is loaded {true} or not {false} 6 | * 7 | * @type {boolean} 8 | * @memberof IImgComponentProps 9 | */ 10 | isImageLoaded?: boolean 11 | } 12 | -------------------------------------------------------------------------------- /client/src/components/img/index.ts: -------------------------------------------------------------------------------- 1 | import ImgComponent from './ImgComponent' 2 | export default ImgComponent 3 | -------------------------------------------------------------------------------- /client/src/components/imgCover/IImgCoverComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IImgCoverComponentState { 3 | 4 | /** 5 | * Image is loaded {true} or not {false} 6 | * 7 | * @type {boolean} 8 | * @memberof IImgCoverComponentProps 9 | */ 10 | isImageLoaded: boolean 11 | 12 | } 13 | -------------------------------------------------------------------------------- /client/src/components/imgCover/index.ts: -------------------------------------------------------------------------------- 1 | import ImgCoverComponent from './ImgCoverComponent' 2 | export default ImgCoverComponent 3 | -------------------------------------------------------------------------------- /client/src/components/layoutBody/ILayoutBodyComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface ILayoutBodyComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/layoutBody/index.ts: -------------------------------------------------------------------------------- 1 | import LayoutBodyComponent from './LayoutBodyComponent' 2 | export default LayoutBodyComponent 3 | -------------------------------------------------------------------------------- /client/src/components/masterLoading/IMasterLoadingComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IMasterLoadingComponentProps { 2 | error?: boolean 3 | timedOut?: boolean 4 | pastDelay?: boolean 5 | } 6 | -------------------------------------------------------------------------------- /client/src/components/masterLoading/IMasterLoadingComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IMasterLoadingComponentState { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /client/src/components/masterLoading/index.ts: -------------------------------------------------------------------------------- 1 | import MasterLoadingComponent from './MasterLoadingComponent' 2 | export default MasterLoadingComponent 3 | -------------------------------------------------------------------------------- /client/src/components/newsLetter/INewsLetterComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface INewsLetterComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * Children of the class 9 | */ 10 | children?: any 11 | 12 | /** 13 | * Display error 14 | * 15 | * @memberof INewsLetterComponentState 16 | */ 17 | showError?: (message: string) => any 18 | 19 | /** 20 | * Translate to locale string 21 | */ 22 | translate?: (state: any) => any 23 | } 24 | -------------------------------------------------------------------------------- /client/src/components/newsLetter/INewsLetterComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface INewsLetterComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/newsLetter/index.ts: -------------------------------------------------------------------------------- 1 | import NewsLetterComponent from './NewsLetterComponent' 2 | export default NewsLetterComponent 3 | -------------------------------------------------------------------------------- /client/src/components/paymentForm/IPaymentFormComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IPaymentFormComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * Translate to locale string 9 | */ 10 | translate?: (state: any, param?: {}) => any 11 | 12 | } 13 | -------------------------------------------------------------------------------- /client/src/components/paymentForm/IPaymentFormComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IPaymentFormComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/paymentForm/index.ts: -------------------------------------------------------------------------------- 1 | import PaymentFormComponent from './PaymentFormComponent' 2 | export default PaymentFormComponent 3 | -------------------------------------------------------------------------------- /client/src/components/product/IProductComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IProductComponentState { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /client/src/components/product/index.ts: -------------------------------------------------------------------------------- 1 | import ProductComponent from './ProductComponent' 2 | export default ProductComponent 3 | -------------------------------------------------------------------------------- /client/src/components/productDetail/index.ts: -------------------------------------------------------------------------------- 1 | import ProductDetailComponent from './ProductDetailComponent' 2 | export default ProductDetailComponent 3 | -------------------------------------------------------------------------------- /client/src/components/productHero/IProductHeroComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IProductHeroComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * background image properties 9 | */ 10 | backgroundImage?: string 11 | 12 | /** 13 | * Redirect to {url} route 14 | * 15 | * @memberof IProductHeroComponentProps 16 | */ 17 | goTo?: (url: string) => any 18 | 19 | } 20 | -------------------------------------------------------------------------------- /client/src/components/productHero/IProductHeroComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IProductHeroComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/productHero/index.ts: -------------------------------------------------------------------------------- 1 | import ProductHeroComponent from './ProductHeroComponent' 2 | export default ProductHeroComponent 3 | -------------------------------------------------------------------------------- /client/src/components/productHeroLayout/IProductHeroLayoutComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IProductHeroLayoutComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * Children of the class 9 | */ 10 | children?: any 11 | /** 12 | * background image properties 13 | */ 14 | backgroundClassName?: string 15 | } 16 | -------------------------------------------------------------------------------- /client/src/components/productHeroLayout/IProductHeroLayoutComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IProductHeroLayoutComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/productHeroLayout/index.ts: -------------------------------------------------------------------------------- 1 | import ProductHeroLayoutComponent from './ProductHeroLayoutComponent' 2 | export default ProductHeroLayoutComponent 3 | -------------------------------------------------------------------------------- /client/src/components/productHowItWorks/IProductHowItWorksComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IProductHowItWorksComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * Children of the class 9 | */ 10 | children?: any 11 | 12 | /** 13 | * Redirect to {url} route 14 | * 15 | * @memberof IProductHowItWorksComponentProps 16 | */ 17 | goTo?: (url: string) => any 18 | } 19 | -------------------------------------------------------------------------------- /client/src/components/productHowItWorks/IProductHowItWorksComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IProductHowItWorksComponentState { 2 | } 3 | -------------------------------------------------------------------------------- /client/src/components/productHowItWorks/index.ts: -------------------------------------------------------------------------------- 1 | import ProductHowItWorksComponent from './ProductHowItWorksComponent' 2 | export default ProductHowItWorksComponent 3 | -------------------------------------------------------------------------------- /client/src/components/profileHeader/IProfileHeaderComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IProfileHeaderComponentState { 3 | 4 | /** 5 | * Window size is small {true} or not {false} 6 | * 7 | * @type {boolean} 8 | * @memberof IProfileHeaderComponentState 9 | */ 10 | isSmall: boolean 11 | } 12 | -------------------------------------------------------------------------------- /client/src/components/profileHeader/index.ts: -------------------------------------------------------------------------------- 1 | import ProfileHeaderComponent from './ProfileHeaderComponent' 2 | export default ProfileHeaderComponent 3 | -------------------------------------------------------------------------------- /client/src/components/review/IReviewComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IReviewComponentState { 2 | /** 3 | * subtotal of the cart products 4 | * @type {number} 5 | * @memberof IReviewComponentState 6 | */ 7 | subtotalofcart?: number 8 | 9 | /** 10 | * Grandtotal of the cart products 11 | * @type {number} 12 | * @memberof IReviewComponentState 13 | */ 14 | grandtotalofcart?: number 15 | } 16 | -------------------------------------------------------------------------------- /client/src/components/review/index.ts: -------------------------------------------------------------------------------- 1 | import ReviewComponent from './ReviewComponent' 2 | export default ReviewComponent 3 | -------------------------------------------------------------------------------- /client/src/components/sidebar/ISidebarComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface ISidebarComponentProps { 2 | 3 | /** 4 | * Change sidebar status 5 | * 6 | * @type {boolean} 7 | * @memberof ISidebarComponentProps 8 | */ 9 | status: (status: boolean) => void 10 | 11 | /** 12 | * Change sidebar overlay status 13 | * 14 | * @memberof ISidebarComponentProps 15 | */ 16 | overlay: (status: boolean) => void 17 | 18 | /** 19 | * Open sidebar callback function 20 | * 21 | * @memberof ISidebarComponentProps 22 | */ 23 | open: (openCallback: (status: boolean, source: string) => void ) => void 24 | } 25 | -------------------------------------------------------------------------------- /client/src/components/sidebar/ISidebarComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface ISidebarComponentState { 3 | 4 | sidebarClass?: string 5 | overlay?: boolean 6 | mainStyle?: {} 7 | // Is sidebar open or not 8 | open?: boolean 9 | // If sidebar is closed by resizing or not 10 | auto?: boolean 11 | // If overlay should be open or not 12 | overlayOpen?: boolean 13 | // If side bar should be closed 14 | shouldBeClosed?: boolean 15 | 16 | /** 17 | * Sidebar style sheet 18 | * 19 | * @type {{}} 20 | * @memberof ISidebarComponentState 21 | */ 22 | sidebarStyle?: {} 23 | } 24 | -------------------------------------------------------------------------------- /client/src/components/sidebar/index.ts: -------------------------------------------------------------------------------- 1 | import SidebarComponent from './SidebarComponent' 2 | export default SidebarComponent 3 | -------------------------------------------------------------------------------- /client/src/components/sidebarContent/ISidebarContentComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface ISidebarContentComponentState { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /client/src/components/sidebarContent/index.ts: -------------------------------------------------------------------------------- 1 | import SidebarContentComponent from './SidebarContentComponent' 2 | export default SidebarContentComponent 3 | -------------------------------------------------------------------------------- /client/src/components/sidebarMain/ISidebarMainComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface ISidebarMainComponentProps { 2 | 3 | /** 4 | * Main sidebar style 5 | * 6 | * @type {{}} 7 | * @memberof ISidebarMainComponentProps 8 | */ 9 | cstyle?: {} 10 | } 11 | -------------------------------------------------------------------------------- /client/src/components/sidebarMain/ISidebarMainComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface ISidebarMainComponentState { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /client/src/components/sidebarMain/index.ts: -------------------------------------------------------------------------------- 1 | import SidebarMainComponent from './SidebarMainComponent' 2 | export default SidebarMainComponent 3 | -------------------------------------------------------------------------------- /client/src/components/toolbar/IToolBarComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IToolBarComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * all properties 9 | */ 10 | props?: any 11 | 12 | /** 13 | * custom class 14 | */ 15 | className?: any 16 | } 17 | -------------------------------------------------------------------------------- /client/src/components/toolbar/IToolBarComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IToolBarComponentState { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | } 8 | -------------------------------------------------------------------------------- /client/src/components/toolbar/index.ts: -------------------------------------------------------------------------------- 1 | import ToolBarComponent from './ToolBarComponent' 2 | export default ToolBarComponent 3 | -------------------------------------------------------------------------------- /client/src/components/topAppBar/index.ts: -------------------------------------------------------------------------------- 1 | import TopAppBarComponent from './TopAppBarComponent' 2 | export default TopAppBarComponent 3 | -------------------------------------------------------------------------------- /client/src/components/typography/ITypographyComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface ITypographyComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/components/typography/index.ts: -------------------------------------------------------------------------------- 1 | import TypographyComponent from './TypographyComponent' 2 | export default TypographyComponent 3 | -------------------------------------------------------------------------------- /client/src/components/userAvatar/IUserAvatarComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IUserAvatarComponentProps { 2 | 3 | /** 4 | * Use for getting url address from server 5 | */ 6 | fileName: string 7 | /** 8 | * User full name 9 | */ 10 | fullName: string 11 | /** 12 | * Avatar style 13 | */ 14 | style?: {} 15 | /** 16 | * Avatar size 17 | */ 18 | size?: number 19 | /** 20 | * Trigger on touch tap 21 | */ 22 | onClick?: (event: any) => any 23 | } 24 | -------------------------------------------------------------------------------- /client/src/components/userAvatar/IUserAvatarComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IUserAvatarComponentState { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /client/src/components/userAvatar/index.ts: -------------------------------------------------------------------------------- 1 | import UserAvatarComponent from './UserAvatarComponent' 2 | export default UserAvatarComponent 3 | -------------------------------------------------------------------------------- /client/src/config/index.ts: -------------------------------------------------------------------------------- 1 | 2 | import {environment as prod } from './environment.prod' 3 | import {environment as dev } from './environment.dev' 4 | 5 | const config = { 6 | // Add common config values here 7 | } 8 | 9 | const configEnv = process.env.NODE_ENV === 'production' 10 | ? prod 11 | : dev 12 | 13 | export default { 14 | // Add common config values here 15 | ...config, 16 | ...configEnv 17 | } 18 | -------------------------------------------------------------------------------- /client/src/constants/addToCartActionType.ts: -------------------------------------------------------------------------------- 1 | export enum AddToCartActionType { 2 | CLEAR_ALL_DATA_CART= 'CLEAR_ALL_DATA_CART', 3 | PRODUCT_TO_CART = 'PRODUCT_TO_CART', 4 | ORDER_TO_CART = 'ORDER_TO_CART', 5 | UPDATE_PRODUCT_TO_CART = 'UPDATE_PRODUCT_TO_CART', 6 | REMOVE_PRODUCT_FROM_CART = 'REMOVE_PRODUCT_FROM_CART' 7 | } 8 | -------------------------------------------------------------------------------- /client/src/constants/authorizeActionType.ts: -------------------------------------------------------------------------------- 1 | export enum AuthorizeActionType { 2 | 3 | LOGIN = 'LOGIN', 4 | LOGOUT = 'LOGOUT', 5 | SIGNUP = 'SIGNUP', 6 | UPDATE_PASSWORD = 'UPDATE_PASSWORD' 7 | } 8 | -------------------------------------------------------------------------------- /client/src/constants/checkoutActionType.ts: -------------------------------------------------------------------------------- 1 | export enum CheckoutActionType { 2 | CLEAR_ALL_DATA_CHECKOUT= 'CLEAR_ALL_DATA_CHECKOUT', 3 | ACTIVE_STEP = 'ACTIVE_STEP' 4 | } 5 | -------------------------------------------------------------------------------- /client/src/constants/imageGalleryActionType.ts: -------------------------------------------------------------------------------- 1 | export enum ImageGalleryActionType { 2 | 3 | ADD_IMAGE_GALLERY = 'ADD_IMAGE_GALLERY', 4 | ADD_IMAGE_LIST_GALLERY = 'ADD_IMAGES_LIST_GALLERY', 5 | CLEAT_ALL_DATA_IMAGE_GALLERY = 'CLEAT_ALL_DATA_IMAGE_GALLERY', 6 | DELETE_IMAGE = 'DELETE_IMAGE', 7 | SET_IMAGE_URL = 'SET_IMAGE_URL', 8 | SEND_IMAGE_REQUEST = 'SEND_IMAGE_REQUEST' 9 | } -------------------------------------------------------------------------------- /client/src/constants/serverActionType.ts: -------------------------------------------------------------------------------- 1 | export enum ServerActionType { 2 | 3 | ADD_REQUEST = 'ADD_REQUEST', 4 | DELETE_REQUEST = 'DELETE_REQUEST', 5 | ERROR_REQUEST = 'ERROR_REQUEST', 6 | OK_REQUEST = 'OK_REQUEST', 7 | CLEAR_ALL_DATA_REQUEST = 'CLEAR_ALL_DATA_REQUEST' 8 | } -------------------------------------------------------------------------------- /client/src/constants/serverRequestType.ts: -------------------------------------------------------------------------------- 1 | export enum ServerRequestType { 2 | CircleAddToCircle = 'CircleAddToCircle', 3 | CircleFollowUser = 'CircleFollowUser', 4 | CircleCreateTieUser = 'CircleCreateTieUser', 5 | CircleDeleteFollowingUser = 'CircleDeleteFollowingUser', 6 | CommonSendFeedback = 'CommonSendFeedback', 7 | CommentGetComments = 'CommentGetComments' 8 | 9 | } 10 | -------------------------------------------------------------------------------- /client/src/constants/userActionType.ts: -------------------------------------------------------------------------------- 1 | export enum UserActionType { 2 | 3 | ADD_USERS = 'ADD_USERS', 4 | ADD_USER_INFO = 'ADD_USER_INFO', 5 | UPDATE_USER_INFO = 'UPDATE_USER_INFO', 6 | USER_INFO = 'USER_INFO', 7 | CLEAR_ALL_DATA_USER = 'CLEAR_ALL_DATA_USER', 8 | OPEN_EDIT_PROFILE = 'OPEN_EDIT_PROFILE', 9 | CLOSE_EDIT_PROFILE = 'CLOSE_EDIT_PROFILE', 10 | ADD_PEOPLE_INFO = 'ADD_PEOPLE_INFO', 11 | HAS_MORE_DATA_PEOPLE = 'HAS_MORE_DATA_PEOPLE', 12 | NOT_MORE_DATA_PEOPLE = 'NOT_MORE_DATA_PEOPLE', 13 | REQUEST_PAGE_PEOPLE = 'REQUEST_PAGE_PEOPLE', 14 | LAST_USER_PEOPLE = 'LAST_POST_PEOPLE' 15 | } 16 | -------------------------------------------------------------------------------- /client/src/containers/addToCart/IAddToCartComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IAddToCartComponentState { 2 | /** 3 | * product Quentity 4 | */ 5 | quantity: number 6 | 7 | /** 8 | * show value 9 | */ 10 | show: boolean 11 | 12 | /** 13 | * max Quentity 14 | */ 15 | max: number 16 | 17 | /** 18 | * min Quentity 19 | */ 20 | min: number 21 | 22 | /** 23 | * min Quentity 24 | */ 25 | closecart?: boolean 26 | } 27 | -------------------------------------------------------------------------------- /client/src/containers/addToCart/index.ts: -------------------------------------------------------------------------------- 1 | import AddToCartComponent from './AddToCartComponent' 2 | export default AddToCartComponent 3 | -------------------------------------------------------------------------------- /client/src/containers/appForm/IAppFormComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IAppFormComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | 7 | /** 8 | * Children of the class 9 | */ 10 | children?: any 11 | } 12 | -------------------------------------------------------------------------------- /client/src/containers/appForm/IAppFormComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IAppFormComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/containers/appForm/index.ts: -------------------------------------------------------------------------------- 1 | import AppFormComponent from './AppFormComponent' 2 | export default AppFormComponent 3 | -------------------------------------------------------------------------------- /client/src/containers/checkout/ICheckoutComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface ICheckoutComponentState { 3 | 4 | /** 5 | * Active step of checkout process 6 | */ 7 | activeStep: number 8 | } 9 | -------------------------------------------------------------------------------- /client/src/containers/checkout/index.ts: -------------------------------------------------------------------------------- 1 | import CheckoutComponent from './CheckoutComponent' 2 | export default CheckoutComponent 3 | -------------------------------------------------------------------------------- /client/src/containers/home/IHomeComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IHomeComponentState { 3 | 4 | /** 5 | * Whether drawer is open 6 | */ 7 | drawerOpen: boolean 8 | } 9 | -------------------------------------------------------------------------------- /client/src/containers/home/index.ts: -------------------------------------------------------------------------------- 1 | import HomeComponent from './HomeComponent' 2 | export default HomeComponent 3 | -------------------------------------------------------------------------------- /client/src/containers/homeSections/IHomeSectionsComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IHomeSectionsComponentProps { 2 | /** 3 | * Styles 4 | */ 5 | classes?: any 6 | } 7 | -------------------------------------------------------------------------------- /client/src/containers/homeSections/IHomeSectionsComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IHomeSectionsComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/containers/homeSections/index.ts: -------------------------------------------------------------------------------- 1 | import HomeSectionsComponent from './HomeSectionsComponent' 2 | export default HomeSectionsComponent 3 | -------------------------------------------------------------------------------- /client/src/containers/login/ILoginComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface ILoginComponentState { 3 | 4 | [key: string]: any 5 | 6 | /** 7 | * Email input value 8 | */ 9 | emailInput: string 10 | 11 | /** 12 | * Email input error text 13 | */ 14 | emailInputError: string 15 | 16 | /** 17 | * Password input value 18 | */ 19 | passwordInput: string 20 | 21 | /** 22 | * Password input error text 23 | */ 24 | passwordInputError: string 25 | 26 | /** 27 | * Confirm input error text 28 | */ 29 | confirmInputError: string 30 | /** 31 | * Remember checkbox value 32 | */ 33 | remember: boolean 34 | } 35 | -------------------------------------------------------------------------------- /client/src/containers/login/index.ts: -------------------------------------------------------------------------------- 1 | import LoginComponent from './LoginComponent' 2 | export default LoginComponent 3 | -------------------------------------------------------------------------------- /client/src/containers/master/index.ts: -------------------------------------------------------------------------------- 1 | import MasterComponent from './MasterComponent' 2 | export default MasterComponent 3 | -------------------------------------------------------------------------------- /client/src/containers/productDetails/index.ts: -------------------------------------------------------------------------------- 1 | import ProductsList from './ProductDetailsComponent' 2 | export default ProductsList -------------------------------------------------------------------------------- /client/src/containers/products/IProductsComponentState.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface IProductsComponentState { 3 | 4 | [key: string]: any 5 | 6 | /** 7 | * Email input value 8 | */ 9 | emailInput: string 10 | 11 | /** 12 | * Email input error text 13 | */ 14 | emailInputError: string 15 | 16 | /** 17 | * Password input value 18 | */ 19 | passwordInput: string 20 | 21 | /** 22 | * Password input error text 23 | */ 24 | passwordInputError: string 25 | 26 | /** 27 | * Confirm input error text 28 | */ 29 | confirmInputError: string 30 | 31 | exampleItems: any 32 | } 33 | -------------------------------------------------------------------------------- /client/src/containers/products/index.ts: -------------------------------------------------------------------------------- 1 | import ProductsList from './ProductsComponent' 2 | export default ProductsList -------------------------------------------------------------------------------- /client/src/containers/signup/index.ts: -------------------------------------------------------------------------------- 1 | import SignupComponent from './SignupComponent' 2 | export default SignupComponent 3 | -------------------------------------------------------------------------------- /client/src/core/domain/authorize/index.ts: -------------------------------------------------------------------------------- 1 | import { OAuthType } from './oauthType' 2 | import { LoginUser } from './loginUser' 3 | import { RegisterUserResult } from './registerUserResult' 4 | 5 | export { 6 | LoginUser, 7 | RegisterUserResult, 8 | OAuthType 9 | } 10 | -------------------------------------------------------------------------------- /client/src/core/domain/authorize/oauthType.ts: -------------------------------------------------------------------------------- 1 | export enum OAuthType { 2 | GITHUB = 'GITHUB', 3 | FACEBOOK = 'FACEBOOK', 4 | GOOGLE = 'GOOGLE' 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/domain/cart/index.ts: -------------------------------------------------------------------------------- 1 | import {Cart} from './cart' 2 | import {Order} from './order' 3 | 4 | export { 5 | Cart, 6 | Order 7 | } 8 | -------------------------------------------------------------------------------- /client/src/core/domain/comments/index.ts: -------------------------------------------------------------------------------- 1 | import {Comment} from './comment' 2 | 3 | export { 4 | Comment 5 | } -------------------------------------------------------------------------------- /client/src/core/domain/common/baseDomain.ts: -------------------------------------------------------------------------------- 1 | 2 | export class BaseDomain { 3 | 4 | } -------------------------------------------------------------------------------- /client/src/core/domain/common/feed.ts: -------------------------------------------------------------------------------- 1 | import { BaseDomain } from 'core/domain/common' 2 | import { FeedType } from './feedType' 3 | import { User } from 'core/domain/users' 4 | 5 | export class Feed { 6 | 7 | /** 8 | * Constructor 9 | */ 10 | constructor ( 11 | /** 12 | * Feed identifier 13 | */ 14 | public id?: string, 15 | 16 | /** 17 | * Feed text 18 | */ 19 | public text?: string, 20 | 21 | /** 22 | * Feed type 23 | */ 24 | public feedType?: FeedType, 25 | 26 | /** 27 | * The user who send the feedback 28 | */ 29 | public user?: User 30 | 31 | ) { 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /client/src/core/domain/common/feedType.ts: -------------------------------------------------------------------------------- 1 | export enum FeedType { 2 | Awesome = 'Awesome', 3 | Happy = 'Happy', 4 | Acceptable = 'Acceptable', 5 | Sad = 'Sad', 6 | Bug = 'Bug' 7 | 8 | } 9 | -------------------------------------------------------------------------------- /client/src/core/domain/common/index.ts: -------------------------------------------------------------------------------- 1 | import { SocialError } from './socialError' 2 | import { BaseDomain } from './baseDomain' 3 | import { Feed } from './feed' 4 | 5 | export { 6 | SocialError, 7 | BaseDomain, 8 | Feed 9 | } 10 | -------------------------------------------------------------------------------- /client/src/core/domain/imageGallery/index.ts: -------------------------------------------------------------------------------- 1 | import { Image } from './image' 2 | 3 | export { 4 | Image 5 | } -------------------------------------------------------------------------------- /client/src/core/domain/products/index.ts: -------------------------------------------------------------------------------- 1 | import {Product} from './product' 2 | 3 | export { 4 | Product 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/domain/shippings/index.ts: -------------------------------------------------------------------------------- 1 | import {ShippingRegion} from './shippingRegion' 2 | import {ShippingAddress} from './shippingAddress' 3 | import {ShippingRates} from './shippingRates' 4 | 5 | export { 6 | ShippingRegion, 7 | ShippingAddress, 8 | ShippingRates 9 | } 10 | -------------------------------------------------------------------------------- /client/src/core/domain/shippings/shippingRegion.ts: -------------------------------------------------------------------------------- 1 | import { BaseDomain } from 'core/domain/common' 2 | export class ShippingRegion extends BaseDomain { 3 | 4 | /** 5 | * ShippingRegion identifier 6 | * 7 | * @type {number} 8 | * @memberof ShippingRegion 9 | */ 10 | public shippingRegionId?: number | null 11 | 12 | /** 13 | * The text of shippingRegion 14 | * 15 | * @type {string} 16 | * @memberof ShippingRegion 17 | */ 18 | public shippingRegion?: string 19 | 20 | } 21 | -------------------------------------------------------------------------------- /client/src/core/domain/users/index.ts: -------------------------------------------------------------------------------- 1 | import { User } from './user' 2 | import { Profile } from './profile' 3 | import { UserProvider } from './userProvider' 4 | 5 | export { 6 | User, 7 | Profile, 8 | UserProvider 9 | } 10 | -------------------------------------------------------------------------------- /client/src/core/domain/users/userProvider.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * User provide data 3 | * 4 | * @export 5 | * @class UserProvider 6 | */ 7 | export class UserProvider { 8 | 9 | constructor ( 10 | public userId: string, 11 | public email: string, 12 | public fullName: string, 13 | public address: string, 14 | public city: string, 15 | public state: string, 16 | public zip: string, 17 | public region: string, 18 | public avatar: string, 19 | public providerId: string, 20 | public provider: string, 21 | public accessToken: string 22 | ) {} 23 | } 24 | -------------------------------------------------------------------------------- /client/src/core/environment.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | appName : 'React Ecommerce' 3 | } 4 | -------------------------------------------------------------------------------- /client/src/core/factories/index.ts: -------------------------------------------------------------------------------- 1 | import { IServiceProvider } from './IServiceProvider' 2 | import { ServiceProvide } from './serviceProvide' 3 | 4 | export { 5 | IServiceProvider, 6 | ServiceProvide 7 | } 8 | -------------------------------------------------------------------------------- /client/src/core/services/authorize/index.ts: -------------------------------------------------------------------------------- 1 | import { IAuthorizeService } from './IAuthorizeService' 2 | 3 | export { 4 | IAuthorizeService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/services/cart/ICartService.ts: -------------------------------------------------------------------------------- 1 | import { Cart } from 'core/domain/cart' 2 | import { Order } from 'core/domain/cart' 3 | 4 | /** 5 | * Cart service interface 6 | * 7 | * @export 8 | * @interface ICartService 9 | */ 10 | export interface ICartService { 11 | /** 12 | * @returns {Promise} 13 | */ 14 | addCartItem: (cartId: string, cart: Cart) => Promise 15 | 16 | addOrder: (order: Order) => Promise 17 | 18 | updateOrder: (orderId: string, order: Order) => Promise 19 | 20 | updateCartItem: (itemId: string, cartId: string, cart: Cart) => Promise 21 | 22 | } 23 | -------------------------------------------------------------------------------- /client/src/core/services/cart/index.ts: -------------------------------------------------------------------------------- 1 | import { ICartService } from './ICartService' 2 | 3 | export { 4 | ICartService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/services/common/ICommonService.ts: -------------------------------------------------------------------------------- 1 | import { User } from 'core/domain/users' 2 | import { Feed } from 'core/domain/common' 3 | 4 | /** 5 | * Common service interface 6 | * 7 | * @export 8 | * @interface ICommonService 9 | */ 10 | export interface ICommonService { 11 | 12 | /** 13 | * Post feedback 14 | */ 15 | addFeed: (feed: Feed) => Promise 16 | } 17 | -------------------------------------------------------------------------------- /client/src/core/services/common/index.ts: -------------------------------------------------------------------------------- 1 | import { ICommonService } from './ICommonService' 2 | 3 | export { 4 | ICommonService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/services/files/IStorageService.ts: -------------------------------------------------------------------------------- 1 | import { FileResult } from 'models/files/fileResult' 2 | 3 | export interface IStorageService { 4 | 5 | /** 6 | * Storage file service 7 | * 8 | * @memberof IStorageService 9 | */ 10 | uploadFile: (file: any, fileName: string, progress: (percentage: number, status: boolean) => void) => Promise 11 | } 12 | -------------------------------------------------------------------------------- /client/src/core/services/files/index.ts: -------------------------------------------------------------------------------- 1 | import { IStorageService } from './IStorageService' 2 | 3 | export { 4 | IStorageService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/services/imageGallery/index.ts: -------------------------------------------------------------------------------- 1 | import { IImageGalleryService } from './IImageGalleryService' 2 | 3 | export { 4 | IImageGalleryService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/services/index.ts: -------------------------------------------------------------------------------- 1 | import { IAuthorizeService } from './authorize' 2 | import { ICommonService } from './common' 3 | import { IImageGalleryService } from './imageGallery' 4 | import { IUserService } from './users' 5 | import { IStorageService } from './files' 6 | import { IProductService } from './products' 7 | import { IShippingService } from './shippings' 8 | 9 | export { 10 | IAuthorizeService, 11 | ICommonService, 12 | IImageGalleryService, 13 | IUserService, 14 | IStorageService, 15 | IProductService, 16 | IShippingService 17 | } 18 | -------------------------------------------------------------------------------- /client/src/core/services/products/index.ts: -------------------------------------------------------------------------------- 1 | import { IProductService } from './IProductService' 2 | 3 | export { 4 | IProductService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/services/shippings/index.ts: -------------------------------------------------------------------------------- 1 | import { IShippingService } from './IShippingService' 2 | 3 | export { 4 | IShippingService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/services/users/IUserService.ts: -------------------------------------------------------------------------------- 1 | import { User, Profile } from 'core/domain/users' 2 | 3 | /** 4 | * User service interface 5 | * 6 | * @export 7 | * @interface IUserService 8 | */ 9 | export interface IUserService { 10 | getUserProfile: (userId: string) => Promise 11 | updateUserProfile: (userId: string, profile: Profile) => Promise 12 | getUsersProfile: (userId: string, lastUserId?: string, page?: number, limit?: number) 13 | => Promise<{ users: { [userId: string]: Profile }[], newLastUserId: string }> 14 | } 15 | -------------------------------------------------------------------------------- /client/src/core/services/users/index.ts: -------------------------------------------------------------------------------- 1 | import { IUserService } from './IUserService' 2 | 3 | export { 4 | IUserService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/core/socialProviderTypes.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * InversifyJS need to use the type as identifiers at runtime. 3 | * We use symbols as identifiers but you can also use classes and or string literals. 4 | */ 5 | export const SocialProviderTypes = { 6 | AuthorizeService: Symbol('AuthorizeService'), 7 | CommonService: Symbol('CommonService'), 8 | StorageService: Symbol('StorageService'), 9 | ImageGalleryService: Symbol('ImageGalleryService'), 10 | UserService: Symbol('UserService'), 11 | ProductService: Symbol('ProductService'), 12 | ShippingService: Symbol('ShippingService'), 13 | CartService: Symbol('CartService') 14 | 15 | } 16 | -------------------------------------------------------------------------------- /client/src/data/ecommerceClient/services/authorize/index.ts: -------------------------------------------------------------------------------- 1 | import { AuthorizeService } from './AuthorizeService' 2 | 3 | export { 4 | AuthorizeService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/data/ecommerceClient/services/cart/index.ts: -------------------------------------------------------------------------------- 1 | import { CartService } from './CartService' 2 | 3 | export { 4 | CartService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/data/ecommerceClient/services/index.ts: -------------------------------------------------------------------------------- 1 | import { AuthorizeService } from './authorize' 2 | import { ProductService } from './products' 3 | import { ShippingService } from './shippings' 4 | 5 | export { 6 | AuthorizeService, 7 | ProductService, 8 | ShippingService 9 | } 10 | -------------------------------------------------------------------------------- /client/src/data/ecommerceClient/services/products/index.ts: -------------------------------------------------------------------------------- 1 | import { ProductService } from './ProductService' 2 | 3 | export { 4 | ProductService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/data/ecommerceClient/services/shippings/index.ts: -------------------------------------------------------------------------------- 1 | import { ShippingService } from './ShippingService' 2 | 3 | export { 4 | ShippingService 5 | } 6 | -------------------------------------------------------------------------------- /client/src/ecommerceEngine.ts: -------------------------------------------------------------------------------- 1 | import { useEcommercestore } from './data/ecommerceClient/dependecyRegisterar' 2 | import { Container } from 'inversify' 3 | import CommonAPI from 'api/CommonAPI' 4 | 5 | /** 6 | * Developer tools 7 | */ 8 | window['console']['trace'] = CommonAPI.logger 9 | 10 | /** 11 | * Initialize container 12 | */ 13 | export const provider = new Container() 14 | 15 | /** 16 | * Register dependencies 17 | */ 18 | useEcommercestore(provider) 19 | // Features on the roadmap 20 | // useAzure(provider) 21 | // userAspNet(provider) 22 | // useFirebase(provider) 23 | // useAws(provider) 24 | -------------------------------------------------------------------------------- /client/src/layouts/appInput/IAppInputComponentProps.ts: -------------------------------------------------------------------------------- 1 | export interface IAppInputComponentProps { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/layouts/appInput/IAppInputComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IAppInputComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/layouts/appInput/index.ts: -------------------------------------------------------------------------------- 1 | import AppInputComponent from './AppInputComponent' 2 | export default AppInputComponent 3 | -------------------------------------------------------------------------------- /client/src/layouts/dialogTitle/IDialogTitleComponentState.ts: -------------------------------------------------------------------------------- 1 | export interface IDialogTitleComponentState { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /client/src/layouts/dialogTitle/index.ts: -------------------------------------------------------------------------------- 1 | import DialogTitleComponent from './DialogTitleComponent' 2 | export default DialogTitleComponent 3 | -------------------------------------------------------------------------------- /client/src/layouts/iconButtonElement/IconButtonElementComponent.tsx: -------------------------------------------------------------------------------- 1 | // - Import react components 2 | import React, { Component } from 'react' 3 | import IconButton from '@material-ui/core/IconButton' 4 | import MoreVertIcon from '@material-ui/icons/MoreVert' 5 | import { grey } from '@material-ui/core/colors' 6 | 7 | /** 8 | * DOM styles 9 | * 10 | * 11 | * @memberof Post 12 | */ 13 | const styles = { 14 | 15 | } 16 | // TODO: Delete the component 17 | const IconButtonElementComponent = (
) 18 | 19 | export default IconButtonElementComponent 20 | -------------------------------------------------------------------------------- /client/src/layouts/iconButtonElement/index.ts: -------------------------------------------------------------------------------- 1 | import IconButtonElementComponent from './IconButtonElementComponent' 2 | export default IconButtonElementComponent 3 | -------------------------------------------------------------------------------- /client/src/layouts/loadMoreProgress/index.ts: -------------------------------------------------------------------------------- 1 | import LoadMoreProgressComponent from './LoadMoreProgressComponent' 2 | export default LoadMoreProgressComponent 3 | -------------------------------------------------------------------------------- /client/src/models/files/fileResult.ts: -------------------------------------------------------------------------------- 1 | export class FileResult { 2 | 3 | constructor (private _fileURL: string, private _fileFullPath: string) { 4 | 5 | } 6 | 7 | public get fileURL (): string { 8 | return this._fileURL 9 | } 10 | 11 | public get fileFullPath (): string { 12 | return this._fileFullPath 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /client/src/models/files/index.ts: -------------------------------------------------------------------------------- 1 | export { FileResult } from './fileResult' 2 | -------------------------------------------------------------------------------- /client/src/models/server/index.ts: -------------------------------------------------------------------------------- 1 | export { ServerRequestModel } from './serverRequestModel' 2 | -------------------------------------------------------------------------------- /client/src/models/users/index.ts: -------------------------------------------------------------------------------- 1 | export { UserRegisterModel } from './userRegisterModel' 2 | -------------------------------------------------------------------------------- /client/src/routes/IRouterProps.ts: -------------------------------------------------------------------------------- 1 | export interface IRouterProps { 2 | /** 3 | * Enable routing {true} or not {false} 4 | * 5 | * @type {boolean} 6 | * @memberof IRouterProps 7 | */ 8 | enabled: boolean 9 | 10 | /** 11 | * Router data for the components in routing 12 | * 13 | * @type {*} 14 | * @memberof IRouterProps 15 | */ 16 | data?: any 17 | 18 | /** 19 | * Routing match 20 | * 21 | * @type {*} 22 | * @memberof IRouterProps 23 | */ 24 | match?: any 25 | 26 | /** 27 | * Translate to locale strting 28 | */ 29 | translate?: (state: any) => any 30 | 31 | } 32 | -------------------------------------------------------------------------------- /client/src/routes/index.ts: -------------------------------------------------------------------------------- 1 | import MasterRouter from './MasterRouter' 2 | import HomeRouter from './HomeRouter' 3 | 4 | export { 5 | MasterRouter, 6 | HomeRouter 7 | } 8 | -------------------------------------------------------------------------------- /client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | import Enzyme from 'enzyme'; 2 | import 'jest-enzyme'; 3 | import Adapter from 'enzyme-adapter-react-16'; 4 | 5 | Enzyme.configure({ adapter: new Adapter() }); 6 | -------------------------------------------------------------------------------- /client/src/store/actions/checkoutActions.ts: -------------------------------------------------------------------------------- 1 | // - Import action types 2 | import { CheckoutActionType } from 'constants/checkoutActionType' 3 | 4 | /* _____________ CRUD State _____________ */ 5 | 6 | /** 7 | * Add a list of rigions 8 | */ 9 | export const setActiveStep = (step: number) => { 10 | console.log('checkout comes in checkout action') 11 | return { 12 | type: CheckoutActionType.ACTIVE_STEP, 13 | payload: {step} 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /client/src/store/actions/localeActions.ts: -------------------------------------------------------------------------------- 1 | import { setActiveLanguage } from 'react-localize-redux' 2 | 3 | import { LanguageType } from 'store/reducers/locale/langugeType' 4 | 5 | /** 6 | * Set active language for translation 7 | */ 8 | export const setLanguage = (language: LanguageType) => { 9 | return (dispatch: Function , getState: Function) => { 10 | 11 | // Dispatch `setActiveLanguage` and pass the language. 12 | dispatch(setActiveLanguage(language)) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /client/src/store/actions/serverRequestStatusType.ts: -------------------------------------------------------------------------------- 1 | export enum ServerRequestStatusType { 2 | Sent = 'Sent', 3 | NoAction = 'NoAction', 4 | OK = 'OK', 5 | Error = 'Error' 6 | } 7 | -------------------------------------------------------------------------------- /client/src/store/configureStore.ts: -------------------------------------------------------------------------------- 1 | import configureStoreDev from './configureStore.dev' 2 | import configureStoreProd from './configureStore.prod' 3 | 4 | const store = process.env.NODE_ENV === 'production' 5 | ? configureStoreProd 6 | : configureStoreDev 7 | 8 | export default store -------------------------------------------------------------------------------- /client/src/store/devTools.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { createDevTools } from 'redux-devtools' 3 | import LogMonitor from 'redux-devtools-log-monitor' 4 | import DockMonitor from 'redux-devtools-dock-monitor' 5 | 6 | export default createDevTools( 7 | 9 | 10 | 11 | ) 12 | -------------------------------------------------------------------------------- /client/src/store/reducers/addToCart/IAddToCartAction.ts: -------------------------------------------------------------------------------- 1 | import { AddToCartActionType } from 'constants/addToCartActionType' 2 | 3 | /** 4 | * Product action interface 5 | * 6 | * @export 7 | * @interface IProductAction 8 | */ 9 | export interface IAddToCartAction { 10 | payload: any, 11 | type: AddToCartActionType 12 | 13 | } 14 | -------------------------------------------------------------------------------- /client/src/store/reducers/addToCart/addToCartState.ts: -------------------------------------------------------------------------------- 1 | import { Cart } from 'src/core/domain/cart' 2 | import {Map} from 'immutable' 3 | /** 4 | * add to cart state 5 | * 6 | * @export 7 | * @class addtocartState 8 | */ 9 | export class AddToCartState { 10 | [key: string]: any 11 | /** 12 | * The list of products on the cart 13 | */ 14 | cartProducts = Map({}) 15 | } 16 | -------------------------------------------------------------------------------- /client/src/store/reducers/addToCart/index.ts: -------------------------------------------------------------------------------- 1 | import { addToCartReducer } from './addToCartReducer' 2 | export { 3 | addToCartReducer 4 | } 5 | -------------------------------------------------------------------------------- /client/src/store/reducers/authorize/IAuthorizeAction.ts: -------------------------------------------------------------------------------- 1 | // - Import action types 2 | import { AuthorizeActionType } from 'constants/authorizeActionType' 3 | 4 | /** 5 | * Authorize action interface 6 | * 7 | * @export 8 | * @interface IAuthorizeAction 9 | */ 10 | export interface IAuthorizeAction { 11 | payload: any 12 | type: AuthorizeActionType 13 | 14 | } 15 | -------------------------------------------------------------------------------- /client/src/store/reducers/authorize/authorizeSelector.ts: -------------------------------------------------------------------------------- 1 | import {Map} from 'immutable' 2 | const getCurrentUser = (state: Map) => { 3 | const uid = state.getIn(['authorize', 'uid']) 4 | return state.getIn(['user', 'info', uid]) 5 | } 6 | 7 | export const authorizeSelector = { 8 | getCurrentUser 9 | } -------------------------------------------------------------------------------- /client/src/store/reducers/authorize/index.ts: -------------------------------------------------------------------------------- 1 | import { authorizeReducer } from './authorizeReducer' 2 | import {authorizeSelector} from './authorizeSelector' 3 | export { 4 | authorizeReducer, 5 | authorizeSelector 6 | } -------------------------------------------------------------------------------- /client/src/store/reducers/checkout/CheckoutState.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * shipping state 3 | * 4 | * @export 5 | * @class shippingState 6 | */ 7 | export class CheckoutState { 8 | [key: string]: any 9 | /** 10 | * The list of user shippings 11 | * 12 | * @type {*} 13 | * @memberof shippingState 14 | */ 15 | activeState: Number = 0 16 | } 17 | -------------------------------------------------------------------------------- /client/src/store/reducers/checkout/ICheckoutAction.ts: -------------------------------------------------------------------------------- 1 | import { CheckoutActionType } from 'constants/checkoutActionType' 2 | 3 | /** 4 | * Product action interface 5 | * 6 | * @export 7 | * @interface IProductAction 8 | */ 9 | export interface ICheckoutAction { 10 | payload: any, 11 | type: CheckoutActionType 12 | 13 | } 14 | -------------------------------------------------------------------------------- /client/src/store/reducers/checkout/index.ts: -------------------------------------------------------------------------------- 1 | import { checkoutReducer } from './checkoutReducer' 2 | export { 3 | checkoutReducer 4 | } 5 | -------------------------------------------------------------------------------- /client/src/store/reducers/global/IGlobalAction.ts: -------------------------------------------------------------------------------- 1 | import { GlobalActionType } from 'constants/globalActionType' 2 | 3 | /** 4 | * Global action interface 5 | * 6 | * @export 7 | * @interface IGlobalAction 8 | */ 9 | export interface IGlobalAction { 10 | payload: any, 11 | type: GlobalActionType 12 | 13 | } 14 | -------------------------------------------------------------------------------- /client/src/store/reducers/global/index.ts: -------------------------------------------------------------------------------- 1 | import { globalReducer } from './globalReducer' 2 | 3 | export {globalReducer} -------------------------------------------------------------------------------- /client/src/store/reducers/imageGallery/IImageGalleryAction.ts: -------------------------------------------------------------------------------- 1 | import { ImageGalleryActionType } from 'constants/imageGalleryActionType' 2 | 3 | /** 4 | * ImageGallery action interface 5 | * 6 | * @export 7 | * @interface IImageGalleryAction 8 | */ 9 | export interface IImageGalleryAction { 10 | payload: any, 11 | type: ImageGalleryActionType 12 | 13 | } -------------------------------------------------------------------------------- /client/src/store/reducers/imageGallery/index.ts: -------------------------------------------------------------------------------- 1 | import { imageGalleryReducer } from './imageGalleryReducer' 2 | 3 | export {imageGalleryReducer} -------------------------------------------------------------------------------- /client/src/store/reducers/index.ts: -------------------------------------------------------------------------------- 1 | import {rootReducer} from './rootReducer' 2 | 3 | export { 4 | rootReducer 5 | } 6 | -------------------------------------------------------------------------------- /client/src/store/reducers/products/IProductAction.ts: -------------------------------------------------------------------------------- 1 | import { ProductActionType } from 'constants/productActionType' 2 | 3 | /** 4 | * Product action interface 5 | * 6 | * @export 7 | * @interface IProductAction 8 | */ 9 | export interface IProductAction { 10 | payload: any, 11 | type: ProductActionType 12 | 13 | } 14 | -------------------------------------------------------------------------------- /client/src/store/reducers/products/index.ts: -------------------------------------------------------------------------------- 1 | import { productReducer } from './productReducer' 2 | import { productSelector } from './productSelector' 3 | 4 | export { 5 | productReducer, 6 | productSelector 7 | } 8 | -------------------------------------------------------------------------------- /client/src/store/reducers/products/productSelector.ts: -------------------------------------------------------------------------------- 1 | import {Map} from 'immutable' 2 | 3 | const getProduct = (state: Map, userId: string, productId: string) => { 4 | return state.getIn(['product', 'userProducts', userId, productId]) 5 | } 6 | 7 | export const productSelector = { 8 | getProduct 9 | } 10 | -------------------------------------------------------------------------------- /client/src/store/reducers/server/IServerAction.ts: -------------------------------------------------------------------------------- 1 | import { ServerActionType } from 'constants/serverActionType' 2 | 3 | /** 4 | * Server action interface 5 | * 6 | * @export 7 | * @interface IServerAction 8 | */ 9 | export interface IServerAction { 10 | payload: any, 11 | type: ServerActionType 12 | 13 | } 14 | -------------------------------------------------------------------------------- /client/src/store/reducers/server/ServerState.ts: -------------------------------------------------------------------------------- 1 | import { ServerRequestModel } from 'src/models/server' 2 | import {Map} from 'immutable' 3 | 4 | /** 5 | * Server state 6 | * 7 | * @export 8 | * @class ServerState 9 | */ 10 | export class ServerState { 11 | [key: string]: any 12 | /** 13 | * The list of posts server 14 | * @memberof ServerState 15 | */ 16 | request: Map = Map({}) 17 | } 18 | -------------------------------------------------------------------------------- /client/src/store/reducers/server/index.ts: -------------------------------------------------------------------------------- 1 | import { serverReducer } from './serverReducer' 2 | 3 | export {serverReducer} 4 | -------------------------------------------------------------------------------- /client/src/store/reducers/shippings/IShippingsAction.ts: -------------------------------------------------------------------------------- 1 | import { ShippingsActionType } from 'constants/shippingsActionType' 2 | 3 | /** 4 | * Product action interface 5 | * 6 | * @export 7 | * @interface IProductAction 8 | */ 9 | export interface IShippingsAction { 10 | payload: any, 11 | type: ShippingsActionType 12 | 13 | } 14 | -------------------------------------------------------------------------------- /client/src/store/reducers/shippings/index.ts: -------------------------------------------------------------------------------- 1 | import { shippingsReducer } from './shippingsReducer' 2 | import { shippingsSelector } from './shippingsSelector' 3 | 4 | export { 5 | shippingsReducer, 6 | shippingsSelector 7 | } 8 | -------------------------------------------------------------------------------- /client/src/store/reducers/shippings/shippingsSelector.ts: -------------------------------------------------------------------------------- 1 | import {Map} from 'immutable' 2 | 3 | const getProduct = (state: Map, userId: string, productId: string) => { 4 | return state.getIn(['product', 'userProducts', userId, productId]) 5 | } 6 | 7 | export const shippingsSelector = { 8 | getProduct 9 | } 10 | -------------------------------------------------------------------------------- /client/src/store/reducers/users/IUserAction.ts: -------------------------------------------------------------------------------- 1 | import { UserActionType } from 'constants/userActionType' 2 | 3 | /** 4 | * User action interface 5 | * 6 | * @export 7 | * @interface IUserAction 8 | */ 9 | export interface IUserAction { 10 | payload: any, 11 | type: UserActionType 12 | 13 | } 14 | -------------------------------------------------------------------------------- /client/src/store/reducers/users/index.ts: -------------------------------------------------------------------------------- 1 | import { userReducer } from './userReducer' 2 | 3 | export {userReducer} -------------------------------------------------------------------------------- /client/src/store/sagas/rootSaga.ts: -------------------------------------------------------------------------------- 1 | import { all, fork } from 'redux-saga/effects' 2 | import localeSaga from './localeSaga' 3 | 4 | export default function* root() { 5 | yield all([ 6 | localeSaga() 7 | ]) 8 | } 9 | -------------------------------------------------------------------------------- /client/src/styles/app.scss: -------------------------------------------------------------------------------- 1 | @import "~react-day-picker/lib/style.css"; 2 | @import "base/variables"; 3 | @import 'base/grid'; 4 | @import 'base/animate'; 5 | @import 'base/icon'; 6 | @import 'base/flaticon'; 7 | // Component styles 8 | @import 'components/global'; 9 | @import 'components/master'; 10 | @import 'components/profile'; 11 | @import 'components/imageGallery'; 12 | @import 'components/homeHeader'; 13 | @import 'components/home'; 14 | @import 'components/sidebar'; 15 | @import 'components/login'; 16 | @import 'components/signup'; 17 | @import 'components/masterLoading'; 18 | -------------------------------------------------------------------------------- /client/src/styles/base/_variables.scss: -------------------------------------------------------------------------------- 1 | // Colors 2 | $grey: #333333; 3 | $light-grey: #fafafa; 4 | $light-grey2:#f7f7f7; 5 | $light-grey3:#ada7a7; 6 | $green-teal:#00ab6b; 7 | $teal:#58d09f; 8 | $gold: #FFD700; 9 | $green: #4CAF50; 10 | 11 | $light-grey-border: #eeeeee; 12 | $light-color: #aaa; 13 | 14 | // Navigation colors 15 | $nav-background: $grey; 16 | $nav-text-color: white; 17 | 18 | // Shadow 19 | $glob-box-shadow: 0 4px 10px 0 rgba(0,0,0,0.2), 0 4px 20px 0 rgba(0,0,0,0.19); 20 | 21 | -------------------------------------------------------------------------------- /client/src/styles/components/_home.scss: -------------------------------------------------------------------------------- 1 | .home__main{ 2 | background-color: #eeeeee; 3 | transition: margin-left .4s; 4 | 5 | @media screen and (max-width: 750px){ 6 | margin-left: 0!important; 7 | margin-right: 0!important; 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /client/src/styles/components/_imageGallery.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/components/_imageGallery.scss -------------------------------------------------------------------------------- /client/src/styles/components/_login.scss: -------------------------------------------------------------------------------- 1 | .login__button-box { 2 | display: flex; 3 | justify-content: space-around; 4 | } -------------------------------------------------------------------------------- /client/src/styles/components/_signup.scss: -------------------------------------------------------------------------------- 1 | .signup__button-box{ 2 | margin-top: 30px; 3 | @extend .login__button-box; 4 | } -------------------------------------------------------------------------------- /client/src/styles/components/_userBox.scss: -------------------------------------------------------------------------------- 1 | .user-box__add-circle { 2 | position: absolute; 3 | right: 16px; 4 | bottom: 69px; 5 | } 6 | -------------------------------------------------------------------------------- /client/src/styles/images/bag-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/bag-big.png -------------------------------------------------------------------------------- /client/src/styles/images/bag-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/bag-small.png -------------------------------------------------------------------------------- /client/src/styles/images/bag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/bag.png -------------------------------------------------------------------------------- /client/src/styles/images/home-hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/home-hero.png -------------------------------------------------------------------------------- /client/src/styles/images/men-size-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/men-size-full.png -------------------------------------------------------------------------------- /client/src/styles/images/men.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/men.png -------------------------------------------------------------------------------- /client/src/styles/images/sidemain-men.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/sidemain-men.png -------------------------------------------------------------------------------- /client/src/styles/images/sidemainfull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/sidemainfull.png -------------------------------------------------------------------------------- /client/src/styles/images/sidemen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/sidemen.png -------------------------------------------------------------------------------- /client/src/styles/images/success-300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/success-300.png -------------------------------------------------------------------------------- /client/src/styles/images/wow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/client/src/styles/images/wow.png -------------------------------------------------------------------------------- /client/src/tests/store/actions/__snapshots__/addToCartActions.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`async addToCartActions actions Creates addToCart on the server 1`] = ` 4 | Array [ 5 | Object { 6 | "payload": Object { 7 | "cart": Object { 8 | "attributes": "{\\"productColor\\":\\"blue\\",\\"productSize\\":\\"L\\",\\"productThumbnail\\":\\"thumbnail\\"}", 9 | "buyNow": 1, 10 | "productId": 1, 11 | "quantity": 1, 12 | }, 13 | "cartId": "40ntegn2ajty9080l", 14 | }, 15 | "type": "PRODUCT_TO_CART", 16 | }, 17 | ] 18 | `; 19 | -------------------------------------------------------------------------------- /client/src/typings/react-day-picker.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-day-picker/DayPickerInput' 2 | declare module 'react-day-picker/moment' -------------------------------------------------------------------------------- /client/src/typings/react-linkif.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-linkify' -------------------------------------------------------------------------------- /client/src/typings/react-loadable.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-loadable' -------------------------------------------------------------------------------- /client/src/typings/react-parallax.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-parallax' 2 | -------------------------------------------------------------------------------- /client/src/typings/react-share.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-share' 2 | -------------------------------------------------------------------------------- /client/src/typings/react-string-replace.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-string-replace' -------------------------------------------------------------------------------- /client/tsconfig.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "module": "commonjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /server/.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | indent_style = space 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /server/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/server/.env -------------------------------------------------------------------------------- /server/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "es6": true, 5 | "mocha": true 6 | }, 7 | "parserOptions": { 8 | "ecmaVersion": 2017 9 | }, 10 | "extends": "eslint:recommended", 11 | "rules": { 12 | "comma-spacing": ["error", { "before": false, "after": true }], 13 | "indent": ["error", 2], 14 | "linebreak-style": ["error", "unix"], 15 | "quotes": ["error", "single"], 16 | "semi": ["error", "always"] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | *.log 3 | 4 | # Node 5 | node_modules/ 6 | 7 | # Project specific 8 | .evn 9 | 10 | # Unit test / coverage reports 11 | coverage/ 12 | .nyc_output 13 | 14 | # OS auto-generated files 15 | .DS_Store 16 | ._* 17 | 18 | 19 | # Vim 20 | *~ 21 | *.swp 22 | *.swo 23 | 24 | # IDE files 25 | .idea/ 26 | -------------------------------------------------------------------------------- /server/.nvmrc: -------------------------------------------------------------------------------- 1 | 7.6.0 2 | -------------------------------------------------------------------------------- /server/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "cwd": "./src", 3 | "exclude": [ 4 | "container.js", 5 | "app/Application.js", 6 | "interfaces/http" 7 | ], 8 | "reporter": [ 9 | "html", 10 | "lcov", 11 | "text-summary" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /server/.sequelizerc: -------------------------------------------------------------------------------- 1 | const ENV = process.env.NODE_ENV || 'development'; 2 | 3 | module.exports = { 4 | config: 'config/database.js', 5 | 'migrations-path': 'src/infra/database/migrate', 6 | 'models-path': 'src/infra/database/models', 7 | 'seeders-path': 'src/infra/database/seeds' 8 | }; 9 | -------------------------------------------------------------------------------- /server/Procfile: -------------------------------------------------------------------------------- 1 | web: npm start 2 | -------------------------------------------------------------------------------- /server/config/database.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | development: { 3 | username: 'root', 4 | password: 'root', 5 | database: 'ecommerce', 6 | host: '127.0.0.1', 7 | dialect: 'mysql' 8 | }, 9 | test: { 10 | username: 'root', 11 | password: 'root', 12 | database: 'boilerplate_test', 13 | host: '127.0.0.1', 14 | dialect: 'mysql', 15 | dialectModule: 'mysql2', 16 | logging: null 17 | }, 18 | production: process.env.DATABASE_URL 19 | }; 20 | -------------------------------------------------------------------------------- /server/config/environments/development.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const logPath = path.join(__dirname, '../../logs/development.log'); 3 | 4 | module.exports = { 5 | web: { 6 | port: 3000 7 | }, 8 | logging: { 9 | appenders: [ 10 | { type: 'console' }, 11 | { type: 'file', filename: logPath } 12 | ] 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /server/config/environments/production.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | web: { 3 | port: process.env.PORT 4 | }, 5 | logging: { 6 | appenders: [ 7 | { type: 'console', layout: { type: 'basic' } } 8 | ] 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /server/config/environments/test.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | web: {} 3 | }; 4 | -------------------------------------------------------------------------------- /server/index.js: -------------------------------------------------------------------------------- 1 | const container = require('src/container'); 2 | 3 | const app = container.resolve('app'); 4 | 5 | app 6 | .start() 7 | .catch((error) => { 8 | app.logger.error(error.stack); 9 | process.exit(); 10 | }); 11 | -------------------------------------------------------------------------------- /server/logs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/server/logs/.gitkeep -------------------------------------------------------------------------------- /server/src/app/Application.js: -------------------------------------------------------------------------------- 1 | class Application { 2 | constructor({ server, database, logger }) { 3 | this.server = server; 4 | this.database = database; 5 | this.logger = logger; 6 | 7 | if(database && database.options.logging) { 8 | database.options.logging = logger.info.bind(logger); 9 | } 10 | } 11 | 12 | async start() { 13 | if(this.database) { 14 | await this.database.authenticate(); 15 | } 16 | 17 | await this.server.start(); 18 | } 19 | } 20 | 21 | module.exports = Application; 22 | -------------------------------------------------------------------------------- /server/src/app/auth/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | Signup: require('./Signup'), 3 | Login: require('./Login'), 4 | Logout: require('./Logout'), 5 | UserInfo: require('./UserInfo') 6 | }; 7 | -------------------------------------------------------------------------------- /server/src/app/category/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | GetAllCategoriesByDepartment: require("./GetAllCategoriesByDepartment") 3 | }; 4 | -------------------------------------------------------------------------------- /server/src/app/department/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | GetAllDepartments: require("./GetAllDepartments"), 3 | }; 4 | -------------------------------------------------------------------------------- /server/src/app/product/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | GetProductDetails: require("./GetProductDetails"), 3 | GetProductAttributes: require("./GetProductAttributes"), 4 | GetAllProducts: require("./GetAllProducts"), 5 | GetAllProductsByText: require("./GetAllProductsByText"), 6 | GetAllProductsByCategory: require("./GetAllProductsByCategory") 7 | }; 8 | -------------------------------------------------------------------------------- /server/src/app/shipping/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | GetShippingRegions: require("./GetShippingRegions"), 3 | GetShippingRates: require("./GetShippingRates"), 4 | UpdateShippings: require("./UpdateShippings"), 5 | GetShippings: require("./GetShippings") 6 | }; 7 | -------------------------------------------------------------------------------- /server/src/app/store/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | AddToCart: require('./AddToCart'), 3 | GetCart: require('./GetCart'), 4 | PlaceOrder: require('./PlaceOrder'), 5 | UpdateOrder: require('./UpdateOrder'), 6 | UpdateCartItem: require('./UpdateCartItem'), 7 | }; 8 | -------------------------------------------------------------------------------- /server/src/domain/category/Category.js: -------------------------------------------------------------------------------- 1 | const { attributes } = require('structure'); 2 | 3 | const Category = attributes({ 4 | category_id: Number, 5 | name: { 6 | type: String, 7 | required: true 8 | }, 9 | description: String 10 | })(class Category { 11 | }); 12 | 13 | module.exports = Category; 14 | -------------------------------------------------------------------------------- /server/src/domain/customer/Customer.js: -------------------------------------------------------------------------------- 1 | const { attributes } = require('structure'); 2 | var validator = require("email-validator"); 3 | 4 | const Customer = attributes({ 5 | customer_id: Number, 6 | name: { 7 | type: String, 8 | required: true 9 | }, 10 | email: { 11 | type: String, 12 | required: true 13 | }, 14 | password: { 15 | type: String, 16 | required: true 17 | }, 18 | })(class Customer { 19 | isEmailValid() { 20 | return validator.validate(this.email) 21 | } 22 | }); 23 | 24 | module.exports = Customer; 25 | -------------------------------------------------------------------------------- /server/src/domain/department/Department.js: -------------------------------------------------------------------------------- 1 | const { attributes } = require('structure'); 2 | 3 | const Department = attributes({ 4 | department_id: Number, 5 | name: { 6 | type: String, 7 | required: true 8 | }, 9 | description: String 10 | })(class Department { 11 | }); 12 | 13 | module.exports = Department; 14 | -------------------------------------------------------------------------------- /server/src/domain/product/Product.js: -------------------------------------------------------------------------------- 1 | const { attributes } = require('structure'); 2 | 3 | const Product = attributes({ 4 | product_id: Number, 5 | name: { 6 | type: String, 7 | required: true 8 | }, 9 | description: String, 10 | price: String, 11 | discounted_price: String, 12 | image: String, 13 | image_2: String, 14 | thumbnail: String, 15 | display: Number 16 | })(class Product { 17 | }); 18 | 19 | module.exports = Product; 20 | -------------------------------------------------------------------------------- /server/src/domain/shipping/Shipping.js: -------------------------------------------------------------------------------- 1 | const { attributes } = require('structure'); 2 | 3 | const Shipping = attributes({ 4 | customer_id: Number, 5 | address_1: { 6 | type: String 7 | }, 8 | address_2: { 9 | type: String 10 | }, 11 | city: { 12 | type: String 13 | }, 14 | region: { 15 | type: String 16 | }, 17 | postal_code: { 18 | type: String 19 | }, 20 | country: { 21 | type: String 22 | }, 23 | shipping_region_id: { 24 | type: Number, 25 | required: true 26 | }, 27 | })(class Shipping { 28 | }); 29 | 30 | module.exports = Shipping; 31 | -------------------------------------------------------------------------------- /server/src/domain/shipping/ShippingRate.js: -------------------------------------------------------------------------------- 1 | const { attributes } = require('structure'); 2 | 3 | const ShippingRate = attributes({ 4 | shipping_region_id: Number, 5 | shipping_type: { 6 | type: String, 7 | required: true 8 | }, 9 | shipping_cost: Number, 10 | shipping_id: Number 11 | })(class ShippingRate { 12 | }); 13 | 14 | module.exports = ShippingRate; 15 | -------------------------------------------------------------------------------- /server/src/domain/shipping/ShippingRegion.js: -------------------------------------------------------------------------------- 1 | const { attributes } = require('structure'); 2 | 3 | const ShippingRegion = attributes({ 4 | shipping_region_id: Number, 5 | shipping_region: { 6 | type: String, 7 | required: true 8 | } 9 | })(class ShippingRegion { 10 | }); 11 | 12 | module.exports = ShippingRegion; 13 | -------------------------------------------------------------------------------- /server/src/domain/store/ShoppingCart.js: -------------------------------------------------------------------------------- 1 | const { attributes } = require('structure'); 2 | 3 | const ShoppingCart = attributes({ 4 | item_id: { 5 | type: Number 6 | }, 7 | cart_id: { 8 | type: String 9 | }, 10 | product_id: { 11 | type: Number 12 | }, 13 | quantity: { 14 | type: Number 15 | }, 16 | buy_now: { 17 | type: Number 18 | }, 19 | added_on: { 20 | type: String 21 | } 22 | })(class ShoppingCart { 23 | }); 24 | 25 | module.exports = ShoppingCart; 26 | -------------------------------------------------------------------------------- /server/src/infra/category/SequelizeCategoryMapper.js: -------------------------------------------------------------------------------- 1 | const Category = require("src/domain/category/Category"); 2 | 3 | const SequelizeCategoryMapper = { 4 | toEntity({ dataValues }) { 5 | const { category_id, name, description, department_id } = dataValues; 6 | return new Category({ category_id, name, description, department_id }); 7 | }, 8 | 9 | toDatabase(survivor) { 10 | const { name, description, department_id } = survivor; 11 | 12 | return { name, description, department_id }; 13 | } 14 | }; 15 | 16 | module.exports = SequelizeCategoryMapper; 17 | -------------------------------------------------------------------------------- /server/src/infra/customer/SequelizeCustomerMapper.js: -------------------------------------------------------------------------------- 1 | const Customer = require('src/domain/customer/Customer'); 2 | 3 | const SequelizeCustomerMapper = { 4 | toEntity({ dataValues }) { 5 | const { customer_id, name, email, password } = dataValues; 6 | return new Customer({ customer_id, name, email, password }); 7 | }, 8 | 9 | toDatabase(survivor) { 10 | const { name, email, password } = survivor; 11 | return { name, email, password }; 12 | } 13 | }; 14 | 15 | module.exports = SequelizeCustomerMapper; 16 | -------------------------------------------------------------------------------- /server/src/infra/database/migrate/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/server/src/infra/database/migrate/.gitkeep -------------------------------------------------------------------------------- /server/src/infra/database/models/ProductAttribute.js: -------------------------------------------------------------------------------- 1 | /* jshint indent: 2 */ 2 | 3 | module.exports = function(sequelize, DataTypes) { 4 | const ProductAttribute = sequelize.define('product_attribute', { 5 | product_id: { 6 | type: DataTypes.INTEGER(11), 7 | allowNull: false, 8 | primaryKey: true 9 | }, 10 | attribute_value_id: { 11 | type: DataTypes.INTEGER(11), 12 | allowNull: false, 13 | primaryKey: true 14 | } 15 | }, { 16 | tableName: 'product_attribute', 17 | timestamps: false 18 | }); 19 | return ProductAttribute; 20 | }; 21 | -------------------------------------------------------------------------------- /server/src/infra/database/models/ProductCategory.js: -------------------------------------------------------------------------------- 1 | /* jshint indent: 2 */ 2 | 3 | module.exports = function(sequelize, DataTypes) { 4 | const ProductCategory = sequelize.define('product_category', { 5 | product_id: { 6 | type: DataTypes.INTEGER(11), 7 | allowNull: false, 8 | primaryKey: true 9 | }, 10 | category_id: { 11 | type: DataTypes.INTEGER(11), 12 | allowNull: false, 13 | primaryKey: true 14 | } 15 | }, { 16 | tableName: 'product_category', 17 | timestamps: false 18 | }); 19 | return ProductCategory; 20 | }; 21 | -------------------------------------------------------------------------------- /server/src/infra/database/models/ShippingRegion.js: -------------------------------------------------------------------------------- 1 | /* jshint indent: 2 */ 2 | 3 | module.exports = function(sequelize, DataTypes) { 4 | const ShippingRegion = sequelize.define('shipping_region', { 5 | shipping_region_id: { 6 | type: DataTypes.INTEGER(11), 7 | allowNull: false, 8 | primaryKey: true, 9 | autoIncrement: true 10 | }, 11 | shipping_region: { 12 | type: DataTypes.STRING(100), 13 | allowNull: false 14 | } 15 | }, { 16 | tableName: 'shipping_region', 17 | timestamps: false 18 | }); 19 | 20 | return ShippingRegion; 21 | }; 22 | -------------------------------------------------------------------------------- /server/src/infra/database/models/attribute.js: -------------------------------------------------------------------------------- 1 | /* jshint indent: 2 */ 2 | 3 | module.exports = function(sequelize, DataTypes) { 4 | const Attribute = sequelize.define('attribute', { 5 | attribute_id: { 6 | type: DataTypes.INTEGER(11), 7 | allowNull: false, 8 | primaryKey: true, 9 | autoIncrement: true 10 | }, 11 | name: { 12 | type: DataTypes.STRING(100), 13 | allowNull: false 14 | } 15 | }, { 16 | tableName: 'attribute', 17 | timestamps: false 18 | }); 19 | return Attribute; 20 | }; 21 | -------------------------------------------------------------------------------- /server/src/infra/database/models/index.js: -------------------------------------------------------------------------------- 1 | const { ModelsLoader } = require('src/infra/sequelize'); 2 | const Sequelize = require('sequelize'); 3 | const { db: config } = require('config'); 4 | 5 | if(config) { 6 | const sequelize = new Sequelize(config); 7 | 8 | module.exports = ModelsLoader.load({ 9 | sequelize, 10 | baseFolder: __dirname 11 | }); 12 | } else { 13 | /* eslint-disable no-console */ 14 | console.error('Database configuration not found, disabling database.'); 15 | /* eslint-enable no-console */ 16 | } 17 | 18 | -------------------------------------------------------------------------------- /server/src/infra/database/models/tax.js: -------------------------------------------------------------------------------- 1 | /* jshint indent: 2 */ 2 | 3 | module.exports = function(sequelize, DataTypes) { 4 | return sequelize.define('tax', { 5 | tax_id: { 6 | type: DataTypes.INTEGER(11), 7 | allowNull: false, 8 | primaryKey: true, 9 | autoIncrement: true 10 | }, 11 | tax_type: { 12 | type: DataTypes.STRING(100), 13 | allowNull: false 14 | }, 15 | tax_percentage: { 16 | type: DataTypes.DECIMAL, 17 | allowNull: false 18 | } 19 | }, { 20 | tableName: 'tax' 21 | }); 22 | }; 23 | -------------------------------------------------------------------------------- /server/src/infra/database/scripts/ecommerce.sql.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/server/src/infra/database/scripts/ecommerce.sql.zip -------------------------------------------------------------------------------- /server/src/infra/database/seeds/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/server/src/infra/database/seeds/.gitkeep -------------------------------------------------------------------------------- /server/src/infra/database/seeds/20170308131757-test-users.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const dataFaker = require('src/infra/support/dataFaker'); 4 | 5 | module.exports = { 6 | up: function (queryInterface) { 7 | const testUsers = []; 8 | 9 | for(let i = 0; i < 20; i++) { 10 | testUsers.push({ 11 | name: dataFaker.name(), 12 | createdAt: new Date(), 13 | updatedAt: new Date() 14 | }); 15 | } 16 | 17 | return queryInterface.bulkInsert('users', testUsers, {}); 18 | }, 19 | 20 | down: function (queryInterface) { 21 | return queryInterface.bulkDelete('users', null, {}); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /server/src/infra/department/SequelizeDepartmentMapper.js: -------------------------------------------------------------------------------- 1 | const Department = require('src/domain/department/Department'); 2 | 3 | const SequelizeDepartmentMapper = { 4 | toEntity({ dataValues }) { 5 | const { department_id, name, description, price, discounted_price, image, image_2, thumbnail, display} = dataValues; 6 | return new Department({ department_id, name, description, price, discounted_price, image, image_2, thumbnail, display}); 7 | }, 8 | 9 | toDatabase(survivor) { 10 | const { name } = survivor; 11 | 12 | return { name }; 13 | } 14 | }; 15 | 16 | module.exports = SequelizeDepartmentMapper; 17 | -------------------------------------------------------------------------------- /server/src/infra/department/SequelizeDepartmentsRepository.js: -------------------------------------------------------------------------------- 1 | const DepartmentMapper = require("./SequelizeDepartmentMapper"); 2 | 3 | class SequelizeDepartmentsRepository { 4 | constructor({ DepartmentModel }) { 5 | this.departmentModel = DepartmentModel; 6 | } 7 | 8 | async getAll(...args) { 9 | const departments = await this.departmentModel.findAndCountAll(...args); 10 | departments.rows = departments.rows.map(DepartmentMapper.toEntity); 11 | return departments; 12 | } 13 | } 14 | 15 | module.exports = SequelizeDepartmentsRepository; 16 | -------------------------------------------------------------------------------- /server/src/infra/factoryGirl/FactoriesLoader.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | module.exports = { 5 | load({ factoryGirl, baseFolder, models }) { 6 | fs 7 | .readdirSync(baseFolder) 8 | .filter((file) => { 9 | return (file.indexOf('.') !== 0) && (file.slice(-3) === '.js'); 10 | }) 11 | .forEach((file) => { 12 | const factoryPath = path.join(baseFolder, file); 13 | const factory = require(factoryPath); 14 | 15 | factory(factoryGirl, models); 16 | }); 17 | 18 | return factoryGirl; 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /server/src/infra/factoryGirl/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | FactoriesLoader: require('./FactoriesLoader') 3 | }; 4 | -------------------------------------------------------------------------------- /server/src/infra/logging/LoggerStreamAdapter.js: -------------------------------------------------------------------------------- 1 | const LoggerStreamAdapter = { 2 | toStream(logger) { 3 | return { 4 | write(message) { 5 | logger.info(message.slice(0, -1)); 6 | } 7 | }; 8 | } 9 | }; 10 | 11 | module.exports = LoggerStreamAdapter; 12 | -------------------------------------------------------------------------------- /server/src/infra/logging/logger.js: -------------------------------------------------------------------------------- 1 | const Log4js = require('log4js'); 2 | 3 | module.exports = ({ config }) => { 4 | Log4js.configure(config.logging); 5 | 6 | return Log4js.getLogger(); 7 | }; 8 | -------------------------------------------------------------------------------- /server/src/infra/mail/placeOrder/subject.pug: -------------------------------------------------------------------------------- 1 | =`Your order has been placed successfully with Order#${orderId}` 2 | -------------------------------------------------------------------------------- /server/src/infra/product/SequelizeProductMapper.js: -------------------------------------------------------------------------------- 1 | const Product = require('src/domain/product/Product'); 2 | 3 | const SequelizeProductMapper = { 4 | toEntity({ dataValues }) { 5 | const { product_id, name, description, price, discounted_price, image, image_2, thumbnail, display} = dataValues; 6 | return new Product({ product_id, name, description, price, discounted_price, image, image_2, thumbnail, display}); 7 | }, 8 | 9 | toDatabase(survivor) { 10 | const { name } = survivor; 11 | 12 | return { name }; 13 | } 14 | }; 15 | 16 | module.exports = SequelizeProductMapper; 17 | -------------------------------------------------------------------------------- /server/src/infra/sequelize/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | ModelsLoader: require('./ModelsLoader') 3 | }; 4 | -------------------------------------------------------------------------------- /server/src/infra/shipping/SequelizeShippingRegionMapper.js: -------------------------------------------------------------------------------- 1 | const ShippingRegion = require("src/domain/shipping/ShippingRegion"); 2 | 3 | const SequelizeShippingRegionMapper = { 4 | toEntity({ dataValues }) { 5 | const { shipping_region_id, shipping_region } = dataValues; 6 | return new ShippingRegion({ shipping_region_id, shipping_region }); 7 | }, 8 | 9 | toDatabase(survivor) { 10 | const { name } = survivor; 11 | 12 | return { name }; 13 | } 14 | }; 15 | 16 | module.exports = SequelizeShippingRegionMapper; 17 | -------------------------------------------------------------------------------- /server/src/infra/shippingRate/SequelizeShippingRateMapper.js: -------------------------------------------------------------------------------- 1 | const ShippingRate = require("src/domain/shipping/ShippingRate"); 2 | 3 | const SequelizeShippingRateMapper = { 4 | toEntity({ dataValues }) { 5 | const { shipping_region_id, shipping_id, shipping_type, shipping_cost } = dataValues; 6 | return new ShippingRate({ shipping_region_id, shipping_id, shipping_type, shipping_cost }); 7 | }, 8 | 9 | toDatabase(survivor) { 10 | const { name } = survivor; 11 | 12 | return { name }; 13 | } 14 | }; 15 | 16 | module.exports = SequelizeShippingRateMapper; 17 | -------------------------------------------------------------------------------- /server/src/infra/shippingRate/SequelizeShippingRatesRepository.js: -------------------------------------------------------------------------------- 1 | const ShippingRateMapper = require("./SequelizeShippingRateMapper"); 2 | 3 | class SequelizeShippingRatesRepository { 4 | constructor({ ShippingRateModel }) { 5 | this.ShippingRateModel = ShippingRateModel; 6 | } 7 | 8 | async findAll(...args) { 9 | const shippingRates = await this.ShippingRateModel.findAll({ 10 | where: { 11 | shipping_region_id: args[0].regionId 12 | } 13 | }); 14 | shippingRates.map(ShippingRateMapper.toEntity); 15 | return shippingRates; 16 | } 17 | } 18 | 19 | module.exports = SequelizeShippingRatesRepository; 20 | -------------------------------------------------------------------------------- /server/src/infra/support/dataFaker.js: -------------------------------------------------------------------------------- 1 | const Chance = require('chance'); 2 | const chance = new Chance(); 3 | 4 | module.exports = chance; 5 | -------------------------------------------------------------------------------- /server/src/interfaces/console/index.js: -------------------------------------------------------------------------------- 1 | process.env.NODE_ENV = process.env.NODE_ENV || 'development'; 2 | 3 | const Console = require('./Console'); 4 | const container = require('src/container'); 5 | 6 | Console.start({ 7 | expose: { container } 8 | }); 9 | -------------------------------------------------------------------------------- /server/src/interfaces/http/auth/AuthSerializer.js: -------------------------------------------------------------------------------- 1 | const AuthSerializer = { 2 | serialize({ customer_id, name, email }) { 3 | let customerId = customer_id; 4 | return { 5 | customerId, 6 | name, 7 | email 8 | }; 9 | } 10 | }; 11 | 12 | module.exports = AuthSerializer; 13 | -------------------------------------------------------------------------------- /server/src/interfaces/http/category/CategorySerializer.js: -------------------------------------------------------------------------------- 1 | const CategorySerializer = { 2 | serialize({ category_id, name, description }) { 3 | let categoryId = category_id; 4 | return { 5 | categoryId, 6 | name, 7 | description 8 | }; 9 | } 10 | }; 11 | 12 | module.exports = CategorySerializer; 13 | -------------------------------------------------------------------------------- /server/src/interfaces/http/department/DepartmentSerializer.js: -------------------------------------------------------------------------------- 1 | const DepartmentSerializer = { 2 | serialize({ department_id, name, description }) { 3 | let departmentId = department_id; 4 | return { 5 | departmentId, 6 | name, 7 | description 8 | }; 9 | } 10 | }; 11 | 12 | module.exports = DepartmentSerializer; 13 | -------------------------------------------------------------------------------- /server/src/interfaces/http/errors/devErrorHandler.js: -------------------------------------------------------------------------------- 1 | const Status = require('http-status'); 2 | 3 | /* istanbul ignore next */ 4 | module.exports = (err, req, res, next) => { // eslint-disable-line no-unused-vars 5 | const { logger } = req.container.cradle; 6 | 7 | logger.error(err); 8 | 9 | res.status(Status.INTERNAL_SERVER_ERROR).json({ 10 | type: 'InternalServerError', 11 | message: err.message, 12 | stack: err.stack 13 | }); 14 | }; 15 | -------------------------------------------------------------------------------- /server/src/interfaces/http/errors/errorHandler.js: -------------------------------------------------------------------------------- 1 | const Status = require('http-status'); 2 | 3 | /* istanbul ignore next */ 4 | module.exports = (err, req, res, next) => { // eslint-disable-line no-unused-vars 5 | const { logger } = req.container.cradle; 6 | 7 | logger.error(err); 8 | 9 | res.status(Status.INTERNAL_SERVER_ERROR).json({ 10 | type: 'InternalServerError', 11 | message: 'The server failed to handle this request', 12 | stack: err.stack 13 | }); 14 | }; 15 | -------------------------------------------------------------------------------- /server/src/interfaces/http/logging/loggerMiddleware.js: -------------------------------------------------------------------------------- 1 | const morgan = require('morgan'); 2 | const LoggerStreamAdapter = require('src/infra/logging/LoggerStreamAdapter'); 3 | 4 | module.exports = ({ logger }) => { 5 | return morgan('dev', { 6 | stream: LoggerStreamAdapter.toStream(logger) 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /server/src/interfaces/http/product/ProductAttributeSerializer.js: -------------------------------------------------------------------------------- 1 | const ProductSerializer = { 2 | serialize({ attribute_value_id, attribute_value, attribute_name }) { 3 | let attributeValueId = attribute_value_id; 4 | let attributeValue = attribute_value; 5 | let attributeName = attribute_name; 6 | return { 7 | attributeValueId, 8 | attributeName, 9 | attributeValue 10 | }; 11 | } 12 | }; 13 | 14 | module.exports = ProductSerializer; 15 | -------------------------------------------------------------------------------- /server/src/interfaces/http/product/ProductSerializer.js: -------------------------------------------------------------------------------- 1 | const ProductSerializer = { 2 | serialize({ product_id, name, description, price, discounted_price, image, image_2, thumbnail, display }) { 3 | let productId = product_id; 4 | let discountedPrice = discounted_price; 5 | let image2 = image_2; 6 | return { 7 | productId, 8 | name, 9 | description, 10 | price, 11 | discountedPrice, 12 | image, 13 | image2, 14 | thumbnail, 15 | display 16 | }; 17 | } 18 | }; 19 | 20 | module.exports = ProductSerializer; 21 | -------------------------------------------------------------------------------- /server/src/interfaces/http/shipping/ShippingRateSerializer.js: -------------------------------------------------------------------------------- 1 | const ShippingRateSerializer = { 2 | serialize({ shipping_region_id, shipping_id, shipping_type, shipping_cost }) { 3 | let shippingRegionId = shipping_region_id; 4 | let shippingType = shipping_type; 5 | let shippingCost= shipping_cost; 6 | let shippingId = shipping_id 7 | return { 8 | shippingId, 9 | shippingRegionId, 10 | shippingType, 11 | shippingCost 12 | }; 13 | } 14 | }; 15 | 16 | module.exports = ShippingRateSerializer; 17 | -------------------------------------------------------------------------------- /server/src/interfaces/http/shipping/ShippingRegionSerializer.js: -------------------------------------------------------------------------------- 1 | const ShippingRegionSerializer = { 2 | serialize({ shipping_region_id, shipping_region }) { 3 | let shippingRegionId = shipping_region_id; 4 | let shippingRegion = shipping_region; 5 | return { 6 | shippingRegionId, 7 | shippingRegion 8 | }; 9 | } 10 | }; 11 | 12 | module.exports = ShippingRegionSerializer; 13 | -------------------------------------------------------------------------------- /server/src/interfaces/http/store/CartSerializer.js: -------------------------------------------------------------------------------- 1 | const CartSerializer = { 2 | serialize({ 3 | item_id, 4 | cart_id, 5 | product_id, 6 | attributes, 7 | quantity, 8 | buy_now, 9 | added_on 10 | }) { 11 | let itemId = item_id; 12 | let cartId = cart_id; 13 | let productId = product_id; 14 | let buyNow = buy_now; 15 | let createdDate = added_on; 16 | return { 17 | itemId, 18 | cartId, 19 | productId, 20 | attributes, 21 | quantity, 22 | buyNow, 23 | createdDate 24 | }; 25 | } 26 | }; 27 | 28 | module.exports = CartSerializer; 29 | -------------------------------------------------------------------------------- /server/src/interfaces/http/swagger/swaggerMiddleware.js: -------------------------------------------------------------------------------- 1 | const SwaggerUi = require('swagger-ui-express'); 2 | const swaggerDocument = require('./swagger.json'); 3 | 4 | module.exports = [SwaggerUi.serve, SwaggerUi.setup(swaggerDocument)]; 5 | -------------------------------------------------------------------------------- /server/src/interfaces/http/utils/createControllerRoutes.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = function createControllerRoutes(controllerUri) { 4 | const controllerPath = path.resolve('src/interfaces/http', controllerUri); 5 | 6 | const Controller = require(controllerPath); 7 | 8 | return Controller.router; 9 | }; 10 | -------------------------------------------------------------------------------- /server/test/features/api/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/server/test/features/api/.gitkeep -------------------------------------------------------------------------------- /server/test/mocha.opts.features: -------------------------------------------------------------------------------- 1 | test/setup.js 2 | test/features/**/*.spec.js 3 | --recursive 4 | -------------------------------------------------------------------------------- /server/test/mocha.opts.unit: -------------------------------------------------------------------------------- 1 | test/setup.js 2 | test/unit/**/*.spec.js 3 | --recursive 4 | -------------------------------------------------------------------------------- /server/test/setup.js: -------------------------------------------------------------------------------- 1 | const chai = require('chai'); 2 | const dirtyChai = require('dirty-chai'); 3 | const chaiChange = require('chai-change'); 4 | const cleanDatabase = require('test/support/cleanDatabase'); 5 | 6 | chai.use(dirtyChai); 7 | chai.use(chaiChange); 8 | 9 | // Comment this line if you're not using a database 10 | beforeEach(cleanDatabase); 11 | -------------------------------------------------------------------------------- /server/test/support/cleanDatabase.js: -------------------------------------------------------------------------------- 1 | const container = require('src/container'); 2 | const database = container.resolve('database'); 3 | 4 | module.exports = () => database && database.truncate({ cascade: true }); 5 | -------------------------------------------------------------------------------- /server/test/support/factories/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ipragmatechadmin/React-Ecommerce-Builder/c25744b0e1c8f5da27e88698c435d2a0609521bf/server/test/support/factories/.gitkeep -------------------------------------------------------------------------------- /server/test/support/factories/attribute.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require('src/infra/support/dataFaker'); 2 | 3 | module.exports = (factory, { Attribute }) => { 4 | factory.define('attribute', Attribute, { 5 | name: dataFaker.name() 6 | }); 7 | }; 8 | -------------------------------------------------------------------------------- /server/test/support/factories/attributeValue.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require('src/infra/support/dataFaker'); 2 | 3 | module.exports = (factory, { AttributeValue }) => { 4 | factory.define('attribute_value', AttributeValue, { 5 | attribute_id: dataFaker.integer({ min: 0, max: 3 }), 6 | value: dataFaker.string(), 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /server/test/support/factories/category.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require('src/infra/support/dataFaker'); 2 | 3 | module.exports = (factory, { Category }) => { 4 | factory.define('category', Category, { 5 | name: dataFaker.name(), 6 | description: dataFaker.string() 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /server/test/support/factories/customer.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require('src/infra/support/dataFaker'); 2 | 3 | module.exports = (factory, { Customer }) => { 4 | factory.define('customer', Customer, { 5 | name: dataFaker.name(), 6 | email: dataFaker.email(), 7 | password: '123456', 8 | }); 9 | }; 10 | -------------------------------------------------------------------------------- /server/test/support/factories/department.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require('src/infra/support/dataFaker'); 2 | 3 | module.exports = (factory, { Department }) => { 4 | factory.define('department', Department, { 5 | name: dataFaker.name(), 6 | description: dataFaker.string() 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /server/test/support/factories/productAttribute.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require('src/infra/support/dataFaker'); 2 | 3 | module.exports = (factory, { ProductAttribute }) => { 4 | factory.define('product_attribute', ProductAttribute, { 5 | product_id: dataFaker.integer({ min: 0, max: 3 }), 6 | attribute_value_id: dataFaker.integer({ min: 0, max: 3 }) 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /server/test/support/factories/productCategory.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require("src/infra/support/dataFaker"); 2 | 3 | module.exports = (factory, { ProductCategory }) => { 4 | factory.define("productCategory", ProductCategory, { 5 | product_id: dataFaker.integer({ min: 0, max: 3 }), 6 | category_id: dataFaker.integer({ min: 0, max: 3 }) 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /server/test/support/factories/shippingRate.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require('src/infra/support/dataFaker'); 2 | 3 | module.exports = (factory, { ShippingRate }) => { 4 | factory.define('shippingRate', ShippingRate, { 5 | shipping_type: dataFaker.string(), 6 | shipping_cost: dataFaker.string(), 7 | shipping_region_id: dataFaker.integer({ min: 0, max: 3 }) 8 | }); 9 | }; 10 | -------------------------------------------------------------------------------- /server/test/support/factories/shippingRegion.js: -------------------------------------------------------------------------------- 1 | const dataFaker = require('src/infra/support/dataFaker'); 2 | 3 | module.exports = (factory, { ShippingRegion }) => { 4 | factory.define('shippingRegion', ShippingRegion, { 5 | shipping_region: dataFaker.name() 6 | }); 7 | }; 8 | -------------------------------------------------------------------------------- /server/test/support/factory.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const { factory, SequelizeAdapter } = require('factory-girl'); 3 | const { FactoriesLoader } = require('src/infra/factoryGirl'); 4 | const models = require('src/infra/database/models'); 5 | 6 | const factoryGirl = new factory.FactoryGirl(); 7 | factoryGirl.setAdapter(new SequelizeAdapter()); 8 | 9 | module.exports = FactoriesLoader.load({ 10 | factoryGirl, 11 | models, 12 | baseFolder: path.join(__dirname, 'factories') 13 | }); 14 | -------------------------------------------------------------------------------- /server/test/support/request.js: -------------------------------------------------------------------------------- 1 | const request = require('supertest-as-promised'); 2 | const container = require('src/container'); 3 | const server = container.resolve('server'); 4 | 5 | module.exports = () => request(server.express); 6 | --------------------------------------------------------------------------------