Skip to content

Lasso é uma loja virtual full stack construída com React, Firebase e SCSS modules.

License

Notifications You must be signed in to change notification settings

tiagocreator/lasso-ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lasso E-commerce

Lasso é uma loja virtual full stack completa onde os usuários podem criar conta e fazer login, adicionar produtos ao carrinho, fazer compras, filtrar produtos por categoria, nome, marca, ver a lista de pedidos e etc. O projeto conta com uma dashboard Admin, onde a conta de adiminstrador selecionada pode adicionar novos produtos ao banco de dados, editar e remover produtos.


✨ Características

  • Usuários podem criar conta, fazer login e recuperar a senha perdida
  • Usuários podem adicinar produtos ao carrinho e alterar a quantidade de produtos desejada
  • O Usuário pode ver a lista de pedidos, status do pedido, dar nota ao pedido e fazer uma avaliação
  • Sistema de paginação automático
  • Filtro de produtos por marca, relevância, nome, ordem, preço e etc.
  • O administrador pode adicionar novos produtos pela dashboard, com upload de imagens para o armazenamento do Firebase
  • O administrador pode ver a lista completa dos produtos, e atualizar o status do pedido.
  • O administrador pode modificar os produtos como desejar, incluindo alterar a imagem, que remove a imagem antiga do banco de dados e substitui por outra nova, e remover produtos da lista.

Principais Tecnologias

Nome Descrição
React Maior framework JavaScript, criada pelo grupo Facebook
Firebase Serviço de back end na nuvem da Google
Firestore Serviço de banco de dados e armazenamento na nuvem da Google
Redux Biblioteca para armazenamento global de estados de componentes JavaScript.
Stripe Serviço de pagamentos online com uma API de pagamentos back end
Nodejs Ambiente de execução para back end em JavaScript
Express Uma das mais populares frameworks para Nodejs

Outras tecnologias

Nome Descrição
EmailJS Ferramenta para envio e recebimento de emails pelo front-end
Módulos Sass Uma forma de escrever Sass que simplifica o código e ajuda da refatoração
Notiflix Biblioteca de notificações em formato de 'popups'
React toastify Biblioteca de caixa de notificações e informações

Cartão de crédito para teste

O Stripe provê um cartão de crédito teste para comprar os produtos, que você pode usar para testar a função de checkout.

✔️ Para simular um pagamento válido, use o seguinte número de cartão:

Número do cartão: 4242 4242 4242 4242

Use uma data futura válida, como 12/34.

Use qualquer CVC de três dígitos.

Use qualquer valor nos outros campos do formulário.

Captura de tela de 2023-04-06 02-29-57

⚠️ Somente teste, o produto não será comprado de verdade.

❌ Para simular uma compra inválida (recusada) use o seguinte número de cartão:

Número do cartão: 4000 0000 0000 0002


Como usar a Lasso no seu computador

Para ter uma cópia do site funcionando locamente no seu computador, siga esses passos simples:

Passo 1:

  1. Faça um fork desse repositório e clone no seu computador, ou baixe o código em formato de zip e extraia.
  2. Tenha instalado em seu sistema os requisitos globais de uso: Node e npm.
  3. Abra a pasta do projeto com o terminal ou pelo vscode e execute o comando npm i para instalar todas as dependências.

Passo 2:

  1. Crie uma conta no serviço Firebase da google e inicie um novo projeto para ter acesso ás chaves de acesso necessárias.
  2. Inicie um serviço de Firestore pela sua conta da Firebase.

Passo 3:

  1. Crie um arquivo chamado .env na pasta principal do site, 'pasta root'.
  2. Adicione o trecho de código substituindo 'sua-chave-aqui' pelas respectivas chaves que foram passadas para você após a criação da conta do Firebase
