├── .DS_Store ├── .vscode └── settings.json ├── README.md ├── index.html └── src ├── .DS_Store ├── css ├── components │ ├── background.css │ ├── componentes.css │ ├── footer.css │ └── header.css ├── global │ └── global.css ├── pages │ ├── area-usuario.css │ ├── cadastro.css │ ├── contato.css │ ├── home.css │ ├── index.css │ ├── login.css │ ├── planos.css │ ├── produtos.css │ ├── rec-senha.css │ └── termos.css ├── style.css └── utils │ ├── cor.css │ └── fontes.css ├── img ├── .DS_Store ├── background-img │ ├── .DS_Store │ └── background.png ├── cadastro │ └── harry-carta.png ├── contato │ ├── beatriz.png │ ├── dayane.png │ ├── lais.png │ ├── leticia.png │ ├── linkedin.png │ └── victor.png ├── favicon │ └── favicon.png ├── home │ └── homem-com-caixa-home.png ├── icon-header │ └── user-icon.png ├── logo-img │ ├── .DS_Store │ └── logo.svg ├── pagina-inicial │ ├── .DS_Store │ ├── logos │ │ ├── funko-logo.png │ │ ├── hp-logo.png │ │ ├── logo-lotr.png.png │ │ ├── marvel-logo.png │ │ └── star-wars-logo.png │ └── produtos-pag-inicial.png ├── planos │ ├── .DS_Store │ ├── box-g.png │ ├── box-m.png │ └── box-p.png └── readMe │ └── Screenshot_2023-07-14_at_4.53.57_PM.png ├── js ├── .DS_Store ├── controller │ ├── cadastroController.js │ ├── enderecoController.js │ ├── loginController.js │ ├── produtoController.js │ ├── recSenhaController.js │ └── usuarioController.js ├── model │ ├── .DS_Store │ ├── enderecoModel.js │ └── usuarioModel.js ├── script.js ├── scriptCadastro.js ├── scriptLogin.js ├── scriptRecSenha.js └── view │ ├── areaUsuarioView.js │ ├── cadastroView.js │ ├── enderecoView.js │ ├── loginView.js │ ├── produtosView.js │ ├── recSenhaView.js │ └── slideShowView.js └── pages ├── area-usuario.html ├── cadastro.html ├── contato-logado.html ├── contato.html ├── home.html ├── login.html ├── planos.html ├── produtos.html ├── rec-senha.html └── termos.html /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/.DS_Store -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Frontenders/ GeekBox 2 | Este projeto consistiu em desenvolver o front end para apresentar uma plataforma 3 | de serviço por assinatura em que as pessoas usuárias precisam entrar em uma lista 4 | de espera. 5 | 6 | ## Tecnologias Utilizadas 7 | O projeto foi desenvolvido utilizando as seguintes tecnologias: 8 | 9 | **TRELLO**: Utilizado para a divisão das tarefas. 10 | **FIGMA**: Utilizado para a criação do design do site. 11 | **UNSPLASH**: Utilizado para a curadoria de imagens. 12 | **BRANCHES/GitHub**: Utilizado para trabalhar em grupo com mais facilidade. 13 | **HTML**: Utilizado para estruturar o conteúdo da página. 14 | **CSS**: Utilizado para estilizar a página e torná-la visualmente atraente. 15 | **JavaScript**: Utilizado para criação de usuário, validação de usuário, manipulação do dom, criar avisos interativos com o usuário, requisições com API Via CEP com AJAX, modularizar o projeto, implementar o conceito de fila e carrossel de imagens. 16 | 17 | ## Estrutura do Projeto 18 | ![Estrutura do Projeto](./src/img/readMe/Screenshot_2023-07-14_at_4.53.57_PM.png) 19 | 20 | 21 | ## Funcionalidades 22 | O site possui as seguintes funcionalidades: 23 | 24 | - Login; 25 | - Recuperação de senha; 26 | - Área de cadastro para assinatura da box. 27 | 28 | ## Executar o projeto 29 | - Para visualizar o preview online do projeto clique [aqui](https://vimlm.github.io/geekBox/); 30 | 31 | ## Visualizar o projeto 32 | - Clicando [aqui](https://github1s.com/Vimlm/geekBox) você consegue ver ele online; 33 | - Caso prefira faça o clone do projeto em uma pasta de sua preferência e abra a pasta em um editor de texto da sua preferência; 34 | 35 | ## Conclusão 36 | O projeto GeekBox consiste em 11 páginas navegaveis, nas quais apresentamos a empresa e os serviços de assinatura, sendo eles em três modalidades, que variam de acordo com o tamanho/valor da box (P, M ou G). 37 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Geek Box | Caixas com Surpresas 10 | 11 | 12 | 13 |
14 | 21 | 22 | 26 | 27 | 33 |
34 | 35 |
36 |
37 |
38 |

conheça nossa caixinha!

39 | 40 |

Um pedacinho do universo geek para a sua casa, todo mês dentro de uma caixa cheia de surpresas!

41 | 42 | 43 |
44 |
45 | camiseta, caneca, funko e copo 46 |
47 |
48 |
49 | logo harry potter 50 | logo funko 51 | logo marvel 52 | logo lord of the rings 53 | logo star wars 54 |
55 |
56 | 57 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/.DS_Store -------------------------------------------------------------------------------- /src/css/components/background.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-image: url(../../img/background-img/background.png); 3 | background-size: 300% 300%; 4 | height: 100vh; 5 | animation: gradiente 100s ease alternate infinite; 6 | 7 | } 8 | 9 | @keyframes gradiente { 10 | from { 11 | background-position: 0 50%; 12 | } 13 | 14 | to { 15 | background-position: 100% 50%; 16 | } 17 | } -------------------------------------------------------------------------------- /src/css/components/componentes.css: -------------------------------------------------------------------------------- 1 | /* Botões */ 2 | .botao { 3 | border: 1px solid whitesmoke; 4 | padding: 12px 24px; 5 | border-radius: 4px; 6 | width: 48%; 7 | text-transform: uppercase; 8 | font-size: 20px !important; 9 | text-transform: uppercase; 10 | transition: 0.4s; 11 | } 12 | .botao:hover { 13 | transform: scale(0.97); 14 | } 15 | .botao-amarelo { 16 | background: #35F22E; 17 | } 18 | .botao-amarelo:hover { 19 | background: #38dc32; 20 | } 21 | .botao-preto { 22 | background: #121212; 23 | color: #fff; 24 | } 25 | .botao-preto:hover { 26 | background: #ffffff; 27 | color: #000 !important; 28 | border: 1px solid #000; 29 | } 30 | 31 | -------------------------------------------------------------------------------- /src/css/components/footer.css: -------------------------------------------------------------------------------- 1 | /* Footer */ 2 | .footer { 3 | /* position: absolute; 4 | bottom: 0; */ 5 | width: 100%; 6 | height: 56px; 7 | background-color: #50A361; 8 | display: flex; 9 | justify-content: center; 10 | align-items: center; 11 | } 12 | 13 | .footer p { 14 | font-size: 14px; 15 | } -------------------------------------------------------------------------------- /src/css/components/header.css: -------------------------------------------------------------------------------- 1 | /* Header */ 2 | .header { 3 | background-color: #50A361; 4 | display: flex; 5 | height: 96px; 6 | justify-content: space-around; 7 | align-items: center; 8 | } 9 | .header-user a img { 10 | width: 50px; 11 | } 12 | .header a { 13 | transition: 0.3s ease-in-out; 14 | } 15 | .header a:hover { 16 | color: #fff; 17 | } 18 | .header-user { 19 | justify-content: space-evenly; 20 | flex: 1; 21 | } 22 | .logo, 23 | .menu, 24 | .login { 25 | display: flex; 26 | align-items: center; 27 | } 28 | .menu, 29 | .login { 30 | gap: 30px; 31 | } 32 | .logo { 33 | gap: 16px; 34 | margin-right: 100px; 35 | } 36 | .logo span { 37 | text-transform: uppercase; 38 | font-size: 44px; 39 | } 40 | -------------------------------------------------------------------------------- /src/css/global/global.css: -------------------------------------------------------------------------------- 1 | *, 2 | *::before, 3 | *::after { 4 | margin: 0; 5 | padding: 0; 6 | box-sizing: border-box; 7 | } 8 | 9 | body { 10 | margin: 0; 11 | font-family: 'Roboto Flex', sans-serif; 12 | color: var(--cor-w); 13 | } 14 | 15 | img { 16 | max-width: 100%; 17 | height: auto; 18 | display: block; 19 | } 20 | 21 | a { 22 | text-decoration: none; 23 | color: inherit; 24 | } 25 | 26 | ul { 27 | list-style: none; 28 | } 29 | 30 | button { 31 | cursor: pointer; 32 | } 33 | 34 | input, 35 | textarea, 36 | button { 37 | font-family: inherit; 38 | } 39 | 40 | .container { 41 | max-width: 1200px; 42 | margin: 0 auto; 43 | padding: 0 20px; 44 | height: 84vh; 45 | } 46 | input { 47 | padding: 6px 12px; 48 | accent-color: #35f22e; 49 | } 50 | input:focus { 51 | outline: 2px solid #35f22e; 52 | } -------------------------------------------------------------------------------- /src/css/pages/area-usuario.css: -------------------------------------------------------------------------------- 1 | .area-usuario { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | justify-content: center; 6 | min-height: 60vh; 7 | background: #fff; 8 | border-radius: 4px; 9 | margin: 40px auto; 10 | text-align: center; 11 | gap: 40px; 12 | } 13 | .area-usuario h1 { 14 | font-size: 48px; 15 | text-transform: uppercase; 16 | margin-bottom: 40px; 17 | } 18 | .area-usuario h2 { 19 | font-size: 36px; 20 | text-transform: uppercase; 21 | border-bottom: 1px solid #000; 22 | width: 100%; 23 | } 24 | .pedidos-info { 25 | display: flex; 26 | flex-direction: column; 27 | align-items: center; 28 | gap: 40px; 29 | width: 100%; 30 | } 31 | .pedidos { 32 | display: flex; 33 | flex-direction: column; 34 | align-items: center; 35 | justify-content: space-between; 36 | width: 100%; 37 | height: 70%; 38 | } 39 | .pedidos-info { 40 | display: flex; 41 | gap: 40px; 42 | } 43 | .item-pedido { 44 | display: flex; 45 | justify-content: space-between; 46 | margin-top: 12px; 47 | border-bottom: 1px solid #000; 48 | } 49 | .cabecalho-pedidos, 50 | .detalhe-pedidos { 51 | width: 50%; 52 | } 53 | .cabecalho-pedidos { 54 | display: flex; 55 | justify-content: space-between; 56 | } 57 | .detalhe-pedidos { 58 | display: flex; 59 | flex-direction: column; 60 | } 61 | .btn-pedido { 62 | width: 50%; 63 | text-transform: uppercase; 64 | border: 1px solid #000; 65 | } 66 | .botoes-pedido { 67 | display: flex; 68 | gap: 20px; 69 | } -------------------------------------------------------------------------------- /src/css/pages/cadastro.css: -------------------------------------------------------------------------------- 1 | .cad-container { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | } 6 | .img-cadastro { 7 | width: 50%; 8 | } 9 | .cad-formulario { 10 | width: 100%; 11 | padding: 20px; 12 | display: flex; 13 | flex-direction: column; 14 | } 15 | .cad-flex { 16 | display: flex; 17 | flex-direction: column; 18 | width: 100%; 19 | padding: 5px; 20 | color: #35f22e; 21 | } 22 | .dados-pessoais, 23 | .dados-residenciais { 24 | display: flex; 25 | flex-direction: column; 26 | } 27 | .nome-completo, 28 | .senha-confirma, 29 | .cep-numero, 30 | .cidade-estado, 31 | .complemento-bairro { 32 | display: flex; 33 | } 34 | .termo-botao { 35 | display: flex; 36 | flex-direction: column; 37 | gap: 8px; 38 | } 39 | .cad-span, 40 | .termo { 41 | margin-top: 10px; 42 | } 43 | .cad-span a { 44 | text-decoration: underline; 45 | } 46 | .cad-botao { 47 | align-self: end; 48 | } 49 | -------------------------------------------------------------------------------- /src/css/pages/contato.css: -------------------------------------------------------------------------------- 1 | .contato { 2 | display: flex; 3 | align-items: center; 4 | text-align: center; 5 | gap: 0 30px; 6 | } 7 | .contato span { 8 | font-size: 24px; 9 | } 10 | .contato div { 11 | display: flex; 12 | flex-direction: column; 13 | } 14 | .contato div { 15 | display: flex; 16 | align-items: center; 17 | gap: 20px; 18 | } 19 | .contato div img:nth-child(3) { 20 | width: 25%; 21 | } 22 | .contato > div a img { 23 | transition: 0.2s ease-in-out; 24 | } 25 | .contato > div a img:hover { 26 | transform: scale(1.2); 27 | } -------------------------------------------------------------------------------- /src/css/pages/home.css: -------------------------------------------------------------------------------- 1 | 2 | .content-home { 3 | display: flex; 4 | align-items: center; 5 | gap: 60px; 6 | } 7 | .textos-home > h1 { 8 | text-transform: uppercase; 9 | color: #35f22e; 10 | font-size: 96px; 11 | } 12 | .textos-home > p { 13 | font-size: 40px; 14 | letter-spacing: 1.5px; 15 | } -------------------------------------------------------------------------------- /src/css/pages/index.css: -------------------------------------------------------------------------------- 1 | .content-pag-inicial { 2 | display: flex; 3 | align-items: center; 4 | margin-top: 100px; 5 | gap: 60px; 6 | } 7 | .textos-pag-inicial { 8 | display: flex; 9 | flex-direction: column; 10 | gap: 20px; 11 | width: 60%; 12 | } 13 | .textos-pag-inicial > h1 { 14 | color: #35f22e; 15 | text-transform: uppercase; 16 | font-size: 70px; 17 | } 18 | .textos-pag-inicial > p { 19 | font-size: 40px; 20 | letter-spacing: 1.5px; 21 | } 22 | .produtos-pag-inicial { 23 | width: 496px; 24 | } 25 | .container-logos { 26 | display: flex; 27 | opacity: 0.3; 28 | background-color: #ffffff; 29 | border-radius: 96px; 30 | padding: 35px 55px 35px 55px; 31 | justify-content: space-between; 32 | margin-top: 80px; 33 | } 34 | .logos-pag-inicial { 35 | height: 55px; 36 | } 37 | -------------------------------------------------------------------------------- /src/css/pages/login.css: -------------------------------------------------------------------------------- 1 | .box-form { 2 | display: flex; 3 | flex-direction: column; 4 | place-items: center; 5 | padding: 20px; 6 | justify-content: center; 7 | } 8 | .box-form h1 { 9 | text-transform: uppercase; 10 | font-size: 48px; 11 | } 12 | .form { 13 | display: flex; 14 | flex-direction: column; 15 | width: 460px; 16 | } 17 | .email, 18 | .senha { 19 | display: flex; 20 | flex-direction: column; 21 | gap: 8px; 22 | } 23 | .entrada-dados input { 24 | padding: 8px; 25 | } 26 | .entrada-dados .email { 27 | margin-bottom: 1.5rem; 28 | } 29 | .btn-login { 30 | font-size: 24px !important; 31 | width: 100%; 32 | } 33 | .form a { 34 | width: 100%; 35 | display: inline-block; 36 | font-size: 0.7rem; 37 | text-decoration: underline; 38 | margin-bottom: 40px; 39 | text-align: end; 40 | } -------------------------------------------------------------------------------- /src/css/pages/planos.css: -------------------------------------------------------------------------------- 1 | .pag-planos { 2 | display: flex; 3 | align-items: center; 4 | } 5 | .slide { 6 | display: none; 7 | } 8 | .textos-pag-planos{ 9 | display: flex; 10 | flex-direction: column; 11 | gap: 20px; 12 | } 13 | .textos-pag-planos > h2 { 14 | color: #35f22e; 15 | text-transform: uppercase; 16 | font-size: 60px; 17 | } 18 | .textos-pag-planos > p { 19 | font-size: 26px; 20 | letter-spacing: 1.5px; 21 | width: 35ch; 22 | } 23 | .slideshow-container { 24 | display: flex; 25 | justify-content: center; 26 | width: 100%; 27 | } 28 | .btn-assine { 29 | text-align: center; 30 | font-size: 26px; 31 | } -------------------------------------------------------------------------------- /src/css/pages/produtos.css: -------------------------------------------------------------------------------- 1 | .produtos-container { 2 | display: flex; 3 | flex-direction: column; 4 | justify-content: center; 5 | text-align: center; 6 | align-items: center; 7 | } 8 | .produtos-container h1 { 9 | text-transform: uppercase; 10 | max-width: 24ch; 11 | font-size: 64px; 12 | margin-bottom: 60px; 13 | } 14 | .produtos { 15 | display: flex; 16 | gap: 40px; 17 | } 18 | .produtos button { 19 | width: 100%; 20 | margin-top: 20px; 21 | } -------------------------------------------------------------------------------- /src/css/pages/rec-senha.css: -------------------------------------------------------------------------------- 1 | .form-rec-senha { 2 | display: flex; 3 | flex-direction: column; 4 | gap: 20px; 5 | } 6 | .box-rec-senha h1 { 7 | text-transform: uppercase; 8 | } 9 | .btn-rec-senha { 10 | width: 100%; 11 | justify-content: center; 12 | } -------------------------------------------------------------------------------- /src/css/pages/termos.css: -------------------------------------------------------------------------------- 1 | .termos-uso { 2 | display: flex; 3 | flex-direction: column; 4 | justify-content: center; 5 | } 6 | .titulo-termos h1 { 7 | font-size: 48px; 8 | text-transform: uppercase; 9 | color: #35F22E; 10 | margin-bottom: 20px; 11 | } 12 | .termo h2{ 13 | margin-bottom: 16px; 14 | } 15 | .termo h3{ 16 | margin-bottom: 8px; 17 | } 18 | .titulo-termos span { 19 | color: #fff; 20 | } 21 | .termos-conteudo { 22 | display: flex; 23 | flex-direction: column; 24 | } 25 | .termos-conteudo h2 { 26 | font-size: 24px; 27 | color: #35F22E; 28 | } 29 | .termos-conteudo p { 30 | font-size: 18px; 31 | padding-left: 29px; 32 | margin-bottom: 16px; 33 | 34 | } -------------------------------------------------------------------------------- /src/css/style.css: -------------------------------------------------------------------------------- 1 | /* Imports Globais */ 2 | @import url(../css/global/global.css); 3 | 4 | /* Imports Componentes */ 5 | @import url(../css/components/componentes.css); 6 | @import url(../css/components/header.css); 7 | @import url(../css/components/footer.css); 8 | @import url(../css/components/background.css); 9 | 10 | /* Imports Utils */ 11 | @import url(../css/utils/cor.css); 12 | @import url(../css/utils/fontes.css); 13 | 14 | /* Imports Páginas */ 15 | @import url(../css/pages/login.css); 16 | @import url(../css/pages/rec-senha.css); 17 | @import url(../css/pages/termos.css); 18 | @import url(./pages/cadastro.css); 19 | @import url(../css/pages/planos.css); 20 | @import url(../css/pages/index.css); 21 | @import url(../css/pages/home.css); 22 | @import url(../css/pages/contato.css); 23 | @import url(../css/pages/area-usuario.css); 24 | @import url(../css/pages/produtos.css); 25 | -------------------------------------------------------------------------------- /src/css/utils/cor.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --cor-b: #000000; 3 | --cor-w: #ffffff; 4 | --cor-p2: #f2a50c; 5 | --cor-p1: #ffbb00; 6 | } 7 | 8 | /* Utilitários para HTML */ 9 | .cor-b { 10 | color: var(--cor-b); 11 | } 12 | .cor-w { 13 | color: var(--cor-w); 14 | } 15 | .cor-p1 { 16 | color: var(--cor-p1); 17 | } 18 | .cor-p2 { 19 | color: var(--cor-p2); 20 | } -------------------------------------------------------------------------------- /src/css/utils/fontes.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Play:wght@400;700&family=Roboto+Flex:wght@400;700&family=Poppins:wght@400;700&display=swap'); 2 | 3 | .font-tt { 4 | font: 400 1.6rem/1.2 'Play', sans-serif; 5 | } 6 | 7 | .font-tt-bold { 8 | font: 700 2rem/1.2 'Play', sans-serif; 9 | } 10 | 11 | .font-rr { 12 | font: 400 1.6rem/1.2 'Roboto Flex', sans-serif; 13 | } 14 | 15 | .font-rr-light { 16 | font: 300 1.6rem/1.2 'Roboto Flex', sans-serif; 17 | } 18 | 19 | .font-rr-bold { 20 | font: 700 1.6rem/1.2 'Roboto Flex', sans-serif; 21 | } 22 | 23 | .font-poppins { 24 | font-family: 'Poppins', sans-serif; 25 | } -------------------------------------------------------------------------------- /src/img/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/.DS_Store -------------------------------------------------------------------------------- /src/img/background-img/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/background-img/.DS_Store -------------------------------------------------------------------------------- /src/img/background-img/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/background-img/background.png -------------------------------------------------------------------------------- /src/img/cadastro/harry-carta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/cadastro/harry-carta.png -------------------------------------------------------------------------------- /src/img/contato/beatriz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/contato/beatriz.png -------------------------------------------------------------------------------- /src/img/contato/dayane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/contato/dayane.png -------------------------------------------------------------------------------- /src/img/contato/lais.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/contato/lais.png -------------------------------------------------------------------------------- /src/img/contato/leticia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/contato/leticia.png -------------------------------------------------------------------------------- /src/img/contato/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/contato/linkedin.png -------------------------------------------------------------------------------- /src/img/contato/victor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/contato/victor.png -------------------------------------------------------------------------------- /src/img/favicon/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/favicon/favicon.png -------------------------------------------------------------------------------- /src/img/home/homem-com-caixa-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/home/homem-com-caixa-home.png -------------------------------------------------------------------------------- /src/img/icon-header/user-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/icon-header/user-icon.png -------------------------------------------------------------------------------- /src/img/logo-img/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/logo-img/.DS_Store -------------------------------------------------------------------------------- /src/img/logo-img/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/img/pagina-inicial/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/pagina-inicial/.DS_Store -------------------------------------------------------------------------------- /src/img/pagina-inicial/logos/funko-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/pagina-inicial/logos/funko-logo.png -------------------------------------------------------------------------------- /src/img/pagina-inicial/logos/hp-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/pagina-inicial/logos/hp-logo.png -------------------------------------------------------------------------------- /src/img/pagina-inicial/logos/logo-lotr.png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/pagina-inicial/logos/logo-lotr.png.png -------------------------------------------------------------------------------- /src/img/pagina-inicial/logos/marvel-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/pagina-inicial/logos/marvel-logo.png -------------------------------------------------------------------------------- /src/img/pagina-inicial/logos/star-wars-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/pagina-inicial/logos/star-wars-logo.png -------------------------------------------------------------------------------- /src/img/pagina-inicial/produtos-pag-inicial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/pagina-inicial/produtos-pag-inicial.png -------------------------------------------------------------------------------- /src/img/planos/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/planos/.DS_Store -------------------------------------------------------------------------------- /src/img/planos/box-g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/planos/box-g.png -------------------------------------------------------------------------------- /src/img/planos/box-m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/planos/box-m.png -------------------------------------------------------------------------------- /src/img/planos/box-p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/planos/box-p.png -------------------------------------------------------------------------------- /src/img/readMe/Screenshot_2023-07-14_at_4.53.57_PM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/img/readMe/Screenshot_2023-07-14_at_4.53.57_PM.png -------------------------------------------------------------------------------- /src/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/js/.DS_Store -------------------------------------------------------------------------------- /src/js/controller/cadastroController.js: -------------------------------------------------------------------------------- 1 | import { nome, sobrenome, cpf, email, senha, confSenha ,cep, numero, complemento, logradouro, bairro, cidade, estado, botao } from "../view/cadastroView.js"; 2 | import { buscarUsuario, cadastrarUsuario } from "./usuarioController.js"; 3 | import Usuario from "../model/usuarioModel.js"; 4 | 5 | botao.addEventListener('click', (event) => { 6 | event.preventDefault(); 7 | const validaDados = validacao(); 8 | 9 | if(validaDados) { 10 | const usuario = new Usuario( 11 | nome.value, 12 | sobrenome.value, 13 | cpf.value, 14 | email.value, 15 | senha.value, 16 | cep.value, 17 | logradouro.value, 18 | numero.value, 19 | complemento.value, 20 | bairro.value, 21 | cidade.value, 22 | estado.value 23 | ); 24 | 25 | if(buscarUsuario(usuario._email)) { 26 | try { 27 | cadastrarUsuario(usuario._email ,JSON.stringify(usuario)); 28 | Swal.fire('Cadastro realizado com sucesso, você será redirecionado.'); 29 | setTimeout(() => { 30 | window.location.href = './login.html'; 31 | }, 2000); 32 | } catch (e){ 33 | throw new Error(e); 34 | } 35 | } else { 36 | Swal.fire('Email já cadastrado'); 37 | } 38 | } 39 | }); 40 | 41 | function validacao() { 42 | const formulario = document.querySelector('.cad-formulario'); 43 | const inputs = formulario.querySelectorAll('input[required]'); 44 | 45 | let validacao = true; 46 | 47 | for (const input of inputs) { 48 | if (input.value.trim() === '') { 49 | Swal.fire('Preencha todos os dados obrigatórios'); 50 | validacao = false; 51 | break; 52 | } 53 | } 54 | 55 | if (validacao) { 56 | if (senha.value !== confSenha.value) { 57 | Swal.fire('As senhas não conferem.'); 58 | validacao = false; 59 | } else if (senha.value.length < 5) { 60 | Swal.fire('A senha deve conter pelo menos 5 caracteres.'); 61 | validacao = false; 62 | } 63 | } 64 | 65 | return validacao; 66 | } 67 | -------------------------------------------------------------------------------- /src/js/controller/enderecoController.js: -------------------------------------------------------------------------------- 1 | import { preencheEndereco } from '../view/enderecoView.js'; 2 | 3 | function buscaEndereco() { 4 | const request = new XMLHttpRequest(); 5 | const cep = document.getElementById('cep').value; 6 | const url = `https://viacep.com.br/ws/${cep}/json/`; 7 | request.open('GET', url); 8 | if(cep.length === 8) { 9 | request.onload = () => { 10 | if (request.status === 200) { 11 | const endereco = JSON.parse(request.responseText); 12 | if(endereco.erro) { 13 | Swal.fire('Cep não encontrado.'); 14 | return; 15 | } else { 16 | preencheEndereco(endereco); 17 | } 18 | } 19 | } 20 | } else { 21 | Swal.fire('Cep inválido.'); 22 | } 23 | request.send(); 24 | } 25 | 26 | export { buscaEndereco }; -------------------------------------------------------------------------------- /src/js/controller/loginController.js: -------------------------------------------------------------------------------- 1 | import { emailLogin, senhaLogin, btnLogin } from '../view/loginView.js' 2 | 3 | btnLogin.addEventListener('click', event => { 4 | event.preventDefault(); 5 | const usuario = JSON.parse(localStorage.getItem(email.value)); 6 | 7 | if(usuario) { 8 | const logEmail = email.value; 9 | const logSenha = usuario._senha; 10 | if(logEmail == emailLogin.value && logSenha == senhaLogin.value) { 11 | Swal.fire('Login realizado com sucesso, você será redirecionado.'); 12 | setTimeout(() => { 13 | window.location.href = './home.html'; 14 | }, 2000); 15 | } else { 16 | Swal.fire('Usuário e senha não conferem.'); 17 | } 18 | } else { 19 | Swal.fire('Email não encontrado.'); 20 | } 21 | }); -------------------------------------------------------------------------------- /src/js/controller/produtoController.js: -------------------------------------------------------------------------------- 1 | import { boxP, boxM, boxG } from "../view/produtosView.js"; 2 | import { adicionarPedido } from "../view/areaUsuarioView.js"; 3 | 4 | boxP.addEventListener('click', event => { 5 | event.preventDefault(); 6 | Swal.fire('Caixa P adicionada com sucesso.'); 7 | const tamanhoCaixa = 'P'; 8 | adicionarPedido('Pedido P', 'R$59,90', '01/08/2023', tamanhoCaixa); 9 | }); 10 | 11 | boxM.addEventListener('click', event => { 12 | event.preventDefault(); 13 | Swal.fire('Caixa M adicionada com sucesso.'); 14 | const tamanhoCaixa = 'M'; 15 | adicionarPedido('Pedido M', 'R$99,00', '01/08/2023', tamanhoCaixa); 16 | }); 17 | 18 | boxG.addEventListener('click', event => { 19 | event.preventDefault(); 20 | Swal.fire('Caixa G adicionada com sucesso.'); 21 | const tamanhoCaixa = 'G'; 22 | adicionarPedido('Pedido G', 'R$159,00', '01/08/2023', tamanhoCaixa); 23 | }); 24 | -------------------------------------------------------------------------------- /src/js/controller/recSenhaController.js: -------------------------------------------------------------------------------- 1 | import { email, recBotao } from '../view/recSenhaView.js'; 2 | 3 | recBotao.addEventListener('click', event => { 4 | event.preventDefault(); 5 | if(email.value != '') { 6 | Swal.fire(`Email enviado com sucesso, verifique o email ${email.value}`); 7 | } else { 8 | Swal.fire(`Preencha um email.`); 9 | } 10 | }); -------------------------------------------------------------------------------- /src/js/controller/usuarioController.js: -------------------------------------------------------------------------------- 1 | function cadastrarUsuario(index, usuario) { 2 | localStorage.setItem(index, usuario); 3 | } 4 | 5 | function buscarUsuario(key) { 6 | const usuarioJson = localStorage.getItem(key); 7 | return !usuarioJson; 8 | } 9 | 10 | export { cadastrarUsuario, buscarUsuario }; -------------------------------------------------------------------------------- /src/js/model/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Vimlm/geekBox/e909537ea4ba78cd5ba669c9c71689abd9ed659f/src/js/model/.DS_Store -------------------------------------------------------------------------------- /src/js/model/enderecoModel.js: -------------------------------------------------------------------------------- 1 | export class Endereco { 2 | constructor (cep, logradouro, numero, complemento, bairro, cidade, estado) { 3 | this.cep = cep; 4 | this.logradouro = logradouro; 5 | this.numero = numero; 6 | this.complemento = complemento; 7 | this.bairro = bairro; 8 | this.cidade = cidade; 9 | this.estado = estado; 10 | } 11 | } -------------------------------------------------------------------------------- /src/js/model/usuarioModel.js: -------------------------------------------------------------------------------- 1 | import { Endereco } from "./enderecoModel.js"; 2 | 3 | export class Usuario extends Endereco { 4 | constructor(nome, sobrenome, cpf, email, senha, cep, logradouro, numero, complemento, bairro, cidade, estado) { 5 | super(cep, logradouro, numero, complemento, bairro, cidade, estado); 6 | this._nomeCompleto = { 7 | nome, 8 | sobrenome 9 | }; 10 | this._cpf = cpf; 11 | this._email = email; 12 | this._senha = senha; 13 | } 14 | } 15 | 16 | export default Usuario; 17 | -------------------------------------------------------------------------------- /src/js/script.js: -------------------------------------------------------------------------------- 1 | const head = document.querySelector('head'); 2 | 3 | const usuarioController = document.createElement("script"); 4 | 5 | const usuarioModel = document.createElement("script"); 6 | 7 | usuarioController.setAttribute("type", "module"); 8 | usuarioController.setAttribute("src", "../js/controller/usuarioController.js"); 9 | 10 | usuarioModel.setAttribute("type", "module"); 11 | usuarioModel.setAttribute("src", "../js/model/usuarioModel.js"); 12 | 13 | head.appendChild(usuarioController); 14 | 15 | head.appendChild(usuarioModel); 16 | 17 | export { head } -------------------------------------------------------------------------------- /src/js/scriptCadastro.js: -------------------------------------------------------------------------------- 1 | import { head } from "./script.js"; 2 | 3 | const cadastroController = document.createElement("script"); 4 | const enderecoController = document.createElement("script"); 5 | const cadastroView = document.createElement("script"); 6 | const enderecoView = document.createElement("script"); 7 | 8 | cadastroController.setAttribute("type", "module"); 9 | cadastroController.setAttribute("src", "../js/controller/cadastroController.js"); 10 | 11 | cadastroView.setAttribute("type", "module"); 12 | cadastroView.setAttribute("src", "../js/view/cadastroView.js"); 13 | 14 | enderecoController.setAttribute("type", "module"); 15 | enderecoController.setAttribute("src", "../js/controller/enderecoController.js"); 16 | 17 | enderecoView.setAttribute("type", "module"); 18 | enderecoView.setAttribute("src", "../js/view/enderecoView.js"); 19 | 20 | head.appendChild(cadastroController); 21 | head.appendChild(cadastroView); 22 | head.appendChild(enderecoController); 23 | head.appendChild(enderecoView); -------------------------------------------------------------------------------- /src/js/scriptLogin.js: -------------------------------------------------------------------------------- 1 | import { head } from "./script.js"; 2 | 3 | const loginController = document.createElement("script"); 4 | const loginView = document.createElement("script"); 5 | 6 | loginController.setAttribute("type", "module"); 7 | loginController.setAttribute("src", "../js/controller/loginController.js"); 8 | 9 | loginView.setAttribute("type", "module"); 10 | loginView.setAttribute("src", "../js/view/loginView.js"); 11 | 12 | head.appendChild(loginController); 13 | head.appendChild(loginView); -------------------------------------------------------------------------------- /src/js/scriptRecSenha.js: -------------------------------------------------------------------------------- 1 | const head = document.querySelector('head'); 2 | 3 | const recSenhaController = document.createElement("script"); 4 | const recSenhaView = document.createElement("script"); 5 | 6 | recSenhaController.setAttribute("type", "module"); 7 | recSenhaController.setAttribute("src", "../js/controller/recSenhaController.js"); 8 | 9 | recSenhaView.setAttribute("type", "module"); 10 | recSenhaView.setAttribute("src", "../js/view/recSenhaView.js"); 11 | 12 | head.appendChild(recSenhaController); 13 | head.appendChild(recSenhaView); -------------------------------------------------------------------------------- /src/js/view/areaUsuarioView.js: -------------------------------------------------------------------------------- 1 | const detalhePedidos = document.getElementById('detalhePedidos'); 2 | const btnAtualizar = document.getElementById('btn-atualizar'); 3 | const btnRecebido = document.getElementById('btn-recebido'); 4 | 5 | let filaPedidos = JSON.parse(localStorage.getItem('filaPedidos')) || []; 6 | 7 | function salvarFilaPedidos() { 8 | localStorage.setItem('filaPedidos', JSON.stringify(filaPedidos)); 9 | } 10 | 11 | export function adicionarPedido(pedido, valor, entrega, tamanho) { 12 | filaPedidos.push({ pedido, valor, entrega, tamanho }); 13 | salvarFilaPedidos(); 14 | } 15 | 16 | function removerPedido() { 17 | if (filaPedidos.length > 0) { 18 | filaPedidos.shift(); 19 | atualizarDetalhePedidos(); 20 | salvarFilaPedidos(); 21 | } 22 | } 23 | 24 | function atualizarDetalhePedidos() { 25 | detalhePedidos.innerHTML = ''; 26 | 27 | for (const pedido of filaPedidos) { 28 | const pedidoElement = document.createElement('div'); 29 | pedidoElement.classList.add('item-pedido'); 30 | pedidoElement.innerHTML = ` 31 | ${pedido.pedido} 32 | ${pedido.valor} 33 | ${pedido.entrega} 34 | `; 35 | detalhePedidos.appendChild(pedidoElement); 36 | } 37 | } 38 | 39 | document.addEventListener('DOMContentLoaded', () => { 40 | try { 41 | atualizarDetalhePedidos(); 42 | 43 | btnRecebido.addEventListener('click', event => { 44 | event.preventDefault(); 45 | Swal.fire('O pedido foi recebido.'); 46 | removerPedido(); 47 | }); 48 | 49 | btnAtualizar.addEventListener('click', event => { 50 | event.preventDefault(); 51 | atualizarDetalhePedidos(); 52 | }); 53 | } catch (e) { 54 | console.log(e.message); 55 | } 56 | }); 57 | -------------------------------------------------------------------------------- /src/js/view/cadastroView.js: -------------------------------------------------------------------------------- 1 | const nome = document.getElementById('nome'); 2 | const sobrenome = document.getElementById('sobrenome'); 3 | const cpf = document.getElementById('cpf'); 4 | const email = document.getElementById('email'); 5 | const senha = document.getElementById('senha'); 6 | const confSenha = document.getElementById('confirma-senha') 7 | const cep = document.getElementById('cep'); 8 | const numero = document.getElementById('numero'); 9 | const logradouro = document.getElementById('logradouro'); 10 | const complemento = document.getElementById('complemento'); 11 | const bairro = document.getElementById('bairro'); 12 | const cidade = document.getElementById('cidade'); 13 | const estado = document.getElementById('estado'); 14 | const botao = document.getElementById('btn-registrar'); 15 | const checkBox = document.getElementById('check-box'); 16 | 17 | export { nome, sobrenome, cpf, email, senha, confSenha, cep, numero, complemento, logradouro, bairro, cidade, estado, botao, checkBox }; -------------------------------------------------------------------------------- /src/js/view/enderecoView.js: -------------------------------------------------------------------------------- 1 | import { cep, logradouro, bairro, cidade, estado } from './cadastroView.js'; 2 | import { buscaEndereco } from '../controller/enderecoController.js' 3 | 4 | function preencheEndereco(endereco) { 5 | logradouro.value = endereco.logradouro; 6 | bairro.value = endereco.bairro; 7 | cidade.value = endereco.localidade; 8 | estado.value = endereco.uf; 9 | } 10 | 11 | cep.addEventListener('focusout', () => { 12 | if(cep.value === '') { 13 | Swal.fire('Primeiro você tem que preencher o cep'); 14 | } else { 15 | buscaEndereco(); 16 | } 17 | }); 18 | 19 | export { preencheEndereco }; -------------------------------------------------------------------------------- /src/js/view/loginView.js: -------------------------------------------------------------------------------- 1 | const emailLogin = document.getElementById('email'); 2 | const senhaLogin = document.getElementById('senha'); 3 | const btnLogin = document.getElementById('btn-login'); 4 | const btnRegistre = document.getElementById('btn-registre'); 5 | 6 | export { emailLogin, senhaLogin, btnLogin, btnRegistre } -------------------------------------------------------------------------------- /src/js/view/produtosView.js: -------------------------------------------------------------------------------- 1 | const boxP = document.getElementById('box-p'); 2 | const boxM = document.getElementById('box-m'); 3 | const boxG = document.getElementById('box-g'); 4 | 5 | export { boxP, boxM, boxG } -------------------------------------------------------------------------------- /src/js/view/recSenhaView.js: -------------------------------------------------------------------------------- 1 | const email = document.getElementById('rec-email'); 2 | const recBotao = document.getElementById('recBotao'); 3 | 4 | export { email, recBotao } -------------------------------------------------------------------------------- /src/js/view/slideShowView.js: -------------------------------------------------------------------------------- 1 | let slideIndex = 0; 2 | showSlides(); 3 | 4 | function showSlides() { 5 | let slides = document.getElementsByClassName("slide"); 6 | for (let i = 0; i < slides.length; i++) { 7 | slides[i].style.display = "none"; 8 | } 9 | 10 | slideIndex++; 11 | 12 | if (slideIndex > slides.length) { 13 | slideIndex = 1; 14 | } 15 | 16 | slides[slideIndex - 1].style.display = "block"; 17 | setTimeout(showSlides, 3000); 18 | } 19 | 20 | function changeSlide(n) { 21 | slideIndex += n; 22 | showSlides(); 23 | } -------------------------------------------------------------------------------- /src/pages/area-usuario.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Área Usuário 12 | 13 | 14 | 15 |
16 | 20 | 28 |
29 | 30 |
31 |

área do cliente

32 |
33 |
34 |

Pedidos

35 |
36 | Pedidos 37 | Valor 38 | Data Entrega 39 |
40 |
41 | 42 |
43 |
44 | 45 |
46 |
47 | 48 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /src/pages/cadastro.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Se junte nessa mania 13 | 14 | 15 | 16 |
17 | 24 | 25 | 29 | 30 | 36 |
37 | 38 |
39 | imagem do harry potter com cartas de hogwarts 40 |
41 |
42 | Dados Pessoais 43 |
44 | 45 |
46 | 47 | 48 |
49 | 50 |
51 | 52 | 53 |
54 |
55 | 56 |
57 | 58 | 59 |
60 | 61 |
62 | 63 | 64 |
65 | 66 |
67 |
68 | 69 | 70 |
71 | 72 |
73 | 74 | 75 |
76 |
77 |
78 | 79 | Dados Residenciais 80 |
81 | 82 |
83 |
84 | 85 | 86 |
87 | 88 |
89 | 90 | 91 |
92 |
93 | 94 |
95 | 96 | 97 |
98 | 99 |
100 |
101 | 102 | 103 |
104 | 105 |
106 | 107 | 108 |
109 |
110 | 111 |
112 |
113 | 114 | 115 |
116 | 117 |
118 | 119 | 120 |
121 |
122 |
123 | 124 |
125 |
126 | 127 | Li e concordo com os termos e condições 128 |
129 | 130 | 131 |
132 |
133 |
134 | 135 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /src/pages/contato-logado.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Contato 9 | 10 | 11 |
12 | 16 | 24 |
25 | 26 |
27 |
28 | foto letecia 29 | Letícia Nunes 30 | logo linkedin 31 |
32 |
33 | foto victor 34 | Victor Martins 35 | logo linkedin 36 |
37 |
38 | foto dayane 39 | Dayane Stefane 40 | logo linkedin 41 |
42 |
43 | foto beatriz 44 | Beatriz Santos 45 | logo linkedin 46 |
47 |
48 | foto lais 49 | Laís Müller 50 | logo linkedin 51 |
52 |
53 | 54 | 57 | 58 | -------------------------------------------------------------------------------- /src/pages/contato.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Contato 9 | 10 | 11 |
12 | 19 | 20 | 24 | 25 | 31 |
32 | 33 |
34 |
35 | foto letecia 36 | Letícia Nunes 37 | logo linkedin 38 |
39 |
40 | foto victor 41 | Victor Martins 42 | logo linkedin 43 |
44 |
45 | foto dayane 46 | Dayane Stefane 47 | logo linkedin 48 |
49 |
50 | foto beatriz 51 | Beatriz Santos 52 | logo linkedin 53 |
54 |
55 | foto lais 56 | Laís Müller 57 | logo linkedin 58 |
59 |
60 | 61 | 64 | 65 | -------------------------------------------------------------------------------- /src/pages/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Página Inicial 10 | 11 | 12 | 13 |
14 | 18 | 19 | 27 |
28 | 29 |
30 |
31 | homem loiro supreso abrindo uma caixa de papelão geekbox 32 |
33 | 34 |
35 |

caixa do mês de agosto

36 | 37 |

Novos temas, novos itens. Descubra tudo o que vem por aí e dê um UP na sua coleção!

38 |
39 |
40 | 41 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/pages/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Faça Login 13 | 14 | 15 | 16 |
17 | 24 | 25 | 29 | 30 | 36 |
37 | 38 |
39 |

Login

40 |
41 |
42 | 46 | 47 |
48 | 49 | 50 |
51 | esqueceu a senha? 52 |
53 | 54 | 55 |
56 |
57 | 58 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /src/pages/planos.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Nossas Caixas 11 | 12 | 13 | 14 |
15 | 22 | 23 | 27 | 28 | 34 |
35 | 36 |
37 |
38 |
39 | foto plano p 40 |
41 | 42 |
43 | foto plano m 44 |
45 | 46 |
47 | foto plano g 48 |
49 |
50 | 51 |
52 |

feita para seu tamanho!

53 | 54 |

Aqui você garantee seus itens misteriosos cuidadosamente selecionados, que somados valem mais do que o valor pago! 55 | São tês opções (P, M e G) para você escolher conforme suas necessidades :)!

56 |
57 |
58 | 59 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /src/pages/produtos.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Nossas Caixas 13 | 14 | 15 |
16 | 20 | 21 | 29 |
30 | 31 |
32 |

escolha uma caixa que combine com você!

33 | 34 |
35 |
36 | imagem box camiseta 37 | 38 |
39 | 40 |
41 | imagem box camiseta e caneca 42 | 43 |
44 | 45 |
46 | imagem box camiseta copo e funko do harry potter 47 | 48 |
49 |
50 |
51 | 52 | 55 | 56 | -------------------------------------------------------------------------------- /src/pages/rec-senha.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Esqueceu sua senha? 12 | 13 | 14 | 15 |
16 | 23 | 24 | 28 | 29 | 35 |
36 | 37 |
38 |
39 |

Esqueceu sua senha?

40 |
41 |
42 | 46 | 47 | 48 | 49 |
50 |
51 | 52 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/pages/termos.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Termos e Condições 11 | 12 | 13 | 14 |
15 | 22 | 23 | 27 | 28 | 34 |
35 | 36 |
37 |
38 |

termos e condições.

39 |
40 | 41 |
42 |
43 |

1. Política de Estorno

44 |

1.1. Devoluções e reembolsos

45 |

46 | Aceitamos devoluções de caixas de coisas geek dentro de um prazo de 30 dias a partir da data de entrega. Se você não estiver satisfeito com o conteúdo da caixa ou se houver algum problema com os itens recebidos, entre em contato conosco para iniciar o processo de devolução.

