Skip to content

LucasCavalheri/ruby-shelf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Biblioteca Pessoal em Ruby

Uma aplicação CLI para organizar sua coleção de livros em Ruby, com persistência local em JSON, busca, filtros, estatísticas e exportação de dados.

Ruby TTY Prompt TTY Table Colorize


📋 Índice


✨ Sobre o projeto

Esta é uma CLI simples e agradável para gerenciar livros de uma biblioteca pessoal. O foco é guardar a coleção de forma local, rápida e sem depender de banco de dados ou servidor.

O que ela faz?

Funcionalidade Descrição
Cadastrar livros Adiciona livros com título, autor, ano, ISBN, categoria, status, avaliação e observações
🔎 Buscar livros Procura por título, autor, ISBN, status, categoria ou ano
✏️ Editar cadastro Atualiza os dados de um livro existente
🗑️ Remover livros Exclui um livro com confirmação
📊 Estatísticas Mostra totais, distribuição por status, média de avaliação e categorias
💾 Persistência local Salva tudo em JSON automaticamente
📤 Exportação Gera backups em JSON ou CSV

🛠️ Tecnologias

Tecnologia Propósito
Ruby Linguagem principal
colorize Cores e destaque no terminal
tty-prompt Interações guiadas com o usuário
tty-table Exibição tabular dos livros
JSON Persistência local dos dados
CSV Exportação dos dados

🚀 Como executar

Pré-requisitos

  • Ruby instalado
  • Bundler disponível (gem install bundler)

Instalação

git clone https://github.com/seu-usuario/biblioteca.git
cd biblioteca
bundle install

Iniciar a aplicação

ruby biblioteca.rb

Ao iniciar, a aplicação carrega os livros de data/biblioteca.json. Se o arquivo não existir, ele será criado automaticamente quando você salvar o primeiro livro.


🎯 Funcionalidades

Menu principal

  1. Cadastrar livro
  2. Listar todos os livros
  3. Buscar livro
  4. Editar livro
  5. Remover livro
  6. Estatísticas
  7. Exportar / Backup
  8. Sair

Formato do livro

Cada livro pode conter:

  • título
  • autor
  • ano
  • ISBN
  • categoria/gênero
  • status de leitura
  • avaliação
  • observações
  • data de cadastro

Status suportados

  • nao_lido
  • lendo
  • lido

📁 Estrutura do projeto

📦 biblioteca
 ┣ 📜 biblioteca.rb         # Ponto de entrada da aplicação
 ┣ 📂 lib/
 ┃ ┣ 📜 book.rb             # Modelo de livro e validações
 ┃ ┣ 📜 file_manager.rb     # Persistência JSON e exportação
 ┃ ┣ 📜 library.rb          # Regras da coleção de livros
 ┃ ┗ 📜 menu.rb             # Interface do terminal
 ┣ 📂 data/
 ┃ ┣ 📜 biblioteca.json      # Arquivo principal de dados
 ┃ ┗ 📂 exports/            # Backups exportados em JSON/CSV
 ┣ 📜 Gemfile               # Dependências do projeto
 └ 📜 Gemfile.lock          # Versões travadas

💻 Exemplos de uso

Cadastrar um livro

1. Cadastrar Livro
Título: Clean Code
Autor: Robert C. Martin
Ano: 2008
ISBN (opcional): 9780132350884
Categoria/Gênero: Programação
Status de Leitura: Lido
Avaliação: 5
Observações: Livro essencial para boas práticas

Buscar livros

  • por texto, digitando parte do título, autor ou ISBN
  • por status, escolhendo entre lido, lendo ou não lido
  • por categoria
  • por ano

Exportar dados

Você pode gerar uma cópia dos livros em:

  • JSON, para manter o mesmo formato estruturado
  • CSV, para abrir em planilhas ou importar em outras ferramentas

🧠 Decisões de design

O projeto foi organizado para manter cada responsabilidade no lugar certo:

  • Book concentra validação e formatação de um livro.
  • Library concentra regras sobre a coleção.
  • Menu cuida apenas da interface no terminal.
  • FileManager cuida da leitura, escrita e exportação dos dados.

Isso deixa a CLI mais fácil de evoluir, testar e manter.


📄 Licença

Sem licença definida no repositório no momento.

About

Uma aplicação CLI para organizar sua coleção de livros em Ruby, com persistência local em JSON, busca, filtros, estatísticas e exportação de dados.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages