Etiqueta: visualeditor
Linha 16: Linha 16:
<br>
<br>


# CRUD de Livros ''(Júlia)''
# CRUD de Livros
## Criar uma página para cada operação do CRUD
## Criar uma página para cada operação do CRUD
## Verificar se o usuário tem permissão para realizar a operação
## Verificar se o usuário tem permissão para realizar a operação
# CRUD de Usuário ''(Júlia)''
# CRUD de Usuário
## Criar uma página para cada operação do CRUD
## Criar uma página para cada operação do CRUD
## Verificar se o usuário tem permissão para realizar a operação
## Verificar se o usuário tem permissão para realizar a operação
# Buscar livros disponíveis para empréstimo ''(''Gustavo'')''
# CRUD de Organizações
## Criar uma página para cada operação do CRUD
## Verificar se o usuário tem permissão para realizar a operação
# Buscar livros disponíveis para empréstimo
## Receber os termos da busca por um campo (linha de formulário)
## Receber os termos da busca por um campo (linha de formulário)
## Realizar a busca no banco de dados (SELECT)
## Realizar a busca no banco de dados (SELECT)
## Filtrar os resultados por localidade, datas, valor, gênero ou popularidade
## Filtrar os resultados por localidade, datas, gênero ou popularidade
## Permitir múltiplos filtros simultaneamente
## Permitir múltiplos filtros simultaneamente
## Exibir o resultado da pesquisa em uma página
## Exibir o resultado da pesquisa em uma página
# Reservar livro disponível ''(''Gustavo'')''
# Solicitar livro para empréstimo
## Exibir somente livros disponíveis
## Exibir botão de "empréstimo" na pesquisa de livros
## Página para reserva de livros
## Ao clicar no botão, enviar uma solicitação para o dono do livro
## Requerir um livro não disponível
## O empréstimo do livro será aceito ou não pelo dono
# Avisar de datas para devolução (Marc Sué)
## A entrega do livro deve ser negociada pelos usuários
## Enviar e-mail / sms de aviso um dia antes da data de devolução  
## Entrar na lista de espera ao requerer um livro não disponível
# Capturar ISBN do livro (Marc Sué)
# Avisar de datas para devolução
## Enviar e-mail / sms de aviso uma semana, três dias e um dia antes da data de devolução
## Notificar via aplicativo uma semana, três dias e um dia antes da data de devolução  
# Capturar ISBN do livro (2ª etapa)
## Criar função para ativar a câmera do smartphone para capturar o código do ISBN no momento de cadastro do livro
## Criar função para ativar a câmera do smartphone para capturar o código do ISBN no momento de cadastro do livro
## Criar função para digitar o código do ISBN no momento do cadastro do livro
## Criar função para digitar o código do ISBN no momento do cadastro do livro
#Dispor Livros em estantes virtuais conforme gênero (Pedro)
#Dispor livros em estantes virtuais conforme gênero
## Realizar a busca no banco de dados (SELECT) dos gêneros que o usuário possui
## Armazenar para cada livro do usuário, sua posição na estante
## Para cada estante. realizar a busca no banco de dados (SELECT) dos livros que pertencem aquele gênero
## Realizar a busca no banco de dados (SELECT) dos livros que o usuário possui
## Exibir o resultado da pesquisa em uma página
## Para cada estante, realizar a busca no banco de dados (SELECT) dos livros que pertencem àquele gênero
# Permutar livros (Luana)
## Exibir o resultado da pesquisa em uma página de acordo com a posição
## Informar uma lista de usuários que desejam trocar livro(s) que não possuem, por outro(s) possuem
# Permutar livros (2ª etapa)
# Emprestar livros (<strike>Luana</strike>) (Marc Sué)
##Empréstimo bidirecional: o usuário pede um livro e empresta um à outro usuário
## Catálogo de livros dos usuários
# Devolver livros
## Informar endereço do usuário que está pedindo o livro, o tempo que o deseja ter e a reputação atual do usuário
##O processo de devolução também é de responsabilidade dos usuários
## Calcular frete, emitir etiqueta, informar prazo para devolução (além do tempo de entrega)
## Solicitar ''feedback'' ao final do empréstimo para ambos os usuários
# Devolver livros (Ademar)
#Vender livros (2ª etapa)
## Informar endereço de retorno ao dono do livro
## Calcular frete e emitir etiqueta para devolução
## Qualificar usuário pelo empréstimo e pela devolução
#Vender livros (Mateus)
## Receber num formulário o preço e as opções de frete oferecidas pelo vendedor
## Receber num formulário o preço e as opções de frete oferecidas pelo vendedor
## Atualizar o livro no banco de dados (UPDATE) marcando-o como posto à venda
## Atualizar o livro no banco de dados (UPDATE) marcando-o como posto à venda
## Disponibilizar um botão para que interessados possam entrar em contato com o vendedor
## Disponibilizar um botão para que interessados possam entrar em contato com o vendedor
#Gerenciar livros emprestados (Leonardo)
#Gerenciar livros emprestados
## Realizar a busca no banco de dados (SELECT) dos livros, filtrando para ter como resultado somente aqueles que estão emprestados
## Realizar a busca no banco de dados (SELECT) dos livros, filtrando somente aqueles que estão emprestados
## Exibir o resultado da pesquisa em uma página
## Exibir o resultado da pesquisa em uma página
# Prorrogar data de devolução
# Prorrogar data de devolução
Linha 63: Linha 65:
## Aumentar (ou não) o prazo de devolução de acordo com a resposta do dono
## Aumentar (ou não) o prazo de devolução de acordo com a resposta do dono
## Enviar e-mail de confirmação (ou não confirmação) da prorrogação ao solicitante
## Enviar e-mail de confirmação (ou não confirmação) da prorrogação ao solicitante
# Qualificar usuário
# Dar ''feedback''
## Criar atributo de créditos do usuário (positivo, negativo e neutro)
## Criar atributo de créditos do usuário (positivo, negativo e neutro)
## Criar função para qualificar o usuário após um empréstimo / venda
## Criar função para qualificar o usuário após um empréstimo / venda
## Qualificar solicitante e atendente do pedido de empréstimo / venda
## Qualificar solicitante e atendente do pedido de empréstimo / venda
## Opções de qualificação: prazo de entrega/devolução, estado do livro, negociação.
#Formar "lista de espera" para livros
#Formar "lista de espera" para livros
##O usuário solicita um livro já emprestado e fica na "lista de espera" dele
##O usuário solicita um livro já emprestado e fica na "lista de espera" dele

