IsaqueReis (discussão | contribs)
IsaqueReis (discussão | contribs)
Linha 269: Linha 269:


= DER =
= DER =
[[Arquivo:DER_CITY_FOLK]]
[[Arquivo:DER_CITY_FOLK.pdf]]
<br>
<br>

Edição das 22h45min de 14 de junho de 2018

5W2H


What


1. Qual o nome do seu projeto?

  • CityFolk

2. Qual o objetivo deste projeto?

  • Oferecer uma plataforma interativa, onde a cidade é o objeto de interação. O usuário além de ter acesso a entretenimento( jogos embutidos dentro da plataforma), vai ter acesso a uma enciclopédia da cidade, filtrando por categorias(e.g. criminalidade, agradabilidade, custo médio de itens como imóveis, zona de lazer, etc). O intuito da plataforma é servir como uma extensão da vida na cidade, e oferecer informação e entretenimento baseado na vida cotidiana das pessoas que usam a plataforma. Outro objetivo é de certa forma, servir como uma rede social, conectando as pessoas que vivem próximas através de uma interface comum, onde cada um pode contribuir em potencial para comunidade ao seu redor.

3. Quais os maiores desafios, na sua opinião, para se realizar este trabalho?

  • 1. Se várias pessoas começassem a usar a plataforma, inflando-a com dados e mais dados a cada instante como será possível atender a essa demanda?
    • Como seria a organização para que não houvesse problemas na hora de armazenar e/ou processar os dados?
      • Qual o custo para sustentar algo nessa escala?
Para oferecer o serviço proposto, a plataforma tem que ter alta confiabilidade, e responder instantaneamente ao usuário. Toda proposta gira em torno da interatividade, se não houver interatividade de maneira satisfatória, não é possível alcançar o objetivo desejado. São questões como essa que evidenciam os desafios para construção dessa solução.
  • 2. A plataforma poderia sofrer com a exposição da vida pessoal dos usuários com a rede social implantada, assim podendo trazer interesse das pessoas de má índole que buscam prejudicar outras pessoas. Seria possível filtrar esse tipo de pessoa para que não ocorresse nenhum problema em relação a exposição da vida pessoal?
    • Se não fosse possível filtrar essas pessoas, como a plataforma agiria?
    • Qual seria o suporte da plataforma, se alguma pessoa fosse prejudicada por ter sua vida exposta?
  • 3. A plataforma mesmo sendo colaborativa, teria alguma garantia de sempre estar atualizada? Como seria o processo para a atualização de todos os estabelecimentos?
    • Até mesmo de uma falsa informação, como seria possível impedir tal informação?

4. Quais os conhecimentos básicos que devemos ter para se implementar este projeto?

  • Conhecimentos Jurídicos
  • Conhecimentos em Design
  • Conhecimentos em Arquitetura de Software
  • Conhecimentos em Redes
  • Conhecimentos em Desenvolvimento de Software(Programação, Testes)
  • Conhecimentos em Desenvolvimento de Software em Plataformas como: Web, Android e iOs.
  • Conhecimentos Matemáticos
  • Conhecimentos em Segurança da Informação

