Skip to content

abhi9ab/Advanced-Library-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 api-auth-register

Login Screenshot From 2025-01-06 15-35-32

Create category Screenshot From 2025-01-06 17-51-33

Create books Screenshot From 2025-01-06 18-03-15

Search book by name Screenshot From 2025-01-06 18-03-54

Borrow book Screenshot From 2025-01-06 18-27-48

Return book Screenshot From 2025-01-06 18-29-06

Most borrowed book analytics Screenshot From 2025-01-06 18-29-41

Delete book Screenshot From 2025-01-06 19-54-23

Delete user Screenshot From 2025-01-06 20-08-12

Redis usage: first request for search Screenshot From 2025-01-07 00-23-48

Redis usage: second request faster !!! Screenshot From 2025-01-07 00-23-57

Payment invoice api-payment-invoice

Due payment demo (Youtube Video)
Watch the video

Email Verification demo (Youtube Video)
Watch the video

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:

    git clone https://github.com/abhi9ab/Advanced-Library-Management-System.git
    cd Advanced-Library-Management-System
  2. Install dependencies:

    npm install
  3. Set up environment variables:

    Create a .env file in the root directory and add the following variables:

    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

    npx prisma migrate dev
  5. Set up your Redis database using docker

    docker pull redis/redis-stack

    image

  6. Get your JWT_SECRET

     node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" 
  7. Get your gmail app password

    watch this video

  8. Run the application:

    npm start
  9. Access the application:

    Open your postman and go to http://localhost:3000.


Deliverables:

drive link


Database relationship diagrams:

mermaid-diagram-for-sql-script


Contributing

  • Fork the repository
  • Create a feature branch
  • Commit changes
  • Push to the branch
  • Create a Pull Request

License

MIT


Contact Information

For any questions or inquiries, please contact:

About

A backend system for managing a library's books, users, and borrowing activities.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published