REACT_APP_API_KEY=sua-chave-aqui
REACT_APP_APP_ID=sua-chave-aqui
REACT_APP_AUTH_DOMAIN=sua-chave-aqui
REACT_APP_MESSAGING_SENDER_ID=sua-chave-aqui
REACT_APP_PROJECT_ID=sua-chave-aqui
REACT_APP_STORAGE_BUCKET=sua-chave-aqui

Isso será o que vai te dar acesso á sua conta da Firebase e o serviço da Firestore.

Passo 4:

  1. Crie uma conta de testes grátis no Stripe para ter acesso ás chaves para o serviço de pagamento.
  2. Na dashboard do Stripe, revele e copie as chaves 'publicável' e 'secreta'.
  3. No seu arquivo .env criado no passo anterior, adicione o trecho de código abaixo substituindo 'sua-chave-aqui' pelas respectivas chaves do Stripe.
REACT_APP_STRIPE_PUBLIC_KEY=sua-chave-aqui
REACT_APP_STRIPE_SECRET_KEY=sua-chave-aqui

Passo 5:

  1. Para iniciar o servidor, digite npm run start:server no seu terminal dentro da pasta do projeto.
  2. Para iniciar o front end, digite npm run start:front, recomendo que inicie o servidor primeiro e espere o primeiro iniciar antes de iniciar o segundo.

Conta de administrador / Dashboard

Para acessar a Dashboard de administrador crie uma conta no site normalmente com o email de sua escolha para ser o email do Admin, depois adicione mais uma linha de código no seu arquivo .env substituindo 'sua-conta-admin' pelo email que você criou.

REACT_APP_ADMIN_EMAIL=sua-conta-admin

Recomendo que use um email real para ter a funcionalidade de recuperação de senha


Formulário de contato

O formulário de contato foi construído usando o EmailJS, um conjunto de ferramentas de envio e recebimento de emails que usa o front-end, sem a necessidade de um servidor. Para começar, acesse o site do EmailJS e crie uma conta gratúita. Após isso siga os seguintes passos:

  1. Na dashboard do EmailJS, clique em 'Add New Service', escolha o provedor de email de sua preferência e conecte, nesse caso, eu ultilizei o Gmail.
  2. Anote a Service ID.

Captura de tela de 2023-04-06 02-17-05

  1. Ainda na dashboard, vá até 'Email Templates', clique em 'Create New Template' e faça um modelo de email de sua preferencia, esse será o modelo que você irá receber com as informações que o cliente passar no formulário, as referências precisam ser iguais ao atributo name='valor' dos inputs, vou deixar um exemplo de como eu fiz o meu abaixo:

emailjs-template

  1. Após feito isso, anote o Template ID

Captura de tela de 2023-04-06 02-17-45

  1. Agora a última chave que você vai precisar, vá no menu de navegação, clique no seu nome de usuário para entrar nas configurações, na aba 'General', anote sua Public Key.

Captura de tela de 2023-04-06 02-18-30

  1. No seu arquivo .env, adicione o trecho de código abaixo substituindo 'sua-chave-aqui' pelas respectivas chaves do EmailJS, na seguinte ordem: Pública, Service e Template.
REACT_APP_EMAILJS_PUBLIC_KEY=sua-chave-aqui
REACT_APP_EMAILJS_SERVICE_ID=sua-chave-aqui
REACT_APP_EMAILJS_TEMPLATE_ID=sua-chave-aqui

📓 Licença

Criado e distribuído sob a licença MIT, veja LICENSE.txt para mais informações.


🤝 Contribuições

Este é um projeto em construção!

As contribuições são o que torna a comunidade de código aberto um lugar incrível para aprender, se inspirar e criar. Qualquer contribuições que você fizer são muito apreciadas.

Se você tiver uma sugestão para melhorar o projeto, faça um fork do repositório e crie uma solicitação pull. Você também pode simplesmente abrir uma issue com a tag "melhoria". Se puder, por favor, dê para dar uma estrela ao projeto! Obrigado.


Imagens

Slider de imagens

lasso-0

Produtos

lasso-1

Veja mais no link do projeto abaixo