Linha 194: Linha 194:
= Requisitos Não-funcionais =
= Requisitos Não-funcionais =
<br>
<br>
*Web Design Responsivo;
*Banco de Dados relacional, utilizando o SGBD MariaDB;
*Tempo de carregamento de no máximo 1 segundo;
*Utilização da linguagem PHP;

Edição das 13h45min de 27 de abril de 2021

5W2H

What


  • 1. Qual o nome do seu projeto?
    • FastEcommerce.
  • 2. Qual o objetivo deste projeto?
    • Oferecer a oportunidade de um empresário ou empreendedor construir seu comercio eletrônico para expandir seu negócio para o meio virtual.
  • 3. Quais os maiores desafios, na sua opinião, para se realizar este trabalho?
    • Interação com cliente para definir as regras de negócio e como o layout vai ficar, gerenciar as equipes de desenvolvedores e manter os sites de clientes existentes rodando com uma boa qualidade.
  • 4. Quais os conhecimentos básicos (teorias) que devemos ter para se implementar este projeto?
    • Desenvolvimento web, banco de dados, gerenciamento de projetos de software, infraestrutura de servidores(cloud).
  • 5. Quais soluções similares existem no mercado?
    • Loja Integrada, Mercado Livre, JetEcommerce.


Why


  • 1. Porque é interessante desenvolver este projeto?
    • O setor do ecommerce está crescendo bastante, principalmente devido ao isolamento social provocado pela pandemia. As empresas estão se adaptando para os meios virtuais e com isso a demanda por esse tipo de serviço está crescendo bastante.
  • 2. Com relação às tecnologias, cite no mínimo 3 e explique a função de cada uma no seu projeto.
    • Banco de dados PostgresSQL para armazenamento das informações do sistema web, framework para gerenciamento da aplicação como um todo e desenvolvimento web facilitando a codificação e construção do sistema e api de pagamento como PagSeguro e outros.
  • 3. Com relação ao hardware, cite no mínimo 3 e explique a função de cada um no seu projeto.
    • Servidores de banco de dados e web servers para hospedar a aplicação, servidores com discos de armazenamento espaçosos para rotinas de backup, servidor isolado para exercer a função de firewall.
  • 4. Com relação aos sistemas, cite no mínimo 3 e explique a função de cada um no seu projeto.
    • Sistema de pagamento: Validação de informações bancárias dos usuários, efetuação das transações bancárias necessárias, segurança dos dados bancários dos clientes em segundo nível(compradores do ecommerce);
    • Sistema de registro: cadastro de clientes, com email, senha, idade, cpf, cep entre outros.
    • Sistema de carrinho: carrinho de compras com os produtos que os clientes escolhem no ecommerce;


Who


  • 1. Quem pode se beneficiar deste projeto?
    • Pessoas que querem ter seu próprio negócio de modo "barato";
    • Empresas que atuam em canais físicos e desejam expandir para o meio virtual;
    • Empresas ou pessoas que possuem vontade de abrir um comércio eletrônico e não sabem por onde começar;


  • 2. Quem poderá operar o sistema?
    • Consumidores finais;
    • Administrador do ecommerce;
    • Desenvolvedores;



  • 3. Quem deverá participar do desenvolvimento do sistema?
    • 1) Clientes;
    • 2)Gerente de projetos;
    • 3)Desenvolvedores(frontend, backend);
    • 4)Especialistas em UX e/ou UI;


Where


  • 1. Por onde (hardware ou sistemas), os dados serão inseridos?
    • Cadastros de clientes;
    • Interfaces com os produtos do ecommerce;
    • Api com sistemas de pagamentos e sistema de gerenciamento financeiro;
    • layouts interativos;
    • Teclado e/ou mouse;


  • 2. Onde (hardware ou sistemas), os dados serão externalizados?
    • Os dados do sistema serão exibidos em interfaces gráficas na qual o usuário final poderá interagir com os produtos, pagamentos etc..


  • 3. Onde (em que dispositivos ou ambientes) esta aplicação poderá ser usada?
    • Em navegadores;


  • 4. Onde os dados serão armazenados?
    • Em um servidor na nuvem, com um Banco de dados relacional;


  • 5. Onde o software deverá ser hospedado?
    • Em servidor web na nuvem;



When

  • Em quanto tempo pretende desenvolver o sistema?
    • Em seis meses;
  • Quais serão as fases e quanto tempo terá cada uma?
    • O sistema será desenvolvido usando metodologias ágeis, logo o desenvolvimento do sistema será feito por meio de "sprints" de no máximo uma semana:
    • 1-Analise de requisitos do sistema, funcionalidades do sistema, casos de uso, UX ->Duas semanas
    • 2-Design do sistema, escolha de recursos de hardware necessários, escolha dos serviços de hospedagem de banco de dados e de sistemas web, elaboração de como as funcionalidades estarão dispostas para o usuário, mockup. Modelagem e projetos conceituais do BD.-> Duas semanas;
    • 3-Implementação do banco, codificação dos requisitos funcionais estabelecidos mais os requisitos funcionais ainda não pensados, uso de frameworks pensando em leveza do sistema e segurança. Testes no final de cada etapa para validação dos incrementos. Destaca-se que nesta fase será onde utilizaremos o Scrum -> Três meses;
    • 4- Testes para desempenho e qualidade buscando atender os requisitos não funcionais. Documentação para finalização do projeto, construções de manuais para usuários->Um mês.
    • 5-Acompanhamento no ambiente de produção para detecção de erros pelos usuários alvos e melhorias. -> Um mês.
  • Existe tempo mínimo ou ideal para resposta do dispositivo ou sistema?
    • O tempo mínimo padrão, por se tratar de um comércio eletrônico deverá ser de alguns milissegundos.
  • Usuário pode esperar quanto tempo por um processamento?
    • No máximo alguns segundos, ficar atento com as API escolhidas ou desenvolvidas, pois um sistema externo ao nosso e que é utilizado em algum processo interno caso esteja fora do ar pode prejudicar a experiência do usuário(elaborar um algoritmo para validar se o serviço web está de pé);


