tauanyfeitosa / AdaTech.ProjetoFinal

0 stars 1 forks source link

author author author author author author

Biblioteca Eureka! - Sistema de Biblioteca da Universidade

O projeto tem como objetivo elaborar um sistema de biblioteca para uma universidade, no qual os usuários entram diariamente. Nele, será possível realizar empréstimos e reservas de livros no acervo, podendo ser feita por professores e alunos. O projeto tem como intuito aplicar os conceitos de POO e Lógica de Programação em C#, no qual foram adquiridos durante os módulos 1 e 2 do curso DiverseDEV organizado pelas instituições: ADA Tech e Mercado Eletrônico.


Tabela de conteúdos


Diagrama de Classes

Um diagrama de classes é uma ferramenta visual utilizada na modelagem de sistemas orientados a objetos para representar a estrutura estática de um sistema. Ele faz parte da Linguagem de Modelagem Unificada (UML), que é um conjunto de notações gráficas padronizadas para representar modelos de sistemas. A principal finalidade de um diagrama de classes é mostrar as classes que compõem um sistema, juntamente com seus atributos, métodos, relacionamentos e as associações entre as classes.

Utilizamos o site Lucidchart para realização do Diagrama de Classes do sistema da biblioteca, o qual pode ser visualizado clicando AQUI.


Organização do Sistema

Usuários

Como usuários do sistemas temos a Comunidade Acadêmica (composta por estudantes e professores) e os funcionários (divididos em atendente, bibliotecário e Diretor).

  Descrição:
- Estudante: Discente da universidade, ele pode reservar e realizar 5 empréstimos simultâneos, sendo eles exemplares de livros diferentes (apenas pode pegar emprestado um exemplar do livro), além de permitir 1 renovação para cada livro.
- Professor: Docente da universidade, pode realizar a mesma quantidade de empréstimos e renovações do estudante, tendo prioridade na fila de empréstimos e acesso a qualquer livro da biblioteca, mesmo de acervos restritos .
- Atendente: Responsável pelo atendimento e empréstimos direcionados a comunidade acadêmica.
- Bibliotecário: Responsável pela organização do acervo da biblioteca.
- Diretor: Responsável pela gestão de funcionários e autorização de solicitações relacionadas a mudanças no acerto ou livros novos.

Acervos

Os livros estão classificados em: Acervo Público, Acervo Restrito ou Fora de estoque.

  Descrição:
- Acervo públicos: são aqueles com pelo menos 2 exemplares na biblioteca em bom estado.
- Acervo restrito: livros com apenas um exemplar ou que todos os exemplares estão em mau estado.
- Fora de estoque: livros que foram perdidos, totalmente danificados ou que estão todos emprestados.

Interface dos Usuários

Geral

O sistema inicia com a tela de login, na qual sera digitado o usuário (Funcionários: login - Comunidade acadêmica: Matrícula) e a senha, além de escolher entre o tipo de usuário, podendo ser: Funcionário (Atendente, Bibliotecário e Diretor), Aluno ou Professor.


Figura 1: Tela de Login

Para testes, utilize os seguintes dados de Usuário e Senha:

  Atendente - Usuário: 07723268513 | Senha: 12345678  
Bibliotecário - Usuário: 12310622079 | Senha: 00000000
Diretor - Usuário: 98776773000 | Senha: 11111111
Aluno - Usuário: 202100400123 | Senha: 11111111
Professor - Usuário: 202100312356 | Senha: 23456789

Atendente

Na tela principal de atendente há nove botões: Quatro relacionados a visualização de conteúdo (Reservas, Alunos, Professores e Empréstimos), três relacionados ao carregamento de CSV para atualizar no sistema (Comunidade acadêmica, Empréstimos e Reservas), um botão para iniciar um empréstimo e outro para devolução de empréstimos.


Figura 2: Tela Principal de Atendente


VISUALIZAR RESERVAS: Abre uma nova janela para a visualização das reservas de livros existentes no sistema.


Figura 3: Tela Visualização de Reservas em Atendente

VISUALIZAR ALUNOS: Abre uma nova janela para a visualização dos alunos existentes na comunidade acadêmica.


Figura 4: Tela Visualização de Alunos em Atendente

VISUALIZAR PROFESSORES: Abre uma nova janela para a visualização dos professores existentes na comunidade acadêmica.


Figura 5: Tela Visualização de Professores em Atendente

VISUALIZAR EMPRESTIMOS: Abre uma nova janela para a visualização dos emprestimos existentes no sistema.


