The Palos Publishing Company

Follow Us On The X Platform @PalosPublishing
Categories We Write About

Build a library due date reminder

Here’s a simple implementation of a Library Due Date Reminder system in Python. This system allows users to add borrowed books with due dates and receive reminders for upcoming or overdue returns.

python
import datetime class LibraryReminder: def __init__(self): self.borrowed_books = [] def add_book(self, title, due_date_str): due_date = datetime.datetime.strptime(due_date_str, "%Y-%m-%d").date() self.borrowed_books.append({"title": title, "due_date": due_date}) print(f"Book '{title}' added with due date {due_date}.") def list_books(self): if not self.borrowed_books: print("No books borrowed.") return print("Borrowed Books:") for book in self.borrowed_books: status = self._get_status(book["due_date"]) print(f"- {book['title']} (Due: {book['due_date']}) - {status}") def check_reminders(self): today = datetime.date.today() reminders = [] for book in self.borrowed_books: days_left = (book["due_date"] - today).days if days_left < 0: reminders.append(f"OVERDUE: '{book['title']}' was due on {book['due_date']}.") elif days_left <= 3: reminders.append(f"REMINDER: '{book['title']}' is due in {days_left} day(s) on {book['due_date']}.") return reminders def _get_status(self, due_date): today = datetime.date.today() if due_date < today: return "Overdue" elif (due_date - today).days <= 3: return "Due Soon" else: return "On Time" # Example usage: if __name__ == "__main__": reminder = LibraryReminder() reminder.add_book("1984", "2025-05-20") reminder.add_book("To Kill a Mockingbird", "2025-05-17") reminder.list_books() print("n--- Reminders ---") for r in reminder.check_reminders(): print(r)

Features:

  • Add books with due dates.

  • List all borrowed books with status (On Time, Due Soon, or Overdue).

  • Check reminders for books due in 3 days or less or already overdue.

Customization ideas:

  • Store data persistently (e.g., JSON or SQLite).

  • Send email or SMS reminders using a scheduler like cron or Python’s schedule.

  • Add a user interface (e.g., with Tkinter or a web app framework like Flask). Let me know if you’d like that version next.

Share this Page your favorite way: Click any app below to share.

Enter your email below to join The Palos Publishing Company Email List

We respect your email privacy

Categories We Write About