WordKeeper is a MERN-based library management system that helps efficiently organize and manage your library collections. With user authentication, book search, loan management, and admin controls, it simplifies the entire library experience.
- Overview
- Technologies
- Packages & Libraries Used
- Getting Started
- Setup
- Features
- Demo & Screenshots
- Acknowledgments
- License
WordKeeper is a library management system built with the MERN stack to provide a seamless experience for managing books, members, and borrowing records. It offers both user and admin dashboards with essential features like book search, loan tracking, authentication, and notifications.
| Technology | Description |
|---|---|
| HTML | Frontend structure |
| CSS | Styling and UI design |
| JavaScript | Dynamic interactions |
| EJS | Server-side rendering |
| Node.js | Backend logic |
| MongoDB | Database management |
| Express.js | Web framework for Node.js |
| Package / Library | Purpose |
|---|---|
| Express.js | Backend framework |
| Axios | HTTP requests |
| bcrypt | Password hashing |
| body-parser | Handling form data |
| Cloudinary | Image storage |
| dotenv | Manage environment variables |
| exceljs | Exporting reports in Excel |
| fs | File system operations |
| Mongoose | MongoDB ODM |
| Multer | File uploads |
| Nodemailer | Sending email notifications |
| OTP Generator | Generating one-time passwords |
| Request | HTTP client |
| UUID | Unique ID generation |
| Bootstrap | UI framework |
- Clone the repository:
git clone https://github.com/jenil-desai/Wordkeeper.git - Navigate to the project directory:
cd Wordkeeper - Install dependencies:
npm install - Set up environment variables:
PORT=8080SECRET=For HashingDATABASE_URL=MongoDB URLMAIL_USER=mail_ID to send emailsMAIL_PASS=mail_password to send emailsCLOUD_NAME=cloudinary cloud name to store imagesAPI_KEY=cloudinary api_keyAPI_SECRET=cloudinary api_secretX_API_KEY=ninjaAPI api key
- Create an admin account:
node ./utils/createAdminUser.js - Start the server:
node index.js
- Register an account or use the default admin account (username: admin, password: admin123) to access admin functionalities.
- Add books to the library, manage transactions, and customize user preferences.
- Recover passwords using the OTP system by providing the OTP sent to your registered email.
- Enjoy a seamless library management experience with enhanced security features.
✔️ User authentication and authorization system
✔️ Dashboard for members to view their borrowed books and account details
✔️ Profile management - users can update their information
✔️ Book management - add, edit, and delete books
✔️ Advanced book search functionality
✔️ Loan and return tracking system
✔️ Email notifications for overdue books
✔️ Password reset functionality
✔️ Admin dashboard with library statistics
- Demo and screenshots will be added by the project owner.
This project is licensed under the MIT License. See the LICENSE file for details.