Coder Social home page Coder Social logo

laravel_commerce-2's Introduction

Laravel PHP Framework

Build Status Total Downloads Latest Stable Version Latest Unstable Version License


poo-code-education

Curso Laravel eCommerce - Code Education Laravel 5.1

Fase 1 do projeto

Instalando e versionando

  • Nessa primeira fase do projeto, você deverá instalar o Laravel, mudar o namespace padrão da aplicação para CodeCommerce e versionar todos os arquivos criados no Git.
  • Não esqueça de testar a aplicação rodando o comando: php artisan serve

Fase 2 do projeto

Criando os primeiros Models

  • Nessa fase do projeto, você deverá criar 2 models:
Category
name - varchar(80)
description - text
Product
name - varchar(80)
description - text
price - decimal
  • Todos esses campos apresentados devem ser utilizados como Mass Assigment.

Registre 2 rotas:

  • admin/categories: Deve apontar para o controller AdminCategoriesController e para action index
  • admin/products: Deve apontar para o controller AdminProductsController e para action index Quando o usuário acessar qualquer uma dessas rotas, ele deverá acessar a listagem dos registros do model correspondente.

Fase 3 do projeto

Criação das rotas

  • Agora que você já possui os dois models criados, crie as rotas necessárias para que possamos realizar um CRUD em cada model.
  • Para facilitar a administração do arquivo de rotas, as mesmas deverão ser totalmente agrupadas pelo prefixo: admin e pelo seu próprio model.

Exemplo:

admin/products, admin/categories

OBS:

  • Enquanto nem todos os controllers e actions ainda não estão definidos, aponte as rotas para um controller e action qualquer.
  • Todas as rotas devem possuir nome e seus parâmetros devem ser validados.

Fase 4 do projeto

CRUD

  • Nessa fase, você deverá criar 2 CRUDs.
  • Categories (exatamente como fizemos no vídeo)
  • Products.
  • No caso do CRUD de Products, devemos ter os seguintes campos:
 - name
 - description
 - price (decimal)
 - featured (boolean) Aqui você pode criar um campo do tipo: checkbox, radio ou select
 - recommend (boolean) Aqui você pode criar um campo do tipo: checkbox, radio ou select

OBS:

  • Utilize o recurso de migrations para gerar a tabela "products".

Fase 5 do projeto

SEEDING

  • Nessa fase, você deverá adicionar dados Fakes nas seguintes entidades:
 - User   
 - Category   
 - Product

Fase 6 do projeto

RELACIONAMENTO

  • Essa fase do projeto é bem simples.
  • Você apenas deverá criar o relacionamento entre os Models, exatamente como fiz nesse capítulo.
  • Também, você deverá implementar a paginação em todos os CRUDs.

OBS:

  • Não se esqueça de checar se suas rotas estão seguindo o mesmo padrão que estou utilizando.

Fase 7 do projeto

UPLOAD DE IMAGENS

  • Essa etapa é bastante simples.
  • Você simplesmente precisa repetir exatamente o processo de cadastro de imagens de produtos com upload.
  • Por outro lado, gostaria que você também testasse o processo de upload utilizando a Amazon S3. Ok?

OBS:

  • Você tem que criar uma maneira de que quando apagar um produto (destroy), se ele tiver imagens, apagar os arquivos das imagens também.

Fase 8 do projeto

TAGS

  • Agora que você já aprendeu a trabalhar com relacionamentos ManyToMany, adicione ao formulário de Criação / Edicação de produtos, a opção de setar tags para determinado produto em um textarea (entre vírgulas).

OBS:

  • Uma tag já adicionada na tabela de tags não pode ter o registro repetido, ou seja, não pode ter duas categorias "notebooks" na tabela tags.

Fase 9 do projeto

LOJA

Agora que você já possui a base para gerar a home da Loja, você precisa:

  • Listar os produtos em desta
  • Listar os produtos recomendados

OBS:

  • Quando clicarmos em um item da categoria, deveremos exibir apenas os produtos de uma determinada categoria.

Fase 10 do projeto

ASSETS

  • Repita exatamente o aprendido nesse capítulo para que você possa gerenciar seus assets utilizando o Elixir.

Fase 11 do projeto

PRODUTOS COM TAGs

  • Nessa fase do projeto, você deverá repetir exatamente o que você aprendeu nesse capítulo.
  • Você também deverá exibir as tags de um determinado produto, no momento da exibição do mesmo na loja. Cada tag deverá ter um link que, quando clicado, deverá encaminhar o usuário para uma página onde teremos a listagem de todos os produtos associados a tag correspondente.

Fase 12 do projeto

CART

  • Nessa fase do projeto, você deverá criar o carrinho de compras como demonstrado, porém, no próprio carrinho, você deverá adicionar uma opção para que possamos alterar a quantidade de um determinado produto.
  • Fique livre para utilizar javascript (ou não), para que possamos realizar uma requisição de atualização no carrinho em relação a quantidade de um produto.

Fase 13 do projeto

ORDERS E AUTH

  • Nessa fase do projeto, você terá de deixar o sistema totalmente preparado para gerar as ordens de serviços (Order e OrderItem) apenas para os usuários logados que tenham itens no carrinho de compra.
  • Quando o usuário clicar em fechar carrinho, a ordem de serviço deve ser gerada automaticamente.
  • Caso o usuário não esteja logado, redirecione-o para a página de login antes do mesmo finalizar o pedido.
  • Também você deverá adicionar um novo campo na tabela de usuários chamado: is_admin (boolean).
  • A partir de agora, apenas usuários logados e com is_admin=1 poderão acessar a área administrativa de nossa loja.

Fase 14 do projeto

CHECKOUT E PEDIDOS

  • Agora que você já aprendeu a realizar o processo de checkout, realize as seguintes tarefas:
  • No momento do registro de um novo usuário, crie os campos adicionais para que seu endereço completo seja preenchido.
  • Na listagem de pedidos contratados pelo usuário, traga o status correto ao invés de trabalharmos com os números inteiros.
  • Crie na área administrativa uma página com a listagem de todos os pedidos realizados e a possibilidade de editar o status dos mesmos.

Fase 15 do projeto

PAGSEGURO

  • Agora que você já viu como iniciamos o processo de integração com o Pagseguro, deixarei como um desafio opcional para que você grave o código da transação do pagseguro, no processo de retorno da transação, no caso do pagamento ser aprovado.
  • Você também, opcionalmente, poderá criar uma action, para capturar o retorno automático do pagseguro para dar baixas em pagamento que não foram autorizados automaticamente (boleto e cartão de crédito quando em análise).

Bruno Castro - Development

laravel_commerce-2's People

Contributors

brunolagoa avatar

Watchers

Robinho avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.