Escopo


  • Aplicação web voltada para o empréstimo e controle de livros dos usuários.
    • Poderão ser cadastrados todos os livros que o usuário possui ou que ele deseja adquirir
    • Poderá ser solicitado o empréstimo de livros de outros usuários, emprestar seus próprios livros e gerenciar todos os empréstimos por categorias como: tempo, conservação, proximidade, etc.
    • Haverá pontuação de acordo com os empréstimos realizados de forma a ser qualificado publicamente.


Requisitos Funcionais


  1. CRUD de Livros (Júlia)
    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 (Júlia)
    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. Buscar livros disponíveis para empréstimo (Júlia)
    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, valor, gênero ou popularidade
    4. Permitir múltiplos filtros simultaneamente
    5. Exibir o resultado da pesquisa em uma página
  4. Avisar de datas para devolução (Marc Sué)
    1. Enviar e-mail / sms de aviso um dia antes da data de devolução
  5. Capturar ISBN do livro
    1. Criar função para ativar a câmera do smarthone para capturar o (
  6. Dispor Livros em estantes virtuais conforme gênero (Pedro)
  7. Permutar livros
  8. Emprestar livros
  9. Devolver livros
  10. Vender livros (Vender Livros)
  11. Gerenciar livros emprestados (Pedro)
  12. Prorrogar data de devolução (Júlia)
    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
  13. Qualificar usuário (Marc)
  14. Enviar livro pelo Correios
  15. Gerar etiqueta de identificação (Júlia)
    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