Sistema de gerenciamento de biblioteca que permite aos usuários (alunos e professores) realizarem operações de empréstimo, devolução, e busca de livros. O sistema será orientado a objetos, seguindo os princípios da programação orientada a objetos.
Techs | Estrutura do Projeto | Funcionalidades | Dependencias | Execução | Testes | Prompts | Licença
Este projeto foi desenvolvido utilizando as seguintes tecnologias:
src
└───entities
└───Book
└───Book.spec.ts
└───Book.ts
└───BookLoan
└───BookLoan.spec.ts
└───BookLoan.ts
└───Library
└───Library.spec.ts
└───Library.ts
└───Student
└───Student.spec.ts
└───Student.ts
└───Teacher
└───Teacher.spec.ts
└───Teacher.ts
└───User
└───User.spec.ts
└───User.ts
└───index.ts
.eslintrc.json
.gitignore
package-lock.json
package.json
tsconfig.json
vite.config.ts
- Adicionar Livro: Adiciona um livro à lista de livros
- Registrar Usuário: Registra um novo usuário na biblioteca
- Realizar Empréstimo: Registra um novo empréstimo na biblioteca, atualizando as listas de empréstimos e disponibilidade de livros
- Realizar Devolução: Atualiza as informações do empréstimo após a devolução do livro
- Buscar Livro por Título: Retorna uma lista de livros que correspondem ao título informado
- Listar os ultimos empréstimos de um livro
- Ao realizar um empréstimo, o sistema deve registrar os empréstimos em uma nova propriedade chamada histórico de empréstimos nas entidades Aluno e Professor
git clone https://github.com/devcodecampos/school-library.git
cd school-library
npm install
npm run dev
npm install -D typescript
npm install -D ts-node-dev
npm install @inquirer/prompts
npm install -D vitest
npm install -D @vitest/ui
npm install uuid
npm init @eslint/config
npm run test
npm run test:ui
✓ src/entities/User/User.spec.ts (1)
✓ src/entities/Book/Book.spec.ts (1)
✓ src/entities/BookLoan/BookLoan.spec.ts (2)
✓ src/entities/Student/Student.spec.ts (1)
✓ src/entities/Teacher/Teacher.spec.ts (1)
✓ src/entities/Library/Library.spec.ts (3)
Test Files 6 passed (6)
Tests 9 passed (9)
Exemplos de prompts que o projeto possui:
{ SCHOOL LIBRARY }
? Select An Option (Use arrow keys)
searchBookByTitle
addBook
> registerUser
bookLoan
bookReturn
getUsers
getBookLoans
getBooks
exit
Adicionar Livro: Adiciona um livro à lista de livros
{ SCHOOL LIBRARY }
? Select An Option addBook
? title: The Outsider
? author: Stephen King
? publishDate, in the format 2023/12/01: 2018/05/22
? genre: Horror
? quantityAvailable: 2
Registrar Usuário: Registra um novo usuário na biblioteca
{ SCHOOL LIBRARY }
? Select An Option registerUser
? Select An Option
> student
teacher
{ SCHOOL LIBRARY }
? Select An Option registerUser
? Select An Option student
? name: Matheus
? studentClass: backend
? registrationId: fap-01
Listar Usuários: Lista os usuários da biblioteca
{ SCHOOL LIBRARY }
? Select An Option getUsers
[
Student {
_userProps: { name: 'Matheus', id: '99ff9cd9-9b81-4571-806d-fe136ff6265c' },
_studentProps: { studentClass: 'backend', registrationId: 'fap-01' }
}
]
MIT License
Feito por Matheus Campos