https://github.com/krzano/booklend
(React + TS, Redux-Toolkit, Material UI) Book Library Management App
https://github.com/krzano/booklend
axios dayjs formik i18n i18next material-ui mui-x react react-router-v6 redux-toolkit styled-components typescript typescript-react vite yup
Last synced: 2 months ago
JSON representation
(React + TS, Redux-Toolkit, Material UI) Book Library Management App
- Host: GitHub
- URL: https://github.com/krzano/booklend
- Owner: krzano
- Created: 2023-11-10T15:47:27.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-07T12:08:14.000Z (over 2 years ago)
- Last Synced: 2025-02-03T02:53:59.336Z (over 1 year ago)
- Topics: axios, dayjs, formik, i18n, i18next, material-ui, mui-x, react, react-router-v6, redux-toolkit, styled-components, typescript, typescript-react, vite, yup
- Language: TypeScript
- Homepage: https://booklend.vercel.app
- Size: 409 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://booklend.vercel.app/)
**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/](https://booklend.vercel.app/)**
## Technologies
Project is built with:
- [**React 18**](https://react.dev/)
- [**React Router 6**](https://reactrouter.com/en/main)
- [**Redux Toolkit**](https://redux-toolkit.js.org/)
- [**Material UI**](https://mui.com/)
- [**styled components**](https://styled-components.com/)
- [**i18next**](https://www.i18next.com/)
- [**Axios**](https://axios-http.com/)
- [**Formik**](https://formik.org/)
- [**Yup**](https://github.com/jquense/yup)
- [React-Toastify](https://fkhadra.github.io/react-toastify/introduction/)
## 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

### Readers table and book list

### Edit book (mobile)

### Reader page

### Book page

### Lending the book and managing the book status (mobile)
 
## 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.