Skip to content

krzano/booklend

Repository files navigation

booklend-color-logo-small.jpg


BookLend is a web application that helps librarians to manage and access books and readers in an easy and efficient way. It provides librarians with dashboard where they can perform various tasks.

Live demo:   https://booklend.vercel.app/

Technologies

Project is built with:

Features

  • User Authentication 🙋‍♂️: user can sign up and log in with email and password. The app uses JWT and refresh token for authentication. The axios custom instance handles the token refresh on every request to the server.
  • Localization 🌐: user can switch between Polish and English language. The language preference is stored in the local storage and persists across sessions.
  • Book management 📚: user can add, edit, delete, and categorize books, as well as monitor the inventory and availability of books.
  • Reader management 👥: user can add, edit, and delete readers, lend books to readers, and see the list of borrowed books.
  • Account management ⚙️: users can change their profile picture, email, and password from the dashboard. They can also log out or delete their account if they wish.
  • Search 🔍: user can search for books or readers by various criteria, such as title, author, genre, or name. The search results are displayed in a paginated and sortable table and grid/list views, with filters and options to view, edit, or delete the items.
  • Responsive design 📱: users can access the application on various devices and screen sizes, thanks to the Material UI and styled components libraries. The layout and components adapt to the viewport width and orientation.

Screenshots

Localization

localization

Readers table and book list

readers table book list

Edit book (mobile)

edit book mobile

Reader page

reader page

Book page

book page

Lending the book and managing the book status (mobile)

lending the book managing the book status

Setup

Download or clone this repository.

Install dependencies: npm install

Start a local web server by running: npm start

Open http://localhost:5173 to view it in the browser.