Edição das 13h29min de 14 de outubro de 2016

Escopo


  • Aplicação web e mobile voltada para controle, doação e empréstimo de livros que permite:
  1. Cadastrar todos os livros que o usuário possui ou que ele deseja adquirir
  2. Aos usuários Incluir organizações que permitirão o movimento de livros
  3. Solicitar os livros via sistema e aprovação/negação pelo dono
  4. Selecionar o processo de entrega (pessoal, Correios, Malote, etc) pelos usuários
  5. Pontuar de acordo com os empréstimos realizados de forma a ser qualificado publicamente.
  6. Disponibilizar um Chat para contato
  7. Gerenciar os empréstimos e devoluções notificando prazos e gerando multas quando houver atrasos
  8. Solicitar feedbacks após o empréstimo e/ou devolução


Requisitos Funcionais


  1. CRUD de Livros
    1. Criar uma página para cada operação do CRUD
    2. Verificar se o usuário tem permissão para realizar a operação
  2. CRUD de Usuário
    1. Criar uma página para cada operação do CRUD
    2. Verificar se o usuário tem permissão para realizar a operação
  3. CRUD de Organizações
    1. Criar uma página para cada operação do CRUD
    2. Verificar se o usuário tem permissão para realizar a operação
  4. Buscar livros disponíveis para empréstimo
    1. Receber os termos da busca por um campo (linha de formulário)
    2. Realizar a busca no banco de dados (SELECT)
    3. Filtrar os resultados por localidade, datas, gênero ou popularidade
    4. Permitir múltiplos filtros simultaneamente
    5. Exibir o resultado da pesquisa em uma página
  5. Solicitar livro para empréstimo
    1. Exibir botão de "empréstimo" na pesquisa de livros
    2. Ao clicar no botão, enviar uma solicitação para o dono do livro
    3. O empréstimo do livro será aceito ou não pelo dono
    4. A entrega do livro deve ser negociada pelos usuários
    5. Entrar na lista de espera ao requerer um livro não disponível
  6. Avisar de datas para devolução
    1. Enviar e-mail / sms de aviso uma semana, três dias e um dia antes da data de devolução
    2. Notificar via aplicativo uma semana, três dias e um dia antes da data de devolução
  7. Capturar ISBN do livro (2ª etapa)
    1. Criar função para ativar a câmera do smartphone para capturar o código do ISBN no momento de cadastro do livro
    2. Criar função para digitar o código do ISBN no momento do cadastro do livro
  8. Dispor livros em estantes virtuais conforme gênero
    1. Armazenar para cada livro do usuário, sua posição na estante
    2. Realizar a busca no banco de dados (SELECT) dos livros que o usuário possui
    3. Para cada estante, realizar a busca no banco de dados (SELECT) dos livros que pertencem àquele gênero
    4. Exibir o resultado da pesquisa em uma página de acordo com a posição
  9. Permutar livros (2ª etapa)
    1. Empréstimo bidirecional: o usuário pede um livro e empresta um à outro usuário
  10. Devolver livros
    1. O processo de devolução também é de responsabilidade dos usuários
    2. Solicitar feedback ao final do empréstimo para ambos os usuários
  11. Vender livros (2ª etapa)
    1. Receber num formulário o preço e as opções de frete oferecidas pelo vendedor
    2. Atualizar o livro no banco de dados (UPDATE) marcando-o como posto à venda
    3. Disponibilizar um botão para que interessados possam entrar em contato com o vendedor
  12. Gerenciar livros emprestados
    1. Realizar a busca no banco de dados (SELECT) dos livros, filtrando somente aqueles que estão emprestados
    2. Exibir o resultado da pesquisa em uma página
  13. Prorrogar data de devolução
    1. Exibir formulário para receber a mensagem de prorrogação e a quantidade de dias
    2. Enviar solicitação via e-mail para o dono do livro
    3. Aumentar (ou não) o prazo de devolução de acordo com a resposta do dono
    4. Enviar e-mail de confirmação (ou não confirmação) da prorrogação ao solicitante
  14. Dar feedback
    1. Criar atributo de créditos do usuário (positivo, negativo e neutro)
    2. Criar função para qualificar o usuário após um empréstimo / venda
    3. Qualificar solicitante e atendente do pedido de empréstimo / venda
    4. Opções de qualificação: prazo de entrega/devolução, estado do livro, negociação.
  15. Formar "lista de espera" para livros
    1. O usuário solicita um livro já emprestado e fica na "lista de espera" dele
    2. Sua posição na lista de espera é classificada tanto por data de solicitação quanto por créditos (qualificação)
  16. Gerar etiqueta de identificação
    1. Gerar um código de barras para cada livro cadastrado
    2. Salvar automaticamente código de barras nas informações do livro


