O Sistema da Biblioteca Digital é uma aplicação desenvolvida em Java para auxiliar na gestão de disponibilidade de livros e reserva de livros. O sistema permite o cadastro, consulta, atualização e exclusão de dados sobre usuários e livros. Decidimos fornecer somente uma interface via terminal para interação dos usuários.
O desenvolvimento do Sistema da Biblioteca Digital foi realizado seguindo os princípios da programação orientada a objetos, utilizando a linguagem de programação Java. O projeto foi estruturado em diferentes pacotes para separar as responsabilidades e facilitar a manutenção e extensibilidade do código. (database, model, view)
Foram utilizadas as seguintes tecnologias e ferramentas no desenvolvimento do sistema:
- MySQL: Utilizado como banco de dados para armazenar os dados da Biblioteca.
- JDBC: Utilizado para realizar a conexão com o banco de dados e executar consultas e atualizações.
- Livros (contendo informações sobre 'cod_livro'; 'nome_livro'; 'autor_livro')
- Categoria (contendo informação sobre 'cod_categoria', 'nome_categoria')
- livrosCategoria (realizando um join entre as tabelas livros e categorias. Informações sobre 'cod_livro' e 'cod_categoria')
- Leitor (contendo informações sobre 'nome_leitor'; 'ra_leitor', 'email_leitor')
- leiorEmprestimo (contendo informações histórico de alugado/devolvido sobre 'codigo_livro'; 'status_livro'; 'ra_leitor')
- Bibliotecaria (contendo informações sobre 'nome_bibliotecaria'; 'cpf_bibliotecaria'; 'email_bibliotecaria')
- Usuário (classe pai, contendo informações de nome e email das partes) - Herança
- Leitor (classe filha, contendo informações da classe pai e um atributo exclusivo "RA")
- Bibliotecária (classe filha, contendo informações da classe pai e um atributo exclusivo "CPF")
- Categoria (Como existe uma relação n:n com livros decidimos criar uma classe para categorias)
- Empréstimo (Contendo a lógica de
reservar()
edevolver()
para os livros) - Livro (contendo toda a parte de gestão dos livros)
- Database (conexão com o banco de dados)
O Sistema de Gerenciamento de Funcionários possui as seguintes funcionalidades principais:
- Usuários:
- Permite cadastrar novos leitores e bibliotecários:
criarLeitor()
ecriarBibliotecaria()
. - Permite alterar leitores e bibliotecários:
alterarLeitor()
ealterarBibliotecaria()
. - Permite deletar leitores e bibliotecários:
deletarLeitor()
edeletarBibliotecaria()
.
- Categorias:
- Permite cadastrar uma nova categoria:
criarCategoria()
. - Permite alterar uma categoria:
alterarCategoria()
. - Permite visualizar todas as categorias em uma tabela no terminal:
lerCategorias()
emostrarCategorias()
.
- Livros:
- Permite cadastrar um novo livro:
criarLivro()
. - Permite alterar cadastro de um livro:
alterarLivro()
. - Permite deletar livro caso esteja danificado:
deletarLivro()
. - Permite visualizar todos os livros em uma tabela no terminal:
lerLivros()
emostrarLivros()
. - Permite filtrar busca de usuário por título de livro:
filtroLivrosTitulo()
emostrarFiltroPorTítulo()
. - Permite filtrar busca de usuário por categoria:
filtroLivrosCategoria()
emostrarFiltroPorCategoria()
.
- Emprestimo:
- Permite que um leitor reserve um livro:
reservarLivro()
everificarDisponibilidadeLivro()
. - Permite que um leitor devolva um livro:
devolverLivro()
everificarLivroEmprestado()
. - Permite visualizar todos os empréstimos em uma tabela no terminal:
lerEmprestimo()
emostrarEmprestimos()
.
- Database:
- Permite uma conexão com o banco de dados MySQL:
Database()
.
Para visualização do sistema da biblioteca escolhemos fazer a interface por meio do terminal. Foi separado toda a lógica de funcionamento das opções possíveis de interação com o usuário por métodos.
Construídos em classes:
- MetodosInterfaceB: interações da Bibliotecária no sistema
- MetodosInterfaceL: interações do Leito no sistema
- Exemplo de chamada: (Criando um novo cadastro para Leitor)
// Informações do BD
String username = "root";
String password = "rootroot";
String databaseName = "BIBLIOTECA";
String serverName = "localhost";
// Criando uma nova conexão
Database database = new Database(serverName, databaseName, password, username);
// Criando um cadastro de leitor
LeitorDb leitorDb = new LeitorDb(database);
leitorDb.criarLeitor("Katerine Witkoski", "12344559", "katerinewitkoski@gmail.com")
O projeto foi estruturado em diferentes pacotes para separar as responsabilidades e facilitar a manutenção e extensibilidade do código.
- database
- model
- view
Existe uma pasta doc
(contendo os objetivos do trabalho, todas as tabelas geradas para teste em csv
e esse mesmo relatório em .pdf) e uma pasta sql
(contendo todos os scripts relacionados ao banco de dados).
Para utilizar do sistema compile o arquivo Main
.