Skip to content

Latest commit

 

History

History
176 lines (131 loc) · 8.45 KB

README.md

File metadata and controls

176 lines (131 loc) · 8.45 KB

Arte Em Plástico

Arte em Plástico

Sumário

Participantes
Figma
Requisitos do Sistema
Descrição do Projeto
Comentários Sobre o código
Testes Automatizados
Resultados dos Testes
Executando o código
Problemas
Comentários
Reviews

Participantes

Diógenes Silva Pedro - 11883476
Marco Antônio Ribeiro de Toledo - 11796419
Milena Corrêa da Silva - 11795401

Projeto no Figma

Requisitos do sistema

Descrição Geral

  • O sistema trabalha com a venda de discos de vinis importados e nacionais.
  • O sistema possui dois tipos de usuários: Clientes e Admnistradores.
    • Os admnistradores são aqueles responsáveis por gerenciar clientes, produtos e outros admnistradores.
    • Os clientes são as pessoas que compraram os discos.
    • A aplicação já vem com uma conta padrão de administrador com login: admin; senha: admin.
  • O sistema utiliza a lógica tradicional de "carrinhos" para realizar as vendas.
    • O usuário logado pode adicionar/remover itens do carrinho.
    • A compra pode ser concluída após o cliente confirmar/adicionar o endereço de entrega e o método de pagamento (cartão, boleto ou pix).
    • O carrinho é esvaziado quando uma compra é concluída.

Registros de Dados

  • Admnistradores: id, nome, telefone e um cadastro (email e senha).
  • Clientes: id, nome, telefone, um cadastro (email e senha), uma lista de endereços de entrega (inicialmente vazia), uma lista de cartões (inicialmente vazia) e uma lista de pedidos (inicialmente vazia).
  • Produtos (Discos de Vinil): id, título, capa, descrição (curta e detalhada), data de lançamento, artistas, gêneros, informações adicionais sobre o disco físico, preço, quantidade em estoque e quantidade vendida.
  • Cupons: id, id do usuário, id do disco, porcentagem do desconto.

Funcionalidade Extra

  • O usuário consegue filtrar os produtos. Além de que em cada página específica de um produto, no final temos um sugestão de discos parecidos.

Requisitos Não Funcionais

  • O sistema deve ser responsivo e possuir boa usabilidade.

Descrição do projeto

Funcionalidades do sistema

  • Os administradores podem catalogar/gerenciar os produtos e usuários do sistema de maneira fácil e prática.
  • Tanto clientes como visitantes (usuários não cadastrados) podem visualizar a listagem de produtos do site, pesquisar produtos e utilizar filtros.
  • Visitantes podem se cadastrar no site, tornando-se clientes.
  • A cada dia, clientes tem direito a ganhar desconto em algum disco aleatório.
  • Clientes podem acessar e editar sua conta e informações nela contidas, como endereços e dados de cadastro.
  • Clientes podem adicionar/remover itens ao carrinho de compras, adicionar/confirmar o endereço de entrega e o metódo de pagamento e, por fim, concluir o pedido.
  • Clientes podem acompanhar seu histórico de pedidos.
  • A página de cada disco possui uma uma secção que sugere itens similares.

Informações a serem salvas no servidor

  • Os registros de dados dos clientes, administradores, produtos e cupons.

Estética

Para garantir uma boa experiência de usuário, tentamos utilizar os princípios definidos pelo Material.

Paleta de Cores

Color-Scheme

Diagrama de Navegação

Para uma melhor expêriencia de usuário, decidimos separar as páginas de administrador das demais. Assim, o admin consegue acessa-las pelo link localhost:8080/admin sem ter âncora com as páginas principais, ou seja, sem que essa página apareça para usuários comuns (visitantes e clientes). Home-Sitemap Admin-Sitemap

Screenshots - Telas Implementadas

Início

Inicio

Listagem de Produtos

Produtos Produtos Filtro

Carrinho

Carrinho

Comentários sobre o código

Foi utilizada o padrão do Vue, com uma pasta para components, uma para views, uma para css globais, uma para assets, etc.

Além disso em cada arquivo .vue o css é scoped, ou seja, ele só é aplicado nos elementos da página ou componente.

Foi usado localStorage para simular o funcionamento do backend. Além de um arquivo de dados, ao invés dos dados do banco.

Component FlexTable

Testes Automatizados

Algumas funcionalidades foram implementadas para testar o funcionamento do site, antes do desenvolvimento do backend. Para a simulação das funcionalidades foram implementadas:

  • Cadastro de conta
  • Login (usuário e admin)
  • Logout
  • Operações no carrinho (adição e remoção de discos)
  • Compra
  • Adicionar ou editar endereços no perfil do usuário
  • Filtro pro gênero, preço e nome do artista (funcionaidade extra).
  • Sugestão de discos (funcionalidade extra).
  • Operações dos admins (adição, edição e remoção de admins e produtos, além de remoção de usuários)

Para testar as funcionalidades temos:

  1. Compra:

    O usuário pode adicionar e remover produtos do carrinho. Os produtos podem ser adicionados pela página inicial, pela página de produtos ou pela página de um produto específico.

    O filtro está implementado na página de produto e é aplicado automaticamente.

  2. Admin:

    Ao entrar na página de admin o usuário precisa ter a permissão necessária para poder logar. (Temos no arquivo user.js dentro de src/store/modules um usuário admin que pode logar na página para poder fazer os testes)

    Ao logar ele pode acessar as páginas de produto, admins e usuários. Nessas temos um menu responsivo para adição, edição e remoção de produtos, admins ou usuários.

  3. Novas informações para o usuário

    Entrando na página do perfil do usuário o mesmo pode adicionar ou editar endereços para entrega.

Resultados dos Testes

Pelos testes realizados, temos um bom funcionamento em todos os casos. Não houveram problemas ao integrar com o servidor.

Executando o código

Para você poder executar o código é necessário que a máquina tenha o npm e o yarn instalado.

Caso você ainda não os tenha siga esse tutorial

Após a instalação do yarn, para instalar os pacotes necessários basta executar:

yarn install

Para compilar o código e ter o hot-reload para desenvolvimento:

yarn serve

Para compilar para produção:

yarn build

Para rodar o servidor, na pasta backend basta rodar:

yarn run dev

Vale o adendo de que no repositório não temos o .env do banco, ou seja, é possível rodar o banco, mas não é possível acessá-lo.

Problemas

Todos os problemas que foram citados anteriormente nesse documento, foram resolvidos ao integrar o frontend com o backend.

Comentários

Homenagem aos paulistinhas de menta que nos acompanharam nessa trajetória

Reviews:

Review da Milestone 1

Review da Milestone 2

Review da Milestone 3

Timeline

  • release/v2.0.0: Entrega do Milestone 2, 21/06/2022
  • release/v3.1.0: Entrega do Milestone 3, 09/07/2022