Tarefas (para o Treinamento)

Gerais (todos devem fazer)

  1. Resolver os exercícios de Python no URI
  2. Realizar o fork do projeto no GitHub
  3. Fazer, pelo menos, um pull request ao projeto
  4. Desenhar pelo menos uma tabela do diagrama do banco de dados
  5. Contribuir com o desenvolvimento do projeto web final (escolher tarefa específica)
  6. Seguir as regras da pep-8 (bônus)
  7. Criar um nome mais comercial

Específicas

  1. Documentar o projeto
  2. Criar o script de teste unitário do projeto
  3. Implementar a busca de livros com filtros
  4. Implementar o CRUD de Livros
  5. Implementar o cadastro, login/logout e perfil do usuário
  6. Implementar as páginas de exibição dos livros por categoria/filtro
  7. Implementar o sistema de permutação
  8. Implementar o sistema de empréstimo
  9. Implementar o sistema de devolução
  10. Implementar o sistema de negociação de prazos
  11. Implementar o sistema de gerenciamento dos livros emprestados
  12. Implementar o sistema de multa (simples, sem gerar cobrança direta)
  13. Implementar o sistema de vendas (simples, sem gerar cobrança direta)
  14. Implementar o sistema de emails
  15. Criar o banco de dados
  16. Implementar as tabelas por meio de ORM

Requisitos não-funcionais

  • Interpretador: CPython 3.4
  • Framework web: Django 1.9 e Flask 0.10
  • SGBD: PostgreSQL 9.4
  • Versionamento: Git
  • Servidor HTTP: Gunicorn 19.4


Autores


  • Júlia Rizza
  • Luiz Cláudio Theodoro


Colaboradores


  • Eustáquio Fernandes Júnior
  • Matheus Silva Santos
  • Gustavo Gardusi
  • Pedro Henrique da Costa Avelar
  • Marc Sué Pires Morais Junior
  • Kethllen Andrey Santos

Projetos Similares

OpenLibrary

O Openlibrary é um projeto de catalogação e viabilização de empréstimos e vendas de livros, totalmente gratuito, feito pela InternetArchive.

Ele é feito em Python com a api de wiki Infogami (que é baseada em web.py) e tem seu código fonte disponível no github. Há também uma página com instruções para contribuições assim como uma documentaçao para desenvolvedores. Há também o link da "central de desenvolvedores" que contém todos os acima, além de links para outras páginas e também está disponibilizado o download do banco de dados do projeto.