Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
165 changes: 165 additions & 0 deletions Library_Project/Member_Transactions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
import book_transactions
import json
import os

import bookdate

MEMBERS_FILE = "user.json"
TRACKING_FILE = "tracking.json"

if not os.path.exists(MEMBERS_FILE):
with open(MEMBERS_FILE, "w", encoding="utf-8") as f:
json.dump([], f, ensure_ascii=False, indent=4)

def load_members():
with open(MEMBERS_FILE, "r", encoding="utf-8") as f:
return json.load(f)

def save_members(members):
with open(MEMBERS_FILE, "w", encoding="utf-8") as f:
json.dump(members, f, ensure_ascii=False, indent=4)

if not os.path.exists(TRACKING_FILE):
with open(TRACKING_FILE, "w", encoding="utf-8") as f:
json.dump([], f, ensure_ascii=False, indent=4)

def load_tracking():
with open(TRACKING_FILE, "r", encoding="utf-8") as f:
return json.load(f)

def save_tracking(members):
with open(TRACKING_FILE, "w", encoding="utf-8") as f:
json.dump(members, f, ensure_ascii=False, indent=4)


def view_members():
members = load_members()
if not members:
print("No members in the library.")
else:
print("\n Member List:")
for member in members:
print(f"{member['id']} - {member['Name']} - {member['Tel']} - {member['Adres']}")

def add_member():
members = load_members()
if members:
id = max(member["id"] for member in members) + 1
else:
id = 1


name = input("Member name:")
tel = input("Member telephone:")
adres = input("Member adres:")


new_member ={
"id": id,
"name": name,
"tel": tel,
"adres": adres
}

members.append(new_member)
save_members(members)
print(f"Member {new_member['name']} added successfully.")



def search_member():
members = load_members()
keyword = input("Enter member name:").lower()
results = [i for i in members if keyword in i["name"].lower()]

if results:
print("Found Members:")
for member in results:
print(f"{member['id']} - {member['name']} - {member['tel']} - {member['adres']}")
else:
print("No matching members found.")



def delete_member():
members = load_members()
try:
id = int(input("Enter member id to delete:"))
except ValueError:
print("Error: The id must consist of numbers only.")
return

results = [member for member in members if id == member["id"]]

if results:
found_member = results[0]
print("Found Member:")
print(f"{found_member['id']} - {found_member['Name']} - {found_member['Tel']} - {found_member['Adres']}")

confirmation = input("Do you want to delete this member? (Yes/No):").lower()
if confirmation == "yes":
members.remove(found_member)
save_members(members)
print("Member deleted successfully.")
else:
print("Deletion cancelled.")
else:
print("No member matching this id was found.")





def lend_book():
tracking = load_tracking()
members = load_members()
books = book_transactions.load_books()

member_id = int(input("Enter member ID: "))
book_barcode = int(input("Enter book barcode to lend: "))

member = next((m for m in members if m["id"] == member_id), None)
book = next((b for b in books if b["Barkod"] == book_barcode), None)

book_time = bookdate.bookdate()

lend = {
"member": member,
"book": book,
"time": book_time
}


if member and book:
tracking.append(lend)
save_tracking(tracking)
else:
print("Invalid member or book barcode.")

print("The book lend operation was successful.")
print(book_time)



def return_book():
tracking = load_tracking()
members = load_members()
books = book_transactions.load_books()

member_id = int(input("Enter member ID: "))
book_barcode = int(input("Enter book barcode to return: "))

member = next((m for m in members if m["id"] == member_id), None)
book = next((b for b in books if b["Barkod"] == book_barcode), None)

record = next((r for r in tracking if r["member"]["id"] == member_id and r["book"]["Barkod"] == book_barcode), None)

if record:
tracking.remove(record)
save_tracking(tracking)
print(f"Book '{book['Kitap_Adi']}' returned successfully by {member['name']}.")
else:
print("This member has not borrowed this book.")



95 changes: 95 additions & 0 deletions Library_Project/book_transactions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import json
import os

BOOK_FILE = "kitap.json"

if not os.path.exists(BOOK_FILE):
with open(BOOK_FILE, "w", encoding="utf-8") as f:
json.dump([], f, ensure_ascii=False, indent=4)

def load_books():
with open(BOOK_FILE, "r", encoding="utf-8") as f:
return json.load(f)

def save_books(books):
with open(BOOK_FILE, "w", encoding="utf-8") as f:
json.dump(books, f, ensure_ascii=False, indent=4)


def view_book():
books = load_books()
if not books:
print("No books in the library.")
else:
print("\n Book List:")
for book in books:
print(f"{book['Kitap_Adi']} by {book['Yazar']} (barcode: {book['Barkod']})")

def add_book():
books = load_books()
barcode = int(input("Barcode:"))
language = input("Language:")
price = float(input("Price:"))
book_title = input("Book Title:")
publishing_house = input("Publishing House:")
author = input("Author:")

new_book = {
"Barkod": barcode,
"Dil": language,
"Fiyat": price,
"Kitap_Adi": book_title,
"Yayinevi": publishing_house,
"Yazar": author
}

books.append(new_book)
save_books(books)
print(f"Book {book_title} added successfully.")


def search_book():
books = load_books()
keyword = input("Enter book title or author:").lower()
results = [i for i in books if keyword in i["Kitap_Adi"].lower() or keyword in i["Yazar"].lower()]

if results:
print("Found Books:")
for book in results:
print(f"{book['Kitap_Adi']} by {book['Yazar']}, barcode:{book['Barkod']} ")
else:
print("No matching books found.")





def delete_book():
books = load_books()

try:
book_barcode = int(input("Enter book barcode to delete:"))
except ValueError:
print("Error: The barcode must consist of numbers only.")
return

results = [book for book in books if book_barcode == book["Barkod"]]

if results:
found_book = results[0]
print("Found Book:")
print(f"{found_book['Kitap_Adi']} by {found_book['Yazar']}, barcode:{found_book['Barkod']} ")

confirmation = input("Do you want to delete this book? (Yes/No):").lower()
if confirmation == "yes":
books.remove(found_book)
save_books(books)
print("Book deleted successfully.")
else:
print("Deletion cancelled.")
else:
print("No book matching this barcode was found.")




14 changes: 14 additions & 0 deletions Library_Project/bookdate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from datetime import datetime, timedelta


def bookdate():
now_time = datetime.now()
return_date = now_time + timedelta(weeks=2)

borrow_str = now_time.strftime("%d-%m-%Y, %H:%M")
return_str = return_date.strftime("%d-%m-%Y")

return f"Borrowing date: {borrow_str} | Return Date: {return_str}"



Loading