Figura 6: Tela Visualização de Empréstimos em Atendente

CARREGAR CSV - COMUNIDADE ACADÊMICA: Escolhe um arquivo (presente na máquina) relacionado aos usuários da comunidade acadêmica para adicionar no sistema
CARREGAR CSV - EMPRÉSTIMOS: Escolhe um arquivo (presente na máquina) relacionado aos empréstimos realizadas para adicionar no sistema
CARREGAR CSV - RESERVAS: Escolhe um arquivo (presente na máquina) relacionado as reservas realizadas para adicionar no sistema

INICIAR EMPRÉSTIMO: Abre uma janela que mostra todos os empréstimos com aprovações pendentes, contendo um botão para a criação de uma novo empréstimo.


Figura 7: Tela Aprovação de Emprestimos em Atendente

Caso o atendete deseje criar um novo empréstimo, ele clica no botão e é direcionado para outra janela. Após isso, ele deve selecionar o usuário, seu tipo (Aluno/Professor) e o livro escolhido. Caso o usuário esteja com um empréstimo ativo de um exemplar daquele livro ou tenha atingido o limite máximo de empréstimos (cinco), o empréstimo não será permitido.


Figura 8: Tela Criação de Empréstimo em Atendente

**DEVOLUÇÃO**: O atendente digita a matrícula do usuário que está devolvendo o livro e pressiona o botão "Pesquisar".


Figura 9: Tela Devolução do Livro em Atendente

Após isso, seleciona o livro que deseja devolver e marca a opção se o mesmo está em bom estado ou não, por fim pressiona o botão "Devolver". O atendente só pode realizar a devolução de 1 (um) livro por vez.


Figura 10: Tela Devolução do Livro Após Busca

### Bibliotecário Na tela principal de Bibliotecário há 6 botões: Três relacionados a visualização de conteúdo (Livros, Solicitações de lote e Solicitações de Mudança de acervo), um relacionado ao carregamento de CSV para adicionar livro no sistema e dois botões para solicitações (Novos livros e Mudar de acervo).


Figura 11: Tela Principal de Bibliotecário

**VISUALIZAR LIVROS**: Abre uma nova janela para a visualização dos livros existentes nos acervos.


Figura 12: Tela Visualização de Livros por Bibliotecário

**CARREGAR CSV - LIVRO**: Escolhe um arquivo (presente na máquina) relacionado aos Livros para adicionar no sistema.
**SOLICITAR NOVOS LIVROS**: O bibliotecário pode solicitar novos livros, quando o livro não houver mais exemplares disponíveis para utilização. Para solicitar, escolha um livro, o tipo de acervo para qual ele será direcionado e uma descrição do pedido.


Figura 13: Tela de Solicitação de Livros

**VISUALIZAR SOLICITAÇÕES DE LOTES**: Abre uma nova janela para a visualização das solicitações de novos livros existentes no sistema.


Figura 14: Tela Visualização de Solicitações de Livros por Bibliotecário

**SOLICITAR MUDAR ACERVO**: O bibliotecário pode solicitar a mudança de acervo de um livro. Para realiza, coloca-se o livro escolhido, o acervo para qual será modificado e uma descrição do motivo dessa mudança.


Figura 15: Tela de Solicitação para Mudar Acervo de Livro

**VISUALIZAR SOLICITAÇÕES DE MUDANÇA DE ACERVO**: Abre uma nova janela para a visualização das solicitações de mudança de acervo existentes no sistema.


Figura 16: Tela Visualização de Solicitações de Mudança de acervo por Bibliotecário

### Diretor Na tela principal de Diretor há 4 botões: Três relacionados a visualização de conteúdo (Reservas, Funcionários e Solicitações) e um relacionado ao cadastramento de funcionários.


Figura 17: Tela Principal de Diretor

**VISUALIZAR RESERVAS**: Abre uma nova janela para a visualização das reservas existentes no sistema.


Figura 18: Tela Visualização de Reservas por Diretor

**ADICIONAR FUNCIONÁRIOS**: Adiciona um arquivo CSV contendo os novos funcionários.

**VISUALIZAR FUNCIONÁRIOS**: Abre uma nova janela para a visualização dos funcionários cadastrados no sistema.


Figura 20: Tela Visualização de Funcionários

**VISUALIZAR SOLICITAÇÕES**: Abre uma nova janela para a visualização de todas as solicitações existentes no sistema.


Figura 21: Tela Visualização de Solicitações do Bibliotecário