How

  • Como será dividido o desenvolvimento do sistema?
    • Pensando na utilização do Scrum para desenvolver o sistema por meio de entregas incrementos constantes temos a presença dos seguintes profissionais para elaboração das fases da construção do sistema:
    • Product Owner: Análise dos requisitos dentro de cada sprint realizado;
    • Scrum Master: orientação e gerenciamento da equipe de desenvolvimento, fazendo a frente com a equipe de desenvolvimento e o PO para captação dos objetivos e requisitos necessários;
    • Equipe de desenvolvimento(4): Desenvolvedores com conhecimento técnico necessário nas tecnologias exigidas tanto em frontend, como backend;
    • Um funcionário responsável pela modelagem e construção do banco de dados, neste caso um analista de banco de dados;
    • Equipe de teste(2): Funcionários responsáveis por validar e testar as saídas de cada sprint;
  • Como funcionam as entradas de dados? Existe conversão, uso de protocolos, etc?
    • A entrada de dados do nosso sistema sempre será feita por meio das interfaces físicas a disposição do usuário final(teclado e mouse) e pela interação com outros sistemas externos necessários(sistema de pagamento, sistema financeiro);
    • A conversão e utilização de protocolos se darão dentro das API onde é necessário um padrão de mensagens para a comunicação e na hora de submissão de formulários ou outros dados, onde o usuário será notificado caso envie um dado inadequado para nosso backend(campo de cpf, o usuário coloca um texto);
  • [RF001] CRUD usuários
  • [RF002] Autenticação de usuários;
  • [RF003] Tela principal com produtos;
  • [RF004] Telas para administrador gerenciar(CRUD) produtos;
  • [RF005] Filtros de busca de produtos por categorias, preços etc..;
  • [RF006] Sistema de pagamento com diversas opções de pagamento;
  • [RF007] Tela para gerenciamento financeiro da loja virtual;
  • [RF008] Carrinho de compras;
  • [RF009] Sistema de avaliações e comentários por produto;
  • [RF010] Tela para entrar em contato com dono da loja virtual;
  • [RF011] Tela com FAQs;
  • [RF012] Tela para administrador realizar CRUD em categorias de produtos;
  • [RF013] Sistema para recuperação de conta;
  • [RF014] No cadastro do usuário o mesmo poderá preencher o campo com gostos e preferências de produtos;
  • [RF015] Tela para gerenciar o estoque ou integrar ao um sistema de gerenciamento de estoque existente;
  • [RF016] Links de contato via chat ou redes sociais;
  • [RF017] Tela detalhada para um produto em específico;
  • [RF018] Barra de busca;


How much

    • (aguardando requisitos funcionais)
    • Quanto custa cada parte do sistema?
    • Quanto deverá custar todo o sistema?
    • Quantas pessoas deverão ser usadas (Equipe) ?
    • Qual o valor hora ou mensal de cada profissional?
    • Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?




Canvas

  • O Canvas foi feito utilizando o modelo de Canvas disponibilizado pelo SEBRAE.


  • 09/03/2021:
    • Sistema pode criar automaticamente o padrão de ofertas e vendas? Tipo, o usuário monta os produtos como um Lego e o sistema disponibiliza para uso imediatamente.
    • Teremos parceris ou contratação de serviços?
    • Sobre os templates, quem fará?


DFD - Diagrama de fluxo de dados

DER


Requisitos Funcionais


  • Identificador: RF004
  • Nome:Gerenciar produtos
  • Módulo: Administração
  • Data de criação: 26/04/2021
  • Autor: Matheus Alec Guimaraes Moura
  • Versão: 1.0
  • Descrição: Esta função determina uma tela do sistema(de acordo com a tela "ManageProduct" do mackup), onde o administrador do sistema tem a opção de realizar um CRUD dos produtos do modo que desejar, o requisito interage diretamente com a tabela de produtos e fotos dos produtos




  • Identificador: RF002
  • Nome: Autenticar usuários
  • Módulo: Autenticação
  • Data de criação: 26/04/2021
  • Autor: Denise Araújo Santos
  • Versão: 1.0
  • Descrição: Recebe a requisição de login (email e senha), verifica no depósito usuários (email e senha) e libera o acesso a tela inicial conforme tela 3 e 2 do mockup.


Requisitos Não-funcionais


  • Web Design Responsivo;
  • Banco de Dados relacional, utilizando o SGBD MariaDB;
  • Tempo de carregamento de no máximo 1 segundo;
  • Utilização da linguagem PHP;