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


  • CRUD de Livros
  • CRUD de Usuário
  • Buscar livros disponíveis para empréstimo
  • Avisar de datas para devolução
  • Capturar ISBN do livro
  • Buscar livros com diversas opções de filtragens
  • Dispor Livros em estantes virtuais conforme gênero
  • Permutar livros
  • Emprestar livros
  • Devolver livros
  • Vender livros
  • Prorrogar data de devolução
  • Qualificar usuário
  • Enviar livro pelo Correios
  • Gerar etiqueta de identificação


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