lameck/smartcart

"Carrinho de compras com storage"

dev-master 2018-06-19 23:28 UTC

This package is not auto-updated.

Last update: 2025-05-01 04:12:11 UTC


README

Packager Smartcart

SmartCart é um packager criado para o framework laravel 5.5 por Lameck Fernandes. Tem o objetivo de automatizar o desenvolvimento de aplicações que utilizam um carrinho de compras.

Este packager foi desenvolvido para acelerar o desenvolvimento de lojas virtuais que utilizam um carrinho de compras. Ou seja, neste packager foram desenvolvidos as rotas, tabelas e os controles de uma aplicação convencional. Para exemplificar seu uso foi desenvolvido um protótipo com bootstrap 4 que acompanha o packager. Em resumo, para o seu complemento basta a API de pagamento.

O cart foi baseado no uso de sessão para controle da lista de pedidos. Esta aplicação, inicialmente, trata-se do modelo server-side. Não foi desenvolvido a API para client-side, o que poderá conter em outra versão. Contudo, caso seja o interesse, a maior parte do projeto já foi desenvolvida o que bastaria retornos em json. O modelo usado para tokens é o nativo CSFR. Para JWT basta mínimas alteraçes com o objetivo é acelerar o desenvolvido. Embora o DER ainda dependa das características que variam a cada projeto, utiliando com este packager o tempo de desenvolvido se reduz customizando o código de acordo com suas necessidades.

As tabelas foram criadas de acordo com o que é mais comum em cadastros de produtos como: o controle de estoque (inventário); categoria; marca; fornecedor; e propriamente o produto.

Este packager contém:


Publishables

Migrations

Ordem de migração. Notei que entre o sistema Linux e windows, a ordem se faz necessária. Alguns possíveis erros, que varia com o sistema e banco que esta usando, poderia ser que a forekey não pode ser nula. Devido a relação de composição entre as tabelas, category, brand, address e status não migram forekeys mas elas exportam. As tabelas que migram são: provider de status e address; product de provider; e inventory de product. Não ouve problemas para sistemas linux, especificamente Ubuntu 16 LTS rodando phpmyadmin com mysql. Porém no windows, com wampserver apresentou estes problemas os quais foram corrigidos alterando a ordem das tabelas. Isso, se for realmente usar php artisan migrate --force.

  • 2018_03_26_225025_create_category
  • 2018_03_26_230229_create_brand
  • 2018_03_26_234958_create_address
  • 2018_03_27_000540_create_status
  • 2018_03_27_032617_create_provider
  • 2018_03_27_032618_create_product
  • 2018_03_27_032619_create_inventory

  • Seeders

    Opcional. Para uso do exemplo de aplicação do smartcart

  • smcAddressTableSeeder
  • smcBrandTableSeeder
  • smcCategoryTableSeeder
  • smcInventoryTableSeeder
  • smcProductTableSeeder
  • smcProviderTableSeeder
  • smcStatusTableSeeder

  • Resources

    views

      Layouts

      Patas onde contém dos templates da aplicação

    • app: Template utilizado nas páginas do exemplo de aplicação
      Partials

      Parte integrante do template usado nos includes do blade

    • header: Cabeçalho do layout
      Shop

      Contem as páginas do cart

    • cart: Página de resumo de compras
    • checkout: Página de efetuação de pagamento
    • index: Página de lista dos produtos
      User
    • profile Página onde conteria as ordens de compra e demais relações ao usuário
    • signin: Página de login no sistema para uso do smartcart
    • signup: Página de cadastro no sistema
  • home: Página de apresentação do smartcart

  • SRC

    Http

      Controllers
    • AccountController: Responsável pelo gerenciamento de usuarios do sistema
    • ShopController: Reponsável pelo controle das funcionalidades do smartcart
      Middleware
    • Authenticate: Responsável por limitar acesso às compras no sistema
      Models
    • Product: Camada que intermedia o banco de dados e a view do sistema
      Rotes
    • api: Lista de roteamento dos controles do sistema
      Provider
    • SmartCartServiceProvider: Provider da aplicação, a assinatura no laravel

    Assinatura: Packagerlist

    INSTALAÇÃO

    Por enquanto esta disponível a versão de desenvolvimento. composer require lameck/smartcart:@dev

    PROVIDER: app/config/app.php

    ...
    Lameck\Smartcart\SmartcartServiceProvider::class,

    KERNEL: app/http/kernel.php

    Adicione em routemiddlware:
    'smcAuth' => 'Lameck\Smartcart\Http\Middleware\Authenticate',

    PUBLISH

    php artisan vendor:publish --provider="Lameck\Smartcart\SmartcartServiceProvider"

    Até neste ponto toda configuração necessária esta definida. Caso deseje ver um exemplo prossiga com os seeders

    EXEMPLO

    Crie um banco de dados e configure o arquivo nativo .env

    Crie as tabelas no banco: php artisan migrate --force

    Adicione ao arquivo DatabaseSeeder

        //$this->call(UsersTableSeeder::class);
        $this->call(smcCategoryTableSeeder::class);
        $this->call(smcBrandTableSeeder::class);
        $this->call(smcAddressTableSeeder::class);
        $this->call(smcStatusTableSeeder::class);        
        $this->call(smcProviderTableSeeder::class);
        $this->call(smcProductTableSeeder::class);
        $this->call(smcInventoryTableSeeder::class);
    

    Se não digitar este comando, as tabelas poderão não ser populadas: composer dump-autoload. Um possível erro seria algo como "a tabela smcCategoryTableSeeder não foi encontrada"

    Popule as tabelas: php artisan db:seed

    Rode o servidorphp artisan serve

    Para acessar as rotas basta php artisan rout:list. O protóripo se encontra na localhot:8000/smc

    Possivel erro ao acessar a página SHOP

    Access denied for user 'homestead'@'localhost' (using password: YES)
    

    Pare o servidor. Limpe o cache: php artisan cache:clear Reinicie php artisan serve

    Domínio

    Home

    SHOP


    Criando conta

    Por utilizar sessão como meio de gerenciamento do cart, é necessário logar no sistema.



    Após Login, add pedidos


    Carrinho



    Carrinho

    Adicione mais pedidos, exclua algum item ou apague todos os itens.



    Checkout

    Basta inserir a API de pagamento


    Próximos plugins adiciono o pagamento com diversos places dentro e fora do Brasil.