Fase I - Estudo


Título da Idéia

Biblioteca de Talentos

Objetivos

Desenvolver um aplicativo que permita associados emprestem e peguem livros emprestados, de outros associados ou da biblioteca.


Conceito


As pessoas costumam adquirir livros para leitura nos mais diversos temas. Estes livros após a leitura ficam dispostos em estantes, prateleiras ou móveis com acesso exclusivo aos moradores da casa. Por outro lado, várias pessoas precisam de livros e não tem condições para comprá-los, tempo para adquiri-los ou outros motivos que impedem que tenham acesso a eles.

Se imaginarmos uma aplicação quer permita reunir livros num acervo montado a partir de doações de associados e colaboradores, a amplitude de utilização dos livros se torna muito mais extensa.

Dessa forma, proposta de uma Biblioteca que possa receber doações de livros que seriam disponibilizados para a comunidade corporativa ou mesmo para a comunidade externa passa a ser muito interessante.

Este conceito de colaboração muito comum hoje em dia, pode ser aplicado e transformado numa ferramenta que auxilie as pessoas na sua evolução.


Enquadramento

Desenvolvimento



Desafio tecnológico

  • Aprendizado de Python/Flask
  • Identificação de livros via código isbn



Características 

A Biblioteca de Talentos é uma aplicação web e mobile voltada para controle, doação e empréstimo de livros que permite:

  • Cadastrar todos os livros que o usuário possui ou que ele deseja adquirir
  • Aos usuários Incluir organizações que permitirão o movimento de livros (criar grupos)
  • Solicitar os livros via sistema e aprovação/negação pelo dono
  • Pontuar de acordo com os empréstimos realizados de forma a ser qualificado publicamente. (Gamificar a interação entre usuários)
  • Gerenciar os empréstimos e devoluções notificando prazos
  • Solicitar feedbacks após o empréstimo e/ou devolução
  • Solicitar os livros do próprio sistema para aprovação de mediadores (membros da equipe enquanto protótipo)
  • Serviço para categorização de livros: gênero e finalidade
  • Uma aplicação que comunica direto com a plataforma para checkout de livros da biblioteca (toten para leitura de qrcode)
  • Serviço para cadastro de usuário na plataforma
  • Serviço que disponibiliza o rankeamento entre os usuários
  • Wishlist para usuários e gestores para otimização do acervo
  • Leitor de ISBN ( qrcode )
  • Gamificar a interação do usuário com a própria plataforma (engajamento):
  • quantidade de empréstimos, cumprimento de cronogramas etc..

Todo o seu back-end é feito em Python, que foi escolhido pela sua facilidade de aprendizado, e claro exatamente por esse motivo Python traz ao código fonte um legibilidade incrível, possibilitando os colaboradores estarem aptos a colaborar no desenvolvimento em pouco tempo, o que encurta o tempo necessário para o desenvolvimento.

Juntamente com o Python, foi utilizado o micro Framework web Flask, que mantém a facilidade trazida pelo Python mas tem como sua principal característica, trazer o minimo possível de ferramentas, e você vai "conectando" novas quando necessário, deixando assim o desenvolvimento o mais enxuto possível, dentre os módulos Flask, foram utilizados os seguintes:

  • Flask-HTTPAuth - Utilizado para a autenticação e controle de acesso dos usuários.
  • Flask-Mail - Utilizado para envio de notificações por exemplo, do fim do prazo de empréstimos, de atrasos do livro, de pedidos de empréstimos realizados, dentre vários outros.
  • Flask-SQLAchemy - Que nos proporciona suporte ao SQLAlchemy, que é uma biblioteca de mapeamento objeto-relacional SQL em código aberto desenvolvido para a linguagem de programação Python, que tem seu foco na eficiência e alta performance de acesso a banco de dados.
  • Flask-Migrate - Possibilita todo o controle do banco de dados via linha de comando
  • Flask-Script - Utilizado para adicionar comandos que executam scripts, tornando o trabalho mais simples, por exemplo a criação do primeiro administrador do sistema, etc.
  • Flask-RESTful - É a extensão que nos proporciona o suporte a criação de REST APIs, com sua simplicidade e leveza encoraja boas práticas e mantém o minimalismo caracteristico do Python/Flask.

Estudo Dirigido


Todo material de estudo sobre as ferramentas utilizadas no back-end pode ser encontrado na wiki do projeto

Principais temas de estudo:

  • A Linguagem Python
  • O Flask, um micro framework Python
  • REST APIs
  • Criação de APIs RESTful utilizando Flask


Fase II - Ensino



Conteúdo

Para compreender a forma como essa API funciona e começar a contribuir com o desenvolvimento, os seguintes materiais podem ser úteis:


Apresentação

Apresente ao grupo (reunião, EAD, Blog, ...)
Publique aqui


Fase III - Exemplo de Caso de Negócio


Benefício para a Algar Telecom

  • Maior interação entre associados
  • Incentivo a leitura
  • Maior produtividade causada pelo aumento de interação entre associados

Benefícios para o cliente

  • A Possibilidade de compartilhar livros que estão esquecidos em casa
  • A Possibilidade de ler livros que talvez nunca seriam lidos talvez por falta de tempo de procura-lo, talvez por falta de condições de te-lo
  • Um maior network entre seus colegas de trabalho


Direcionadores chave

  • Aplicação Mobile
  • Aplicação Web
  • Compartilhamento de livros
  • Desenvolvimento Pessoal

Elemento inovador

Utilizar uma aplicação para controlar uma biblioteca pessoal e fazer com que seus livros não sejam esquecidos e que eles possam participar do desenvolvimento de outras pessoas

Possíveis modelos de negócios

  • Possibilitar a utilização da aplicação para vários segmentos, tais como, Empresas, Escolas e qualquer pessoa que tenha livros em casa.
  • Taxação sobre a movimentação de livros feita no aplicativo.
  • Possibilitar propagandas de terceiros dentro da aplicação
  • Fazer vendas de livros

Business Case


Fase IV - Protótipo orientado ao Negócio


Escopo


Explique o escopo deste protótipo


Metodologia


Qual metodologia ou método utilizado?



Limitações


Informe sobre as limitações


PoC


Desenvolva um PoC (Proof of Concept)


Detalhamento Técnico


  • Backend:
    • linguagem python
    • banco relacional postgre
    • API restful (http ou https)
    • JSON
  • Infra
    • Amazon EC2 ou S3
    • outros (host1plus, locaweb, heroku)
    • Versionamento GIT (bitbucket)
  • Frontend web
    • AngularJS (bootstrap)
    • ou React
  • Frontend mobile
    • React
    • phonegap





Planejamento


Cronograma Macro


Histórico


Pesquisadores

  • Gustavo Henrique Garcia Silva
  • Júlia Rizza de Souza
  • Luiz Cláudio Theodoro
  • Kethllen Andrey Santos
  • Marc Sué Pires Morais Junior
  • Pedro Henrique da Costa Avelar
  • Matheus Cunha Reis
  • Leandro de Medeiros Ferreira
  • Lucas Correia Bernardes
  • Ronistone Gonçalces do Reis Junior