5. Quais soluções similares existem no mercado?

  • No mundo globalizado dos dias atuais, ter conhecimento sobre qualquer fator se tornou necessário e, com isso, saber sobre a cidade para a qual você pretende fazer uma viagem é de suma importância. Diante disso, a criação de aplicativos que mostrem pontos importantes, como o CityFolk, de certa região é essencial. A exemplo disso, existem aplicações como o Spotted By Local, Run Go, Meetup, dentre outros. O primeiro é um aplicativo que tem suas informações atualizadas pelos próprios moradores da região e, com isso, mostram locais que normalmente passariam despercebidos. Já o segundo, é focado em locais para pessoas que gostem de se exercitar e de um desafio, como trilhas. O terceiro app, diferentemente dos outros dois, é baseado em locais para que visitantes possam conhecer outras pessoas e interagir.
  • O aplicativo Moovit oferece informações de transporte público em tempo real, e também coleta dados dos usuários em segundo plano ou dos próprios usuários através de relatórios específicos. O Moovit usa o OpenStreetMap, um projeto colaborativo que tem o objetivo de criar um mapa livre e editável do mundo, tendo inspiração sites como a Wikipedia.
  • O Google Maps também oferece funcionalidade similar, embora seja principalmente um serviço de pesquisa e visualização de mapas. As empresas podem se cadastrar e oferecer informações relevantes para o mapa e os usuários(que possuem uma conta no google) também podem fornecer informações para o serviço.
  • O CityMapper outro aplicativo voltado para os transportes também funciona de maneira similar, coletando dados para oferecer informações relevantes para seus usuários.


Why


1. Porque é interessante desenvolver este projeto?

  • A plataforma tem alguns pontos que com certeza seriam de grande utilidade pra muitos moradores da cidade ou até estrangeiros. Parte da plataforma consiste em trazer uma segurança maior aos moradores e estrangeiros, pelo fato de, ter um sistema de aviso caso o usuário entre em algum zona perigosa ou de risco, avisando-o sobre o perigo. Também de muita utilidade seria a parte da "enciclopédia", que vai oferecer um conhecimento sobre ambientes e estabelecimentos da cidade, facilitando assim, a procura. Os próprios usuários poderão atualizar a plataforma, podendo eleger um melhor restaurante, uma escola, ou qualquer outro estabelecimento. Os mesmos vão ter a capacidade de também se comunicarem dentro do aplicativo com outros usuários, sendo capaz de tirar dúvidas sobre os estabelecimentos ou até mesmo conhecerem pessoas novas.

2. Porque deve usar a tecnologia escolhida?

  • A ferramenta OpenStreetMap vai ser utilizada como uma tecnologia de suma importância para projeto, uma vez que é uma ferramenta de mapeamento colaborativo, sendo que evitará os problemas de construção e obstrução de vias devido à obras ou demais problemas.
  • Utilizaremos também a tecnologia de desenvolvimento Mobile, para oferecer entretenimento e informação a partir da aplicação para usuários de Android, iOS e Windows Phone.

3. Porque usar o hardware específico?

  • Pois o Smartphone e/ou computadores oferecem todos os recursos necessários para o funcionamento do sistema: plataforma de desenvolvimento, acesso a internet, localização, câmera digital, etc.

4. Porque usar o sistema específico?

  • O motivo pelo qual o sistema será utilizado é , principalmente, a facilidade em compartilhamentos de informações inseridas pelo próprio usuário, assim unificando

experiências ocorridas durante o uso do sistema e acelerando a atualização de possíveis ocorrências que impactam diretamente o usuário. Exemplos, zona Perigosa, via Obstruída, entre outros. Além disso, a plataforma oferece diferentes categorias de pesquisas relacionadas a características específicas e cruciais das cidades, ou seja, o sistema faz o levantamento de índices que qualificam as mesmas, seja para moradia , lazer, custo médio de imóveis, índice de periculosidade na região ,etc. Portanto, o CityFolk é uma plataforma que unificará as experiências de usuários e transformará esses dados em informações aos próprios.

Who


1. Quem pode se beneficiar deste projeto?

  • O objetivo principal é que qualquer pessoa com um Smartphone ou computador seja beneficiada. Entretanto, empresas de qualquer porte podem se beneficiar, estudantes e pesquisadores, universidades e escolas e a administração da cidade(por exemplo a prefeitura, entre outros órgãos).

2. Quem poderá operar o sistema?

  • Usuário Comum;
  • Usuário com Poderes de Moderação;
  • Administradores do Sistema;

3. Quem deverá participar do desenvolvimento do sistema?

  • Gerente de Projetos;
  • Analista(s) de Sistemas;
  • Analista de Banco de Dados;
  • Programadores;
  • Analista de Testes;
  • Designer;
  • Cientista de Dados (consultor);


