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 datas para devolução;
  • Busca de livros com diversas opções de filtragens;
  • Colocar Livros em estantes virtuais conforme gênero;
  • Sistema de permutação de livros;
  • Sistema de empréstimo de livros;
  • Sistema de devolução de livros;
  • Sistema de venda de livros;
  • Sistema para adiar data de devolução;
  • Sistema de controle de livros emprestados;

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)

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