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:
- Se você ainda não conhece Python:
- Se você ainda não conhece Flask:
- Se você ainda não conhece APIs RESTFul:
- Se você ainda não sabe trabalhar com APIs REST no Flask:
- Se você não sabe trabalhar com Git ou como contribuir no repositório:
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