Skip to content

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.

Notifications You must be signed in to change notification settings

devcodecampos/school-library

Repository files navigation

{ School Library }

Reading Changes You

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


🎮 Techs

Este projeto foi desenvolvido utilizando as seguintes tecnologias:

🧱 Estrutura do Projeto

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

🚩 Funcionalidades

  • 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

🕹️ Execução do Projeto

git clone https://github.com/devcodecampos/school-library.git

cd school-library

npm install

npm run dev

📚 Dependencias

Typescript

npm install -D typescript

ts-node-dev

npm install -D ts-node-dev

Inquirer

npm install @inquirer/prompts

Vitest

npm install -D vitest

Vitest UI

npm install -D @vitest/ui

UUID

npm install uuid

ESLint

npm init @eslint/config

🧪 Testes

Vitest

npm run test

Vitest UI

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)

🖥️ Prompts

Exemplos de prompts que o projeto possui:

App Menu

{ 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' }        
  }
]

📝 Licença

MIT License

🤖Autor

Feito por Matheus Campos

Linkedin Badge Gmail Badge

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published