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.
- ✨ Sobre o projeto
- 🛠️ Tecnologias
- 🚀 Como executar
- 🎯 Funcionalidades
- 📁 Estrutura do projeto
- 💻 Exemplos de uso
- 🧠 Decisões de design
- 📄 Licença
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.
| 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 |
| 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 |
- Ruby instalado
- Bundler disponível (
gem install bundler)
git clone https://github.com/seu-usuario/biblioteca.git
cd biblioteca
bundle installruby biblioteca.rbAo 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.
- Cadastrar livro
- Listar todos os livros
- Buscar livro
- Editar livro
- Remover livro
- Estatísticas
- Exportar / Backup
- Sair
Cada livro pode conter:
- título
- autor
- ano
- ISBN
- categoria/gênero
- status de leitura
- avaliação
- observações
- data de cadastro
nao_lidolendolido
📦 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
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
- por texto, digitando parte do título, autor ou ISBN
- por status, escolhendo entre lido, lendo ou não lido
- por categoria
- por ano
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
O projeto foi organizado para manter cada responsabilidade no lugar certo:
Bookconcentra validação e formatação de um livro.Libraryconcentra regras sobre a coleção.Menucuida apenas da interface no terminal.FileManagercuida da leitura, escrita e exportação dos dados.
Isso deixa a CLI mais fácil de evoluir, testar e manter.
Sem licença definida no repositório no momento.