This project is part of the Microverse curriculum in JavaScript course!
Explore the docs »
View Live
Report Bug
Request Feature
This is a small Library application where the user can add or remove books, edit their author, title, number of pages and toggle a 'Have Read' switch
- About the Project
- Live Version
- Application Instructions
- System Requierments
- Development
- Built With
- Contributors
- Acknowledgements
The project uses two main classes, Library and Book.
The Library class holds an array of Books, manages the additions and deletions of Books, provides information about the total number of Books and the number of Books being read, supplies new IDs for new Books, and stores its data in localStorage.
The Book class holds information about a Book, which is the author, the title, the number of pages, and a status denoting if the book has been read.
The application's interface is a single view showing a scrolling table of all Books in the storage, a button at the top-right to add new books, a home button at the top-left (usefull when all books are deleted, to re-initialise the library) and an instruction note at the footer to inform the user how to add new Books.
Each Book entry in the table shows the Book's data and a trash button to delete the relevant book.
The main control of the application is performed in main.js file.
The Library and Book classes are implemented in library.js file.
The rendering of elements is supported by the bookPanelElements.js file.
Two shorthand commands for creating and accessing elements are used and are held in syntax.js file.
An initial population is performed when the Library is empty of Books by data held in seed.js.
-
Initially, the Library is filled with some data held in the seed.js file
-
The user can click the add button at the top-right and an entry of the new book is added at the bottom of the table prompting to enter its first field - the author's name
-
Then, by clicking each of the rest of the fields can edit its title and number of pages and declare if the book has been read
-
A trash button is available to remove each book after confirmation
-
Since the persistence of data is achieved using the localStorage, all the data inserted or edited are available only on the computer and the particular browser which have been used.
-
Text fields can not be left blank.
- JavaScript Enabled
- Clone the project
https://github.com/ioanniskousis/Librarian.git
Use VSCode and Live Server to show index.html
This project was built using these technologies.
- JavaScript (ES6)
- HTML5
- CSS3
- Git - GitHub
- ESLint
- Stylelint
- Stickler
👤
- Github: @ioanniskousis
- Twitter: @ioanniskousis
- Linkedin: Ioannis Kousis
- E-mail: jgkousis@gmail.com