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=8080
SECRET=For Hashing
DATABASE_URL=MongoDB URL
MAIL_USER=mail_ID to send emails
MAIL_PASS=mail_password to send emails
CLOUD_NAME=cloudinary cloud name to store images
API_KEY=cloudinary api_key
API_SECRET=cloudinary api_secret
X_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.