### Comunidade Acadêmica Na tela principal dos membros da comudade acadêmica (Alunos e Professores) há 4 botões: Visualização do acervo de livros, Pagamento de multas, Reserva e Renovação de livros.


Figura 22: Telas Principais de Comunidade Acadêmica

Com relação aos usuários professores, deve-se ressaltar que todo o dia 25 a senha dele é modificada, fornecendo a nova senha para o usuário 10 dias antes, assim que ele entrar no sistema.

**VISUALIZAR ACERVO**: Abre uma nova janela para a visualização dos livros existentes no sistema.


Figura 23: Tela Visualização do Acervo por Comunidade Acadêmica

**RENOVAR**: O usuário pode escolhar qual empréstimo deseja renovar clicando no botão ao lado da descrição do livro, então a data de devolução aumenta em 7 dias.


Figura 24: Tela de Renovação do empréstimo por Comunidade Acadêmica

**MULTAS**: O usuário pode escolhar qual empréstimo deseja pagar a multa clicando no botão ao lado do empréstimo, a partir disso o sistema irá reconhecer como pago.


Figura 25: Tela de Pagamento de Multa por Comunidade Acadêmica

**RESERVAR**: O usuário escolhe o livro que deseja reservar, recebendo como retorno a data do dia que poderá retirar o livro.


Figura 26: Tela para Reservar Livro por Comunidade Acadêmica

**CANCELAR RESERVA**: O usuário escolhe o livro que deseja cancelar a reserva e o exemplar retorna para disponibilidade.


Figura 26: Tela para Cancelar Reserva por Comunidade Acadêmica

--- ## Dados Os dados iniciais referentes aos Usuários (Atendentes, Diretores, Bibliotecários e Comunidade Acadêmica), Empréstimos, Livros e Reservas estão presentes em arquivos TXT localizados na pasta "Data", eles podem ser alterados no decorrer do programa, sendo sempre atualizados.
--- ## Itens Obrigatórios - [X] Três indivíduos aptos a entrar no sistema.
- [X] Professores podem ter acesso a qualquer livro da biblioteca.
- [X] Para entrar no sistema da biblioteca, os funcionários precisam de login e senha, novos funcionários são cadastrados pelo diretor da biblioteca.
- [X] Para que os alunos solicitem os livros, devem informar um código de acesso (n° de matrícula). Todos os alunos já estão registrados no sistema através do número de matrícula, precisam apenas informar e aguardar a liberação pela biblioteca.
- [X] Os professores necessitam mostrar apenas o código de cadastro no sistema e uma senha padrão que é alterada a cada mês.
- [X] Os livros são divididos em 3 setores: fora de estoque, acervo restrito e acervo publico.
- [X] Acervo públicos: são aqueles com pelo menos 2 exemplares na biblioteca em bom estado.
- [X] Acervo restrito: livros com apenas um exemplar ou que todos os exemplares estão em mau estado.
- [X] Fora de estoque: livros que foram perdidos, totalmente danificados ou que estão todos emprestados.
- [X] Os números de matricula são lidos através de um csv e os livros são cadastrados na classe Livros através de um Json com todas as informações.
- [X] O arquivo csv ou json pode ser atualizado a qualquer momento pelos atendentes ou diretor.
- [X] Estudantes: os estudantes só tem acesso ao acervo aberto e podem entrar na fila de espera (ou lista de reserva de livros) quando quiserem.
- [X] Funcionários: todos os funcionários tem acesso ao sistema, mas com permissões diferentes. - [X] Só os atendentes podem atualizar registros de usuários e permitir o empréstimo do livro.
- [X] Todo funcionário pode verificar se o livro está no sistema e se está disponível, todo funcionário também pode cadastrar um novo livro ou atualizar o número de exemplares. -> MODIFICADO PARA APENAS BIBLIOTECÁRIO --- ## Clonar Repositório - Clone esse repositório na sua máquila local utilizando > https://github.com/tauanyfeitosa/AdaTech.ProjetoFinal.git --- ## Autores |**Laura de Faria** | **Murilo Cavalcanti** |**Isabela Mendes** | **Tauany Feitosa** | **Amanda Bastos** | **Edvaldo Oliveira** | |:-----------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------:| | | | | | | | | `github.com/lauradefaria` | `github.com/murilojcavalcanti` | `github.com/isabelamendesx` | `github.com/tauanyfeitosa` | `github.com/AmandaaBastos` | `github.com/EdOliveiraJr` |