O Zé Experience consiste em um conceito de aplicação desenvolvido utilizando como base o já existente Zé Delivery. O está sendo desenvolvido como solução ao problema proposto pela Ambev no Mega Hack 3.0. O README foi criado utilizando como base o projeto que pode ser acessado clicando aqui e editado no stackedit.io.
A Tela Inicial contém:
- vídeos promocionais
- sugestões de produtos para compra
- sugestão de eventos.
A tela inicial deverá ser alterada de acordo com as conversas no chat. (só momento esta funcionalidade se baseia apenas nas perguntas iniciais do chatbot para traçar o perfil do cliente).
O ChatBot está desenvolvido com o fluxo que será utilizado pelo cliente:
- Coleta de informação através do quiz.
- Ajuda através da opção 'Me ajuda, Zé!'
- Captura da localização do usuário em background e envio de notificação em caso de estar próximo a um estabelecimento parceiro.
- Interação com estabelecimento parceiro e fluxo de pagamento.
- Acesso ao Zé Club e opção de juntar amigos.
Os dados das mensagens apenas são enviados ao servidor após o usuário aceitar compartilhar informações. Os dados enviados são baseados no identificador do cliente gerado ao aceitar os termos e nas mensagens que ele escolher, com essas mensagens o administrador possui acesso a produtos escolhidos, opções mais utilizadas entre outras informações, sem prejudicar a privacidade do usuário.
O Servidor da aplicação está online e hospedado no ip http://161.35.63.2/. O Kibana está on-line para acesso público para visualização do recebimento dos dados pelo sistema. Todo o código do servidor está na branch server.
- Servidor NodeJS: http://161.35.63.2:3000/
- Kibana: http://161.35.63.2:5601/status
O servidor está utilizando a runtime Node.js, com roteamento controlado pelo framework Express.js. Os dados são salvos em um banco de dados MongoDB, indexados em uma instância do servidor de buscas Elasticsearch e disponibilizados no sevidor Kibana. Todo o servidor está codificado na branch server no arquivo server/index.js .
Cliente
- Expo - O Expo CLI é um aplicativo de linha de comando que é a principal interface entre um desenvolvedor e as ferramentas da Expo. Desenvolvendo seu aplicativo: executando o servidor do projeto, visualizando logs, abrindo seu aplicativo em um simulador.
- React Native - O React Native é um framework que permite o desenvolvimento de aplicações mobile usando JavaScript e React;
- React Navigation - O React Navigation surgiu da necessidade comunidade do React Native de uma navegação de forma fácil de se usar, e escrita toda em JavaScript;
Servidor
- Node.js / npm - Node.js® é runtime JavaScript feito com a Chrome's V8 JavaScript engine.
- Express.js - Framework web rápido, flexível e minimalista para Node.js
- MongoDB - O MongoDB é um banco de dados distribuído, baseado em documentos e de propósito geral, criado para desenvolvedores de aplicativos modernos e para a era da nuvem.
- Elasticsearch - O Elasticsearch é um mecanismo de busca e análise de dados distribuído e open source para todos os tipos de dados, incluindo textuais, numéricos, geoespaciais, estruturados e não estruturados.
- Kibana - O Kibana é uma interface de usuário gratuita e aberta para você visualizar seus dados do Elasticsearch e navegar no Elastic Stack. Faça qualquer coisa, desde monitorar a carga de consultas até entender como as solicitações fluem pelos seus apps.
Para utilizar o projeto você irá precisar de algumas ferramentas. O cliente pode ser utilizado sem o servidor, pois os dados são enviados apenas caso o usuário aceite a transmissão de dados, então o aplicativo permite esa
Parar executar este projeto é necessário
- Ter o cli do expo instalado
npm install -g expo-cli
- Instalar dependências
npm install
ou
yarn add
- Executar expo
expo start
ou
yarn start
Atualmente o aplicativo só é suportado em dispositivos Android. Baixar versão mais recente do apk
A estrutura de arquivos está da seguinte maneira:
ze-experience-react-native-master/
┣ .expo-shared/
┃ ┗ assets.json
┣ assets/
┃ ┣ favicon.png
┃ ┣ icon.png
┃ ┗ splash.png
┣ src/
┃ ┣ images/
┃ ┃ ┗ ZeDelivery/
┃ ┃ ┃ ┣ cervejas/
┃ ┃ ┃ ┗ semAlcool/
┃ ┗ screens/
┃ ┃ ┣ ChatBot/
┃ ┃ ┃ ┣ components/
┃ ┃ ┃ ┃ ┣ Header/
┃ ┃ ┃ ┃ ┣ Bot.js
┃ ┃ ┃ ┃ ┗ steps.js
┃ ┃ ┃ ┣ index.js
┃ ┃ ┃ ┗ styles.js
┃ ┃ ┣ Home/
┃ ┃ ┃ ┣ EventCard.js
┃ ┃ ┃ ┣ index.js
┃ ┃ ┃ ┣ ProductCard.js
┃ ┃ ┃ ┣ products.js
┃ ┃ ┃ ┗ styles.js
┃ ┃ ┣ QrCode/
┃ ┃ ┃ ┣ index.js
┃ ┃ ┃ ┗ styles.js
┃ ┃ ┗ ZeClub/
┃ ┃ ┃ ┣ components/
┃ ┃ ┃ ┃ ┣ Achievement/
┃ ┃ ┃ ┃ ┗ History/
┃ ┃ ┃ ┣ index.js
┃ ┃ ┃ ┗ styles.js
┣ .gitignore
┣ App.js
┣ app.json
┣ babel.config.js
┣ LICENSE
┣ package-lock.json
┣ package.json
┣ README.md
┗ yarn.lock
Contribuições são o que fazem a comunidade open source um lugar incrível para aprender, inspirar e criar. Qualquer contribuição que você fizer será muito apreciada.
- Faça um Fork do projeto
- Crie uma Branch para sua Feature (
git checkout -b feat/FeatureIncrivel
) - Adicione suas mudanças (
git add .
) - Comite suas mudanças (
git commit -m 'Adicionando uma Feature incrível!
) - Faça o Push da Branch (
git push origin feat/FeatureIncrivel
) - Abra um Pull Request
Distribuído sob a licença MIT. Veja LICENSE
para mais informações.
Gabriel Vanderlei - Github - dev@gabrielvanderlei.com
Samuel Simões - Github
José Vitor - Github
Ian Karlo - Github
Gustavo Nascimento - Github