https://github.com/abhi9ab/advanced-library-management-system
A backend system for managing a library's books, users, and borrowing activities.
https://github.com/abhi9ab/advanced-library-management-system
expressjs postgresql postman prisma-orm ts-node typescript
Last synced: 5 months ago
JSON representation
A backend system for managing a library's books, users, and borrowing activities.
- Host: GitHub
- URL: https://github.com/abhi9ab/advanced-library-management-system
- Owner: abhi9ab
- License: mit
- Created: 2025-01-06T03:13:31.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-01-19T12:57:54.000Z (6 months ago)
- Last Synced: 2025-01-19T14:01:03.480Z (6 months ago)
- Topics: expressjs, postgresql, postman, prisma-orm, ts-node, typescript
- Language: TypeScript
- Homepage: https://advanced-library-management-system-gamma.vercel.app/
- Size: 139 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Advanced Library Management System
A backend system for managing a library's books, users, and borrowing activities.
---
## Description
The Advanced Library Management System is designed to help librarians and library staff manage their collections of books, users, and borrowing activities efficiently. It leverages modern web technologies to provide a robust and scalable solution.
---
**Register**
**Login**
**Create category**
**Create books**
**Search book by name**
**Borrow book**
**Return book**
**Most borrowed book analytics**
**Delete book**
**Delete user**
**Redis usage: first request for search**
**Redis usage: second request faster !!!**
**Payment invoice**
**Due payment demo (Youtube Video)**
[](https://www.youtube.com/watch?v=OSkmqp6V8RE)**Email Verification demo (Youtube Video)**
[](https://www.youtube.com/watch?v=umJNrZFyyew)**and much more...**
---
## Features
**Authentication**
- JWT-based authentication system
- Role-based access control (Admin/Member)
- Email verification for new users
- Secure password hashing with bcrypt
- CRUD operations for users (Admin only)
- Manage users: Register, update, and remove library users.**Book Management**
- Manage books: Add, update, delete, and search for books.
- Borrowing system: Keep track of borrowed books, due dates, and returns.
- Redis for faster retrieve during search.
- Book search functionality with filters
Search by title
Search by author
Search by ISBN
- Real-time book availability tracking
**Borrowing System**
- Book borrowing with automated due date assignment
- Maximum 3 books per user limit
- Return processing with automatic fine calculation
- Late return fine: $1 per day**Payment System**
- Fine payment processing
- HTML invoice generation
- Transaction history tracking
- Payment status monitoring (Pending/Completed/Failed)**Automated Notifications**
- Email verification for new accounts
- Due date reminders (3 days before due date)
- Overdue notifications with fine amounts
---## Installation
To install and run the Advanced Library Management System locally, follow these steps:
1. **Clone the repository:**
```bash
git clone https://github.com/abhi9ab/Advanced-Library-Management-System.git
cd Advanced-Library-Management-System
```2. **Install dependencies:**
```bash
npm install
```3. **Set up environment variables:**
Create a `.env` file in the root directory and add the following variables:
```env
PORT=3000
DATABASE_URL=
JWT_SECRET=
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="465"
SMTP_USER=
SMTP_PASS=
RATE_LIMIT_WINDOW="15m"
RATE_LIMIT_MAX="100"
REDIS_URL=redis://localhost:6379
```
4. **Confiure the database**```bash
npx prisma migrate dev
```5. **Set up your Redis database using docker**
```bash
docker pull redis/redis-stack
```
6. **Get your JWT_SECRET**
```bash
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
```8. **Get your gmail app password**
[watch this video](https://www.youtube.com/watch?v=cqdAS49RthQ)
10. **Run the application:**
```bash
npm start
```11. **Access the application:**
Open your postman and go to `http://localhost:3000`.
---
## Deliverables:
[drive link](https://drive.google.com/drive/folders/1zhtr1zR9BXhkAO2ks5vqbwJd33clgkP3?usp=drive_link)
---
## Database relationship diagrams:

---
## Contributing
- Fork the repository
- Create a feature branch
- Commit changes
- Push to the branch
- Create a Pull Request---
## License
[MIT](https://github.com/abhi9ab/Advanced-Library-Management-System/blob/main/LICENSE)
---
## Contact Information
For any questions or inquiries, please contact:
- **Email:** [abhi9ab]([email protected])