Where


1. Onde os dados serão inseridos?

  • Todos os dados serão inseridos na interface gráfica do aplicativo.

2. Onde os dados serão externalizados, publicados?

  • Os dados serão publicados:
    • Na interface gráfica do aplicativo;
    • Em uma página Web;

3. Onde esta aplicação poderá ser usada?

  • A aplicação poderá ser usada em diversas plataformas, como dispositivos mobile (iOS e Android), poderá ser usada também na Web por meio de um domínio.

4. Onde os dados serão armazenadas?

  • Os dados devem ser armazenados em um banco de dados. A escolha do banco de dados se baseia no fato que a aplicação trabalhará como grandes volumes de dados, sendo assim a família de bancos NoSQL parece ser uma escolha razoável, simplesmente por que o sistema exige escalabilidade, e essa família de bancos promete isso. Evitando soluções fechadas, como o BigTable do Google ou o Dynamo da Amazon, nossa solução visa bancos de dados open-source, como o Apache Cassandra, e o Apache HBase, sendo este último modelado a partir do BigTable.

5. Onde o software deverá ser hospedado?

  • O software deve ser hospedado em um CloudServer, para uma maior confiabilidade e escalabilidade, pelo volume de dados processado,e a necessidade de acesso em tempo real.


When


1. Em quanto tempo pretende desenvolver o sistema?

  • Em 1 ano e meio.

2. Quais serão as fases e em quanto tempo cada uma?

  • Levantamento de Requisitos: 2 Meses.
  • Planejamento: 2 meses.
  • Modelagem: 1 mes.
  • Codificação e Testes: 1 Ano.
  • Lançamento: 1 mês.

3. Qual o tempo de resposta do dispositivo ou do sistema?

  • Na ordem dos milissegundos ou segundos.

4. Quanto tempo para responder a uma entrada?

  • Na ordem dos milissegundos ou segundos.

5. Quanto tempo para gerar a saída?

  • Na ordem dos milissegundos ou segundos.


How


1. Como será dividido o desenvolvimento do sistema?

  • Levantamento de Requistitos;
  • Arquitetura do Software;
  • Desenvolvimento;
  • Entrega;

2. Como será feita a entrada de dados?

  • A entrada de dados será dado através do touchscreen nos smartphones, localização via gps para smartphones e nos computadores será através do mouse (touchpads nos laptops) e teclado, e localização via IP.
  • Podemos receber entradas de outros sistemas de coletas de dados, como meteorológicos, de trânsito por exemplo;

3. Como será feita a saída de dados?

  • A saída de dados será realizada pelas telas dos smartphones(mobile) e pelos monitores dos computadores e laptops(web);