47 | 48 |

1.2. Condições de devolução

49 |

Para que a devolução seja aceita, a caixa de coisas geek deve estar em sua embalagem original e em perfeitas condições. Todos os itens e acessórios devem ser devolvidos juntamente com a caixa. Verificaremos os itens devolvidos para garantir que estejam em boas condições antes de processar o reembolso.

50 | 51 |

1.3. Reembolso

52 |

Após recebermos e avaliarmos a caixa de coisas geek devolvida, processaremos o reembolso dentro de 5 dias úteis. O reembolso será feito pelo mesmo método de pagamento utilizado na compra original. Observe que os custos de envio não são reembolsáveis e o cliente é responsável pelo custo de envio da devolução.

53 |
54 | 55 |
56 |

2. Política de Reembolso

57 |

2.1. Reembolsos

58 |

59 | Oferecemos reembolsos para caixas de coisas geek dentro de um prazo de 30 dias a partir da data de entrega. Se você não estiver satisfeito com o conteúdo da caixa ou se houver algum problema com os itens recebidos, entre em contato conosco para solicitar um reembolso.

60 | 61 |

2.2. Condições de reembolso

62 |

Para que o reembolso seja processado, a caixa de coisas geek deve ser devolvida em sua embalagem original e em perfeitas condições. Todos os itens e acessórios devem ser devolvidos juntamente com a caixa. Após recebermos e avaliarmos os itens devolvidos, emitiremos o reembolso.

63 |
64 |
65 |
66 | 67 | 70 | 71 | 72 | --------------------------------------------------------------------------------