Biblioteca Pessoal

Conheça o projeto

Nesse projeto você vai desenvolver sistema simples de gerenciamento de biblioteca pessoal em linha de comando (CLI), permitindo cadastrar livros, autores, buscar por diferentes critérios e gerar estatísticas básicas.

Instruções

Estrutura, regras e requisitos do projeto

Objetivo

Sistema de gerenciamento de biblioteca pessoal em linha de comando (CLI) desenvolvido como exercício prático para treinamento de Ruby. O projeto permite cadastrar livros e autores, realizar buscas por diferentes critérios e gerar estatísticas sobre a coleção.

Propósito Didático

Aplicar conceitos fundamentais de Ruby:

  • Procs, Lambdas e Métodos: Implementação de filtros customizáveis e callbacks
  • Orientação a Objetos: Classes, herança, composição e encapsulamento
  • Gems: Utilização de bibliotecas externas para interface e formatação
  • Interação com Arquivos: Persistência de dados em formato JSON

Funcionalidades Principais

  • Cadastro completo de livros com informações detalhadas
  • Sistema de busca e filtragem avançada
  • Controle de status de leitura e avaliações
  • Geração de estatísticas e relatórios
  • Persistência de dados

Especificações

1. Gestão de Livros

1.1 Cadastro de Livros

Campos obrigatórios:

  • Título
  • Autor

Campos opcionais:

  • Ano de publicação
  • ISBN
  • Categoria/Gênero
  • Observações

Campos com valores predefinidos:

  • Status de leitura: "Não lido" (padrão), "Lendo", "Lido"
  • Avaliação: 1 a 5 estrelas (opcional, apenas para livros lidos)

1.2 Listagem de Livros

  • Exibição em formato tabular
  • Informações básicas visíveis
  • Indicação visual do status de leitura
  • Suporte para listagem completa da biblioteca

1.3 Sistema de Busca

Filtros simples disponíveis:

  • Título (busca parcial/substring)
  • Autor (busca parcial/substring)
  • Ano de publicação (exato)
  • Categoria (exato)
  • Status de leitura (exato)
  • Avaliação (exato ou por faixa)

Filtros avançados:

  • Combinação de múltiplos critérios usando lambdas
  • Exemplos de uso:
    • "Livros de ficção científica não lidos"
    • "Livros com 5 estrelas do autor X"
  • Criação de filtros customizados via procs/lambdas

1.4 Edição de Livros

  • Permitir alteração de qualquer campo
  • Atualização de status de leitura
  • Modificação de avaliação
  • Edição de observações

1.5 Remoção de Livros

  • Exclusão permanente do registro
  • Solicitação de confirmação obrigatória antes da remoção

2. Estatísticas e Relatórios

2.1 Resumo Geral

  • Total de livros cadastrados
  • Distribuição por status (não lido, lendo, lido)
  • Distribuição por categoria
  • Média de avaliação dos livros lidos

2.2 Análise por Autor

  • Contagem de livros por autor
  • Ordenação por quantidade (decrescente)

2.3 Análise Temporal

  • Agrupamento de livros por década
  • Visualização da distribuição temporal da coleção

2.4 Top Livros

  • Ranking de livros com melhor avaliação
  • Filtro: apenas livros já lidos e avaliados
  • Ordenação por avaliação (decrescente)

3. Persistência de Dados

  • Armazenamento em formato JSON
  • Leitura e escrita de arquivos
  • Manutenção do estado entre execuções

Tarefas

Use este checklist para ajudar a organizar a sua entrega

Projetos relacionados