4. Descreva as funcionalidades

  • 1ª Funcionalidade: Criar Usuário
    • Cadastrar Usuário:
      • Usuário Padrão;
      • Moderador
    • Autenticar Usuário;
  • 2ª Funcionalidade: Obter dados
    • Obter Mapa da Localização atual;
    • Obter Previsão do tempo;
    • Obter Temperatura;
    • Obter Horário Atual;
    • Conectar com o servidor cityFolk:
      • Enviar localização atual;
      • Obter categorias;
      • Obter eventos;
      • Obter Missões;
      • Obter Usuário;
      • Obter Waypoints;
    • Mostrar Localização atual;
    • Mostrar Waypoints(Locais de preferencia do usuário);
    • Mostrar Pontos de Interesse Globais;
    • Mostrar Locais de Risco;
    • Atualizar informações;
  • 3ª Funcionalidade: Mostrar/Ocultar/Criar Categorias
    • Mostrar Barra de Categorias;
    • Ocultar Barra de Categorias;
    • Filtrar por categoria n
    • Criar Categoria:
      • Validar Categoria;
  • 4ª Funcionalidade: Alertar Usuário
    • Alertar sobre possível Zona de Risco;
      • Aceitar risco;
      • Informar Erro de classificação;
    • Alertar sobre possível rota insegura ou incorreta;
  • 5ª Funcionalidade: Servidor de Noticias e Informações
    • Conectar com o serviço de Noticias e Informações;
    • Enviar Localização atual;
    • Mostrar noticias ou informações globais;
    • Mostrar noticias ou informações locais;
  • 6ª Funcionalidade: Servidor de Chat
    • Conectar ao serviço de chat;
    • Mostrar chat local;
    • Mostrar chat global;
    • Mostrar chat pessoal;
  • 7ª Funcionalidade: Privacidade e Segurança
    • Criar Score do Usuário;
    • Reportar Usuário;
    • Julgar Usuário;
    • Banir Usuário mal intencionado;
    • Camuflar Localização;
  • 8ª Funcionalidade: Social
    • Adicionar Amigo;
    • Mostrar Inventário;
    • Mostrar Rotas;
    • Mostrar conquistas;
    • Mostrar Lista de Amigos;
    • Mostrar Nível de Experiência do Usuário;
    • Incrementar Nível de Experiência do Usuário;
    • Criar evento;
    • Editar evento;
    • Criar Waypoint;
    • Criar Rota;
      • Compartilhar rota;
    • Editar Rota;
    • Configurar campo de visão;
    • Criar Missão;
      • Tipo de Missão
        • Entregar;
        • Buscar;
        • Criar missão personalizada;
      • Recompensar;
      • Requerer Nível;
    • Aceitar Missão;
      • Obter dados da missão;
    • Rejeitar Missão;
    • Esconder Missões;
    • Mostrar Missões;
    • Desbloquear conquista [conquista n];
  • 9ª Funcionalidade: Sistema de Eventos
    • Relatar Evento;
    • Criar descrição informal sobre Local;
    • Criar relato detalhado sobre local;
    • Verificar Validade Evento;
      • Verficiar Nível de Experiencia Usuario;
      • Verficiar eventos semelhantes próximos ou na localização;
      • Aceitar/Rejeitar validade do evento;
    • Pesquisar Eventos;
    • Editar Evento;




How much


1. Quanto custa cada parte do sistema?

  • O valor de hospedagem do cloud server pode custar em torno de R$200,00~300,00/mês.
  • Se a mão de obra for remunerada, pelo menos R$19.000/mes.

2. Quanto deverá custar todo o sistema?

  • Com os salários e a hospedagem, o sistema deve custar em torno de R$20.000/mês

3. Quantas pessoas deverão ser usadas (Equipe) ?

  • Membros do projeto(6), e assim que conseguido um protótipo ou uma pequena versão, quantas pessoas se disporem a ajudar. (Software Livre)

4. Quanto custa cada profissional?

  • Se remunerados, cada profissional necessário saí em média:
    • Programador: R$ 3000/mês (x2)
    • Analista de Sistemas: R$ 4500/mês
    • DBA: R$ 3900/mês
    • Designer: R$ 3500/mês
    • Analista de Testes: R$ 2000/mês

5. Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?

  • O software será gratuito para uso, mas podem existir transações dentro dele.


Kanban


Arquivo:Kanban CityFolk.pdf

Canvas


Arquivo:CanvasCityFolk.pdf

DFD-0



DFD COMPLETO


Arquivo:DFD CITYFOLK.pdf

MUDANÇAS NO DFD


Arquivo:DFD City Folk Mudanças.pdf

Nessas alterações, colocamos um Processo como o principal, em forma de menu, de formam que os subsequentes que possuem alguma relação com o principal possam ser acessados por ele e esse principal sendo ligado ao seu respectivo depósito. Já no quesito das entidades externas, elas vão acessar diretamente ao processo principal e depois selecionar o subsequente desejado.


DER

Arquivo:DER CITY FOLK.pdf