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
140 changes: 140 additions & 0 deletions BookGivingTransactions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
from datetime import datetime, timedelta
import json

kontrol_file ="tracking.json"
MEMBERS_FILE = "user.json"
BOOKS_FILE = "kitap.json"

# Kitapları yükleme
def load_books():
try:
with open(BOOKS_FILE, "r") as file:
return json.load(file)
except FileNotFoundError:
print("Kitap dosyası bulunamadı.")
return []
except json.JSONDecodeError:
print("Kitaplar yüklenirken hata oluştu.")
return []

# Üyeleri yükleme
def load_members():
try:
with open(MEMBERS_FILE, "r") as file:
return json.load(file)
except FileNotFoundError:
print("Üye dosyası bulunamadı.")
return {}
except json.JSONDecodeError:
print("Üyeler yüklenirken hata oluştu.")
return {}

# Kitap ödünç verme
def add_bookgiving():
members = load_members()
books = load_books()

if not books:
print("Mevcut kitap yok.")
return

# Üye bilgilerini alma
member_id = input("Kitap ödünç vermek için üye ID'sini girin: ")
if member_id not in members:
print("Üye bulunamadı.")
return

# Kitapları listeleyerek seçim yapma kolaylasir.
print("Mevcut Kitaplar:")
for book in books:
print(f"Barkod: {book['Barkod']}, Başlık: {book['Kitap_Adi']}")

book_barkod = input("Ödünç vermek için kitap barkodunu girin: ")

# Seçilen kitabın barkodunu doğrula
selected_book = None
for book in books:
if str(book['Barkod']) == book_barkod:
selected_book = book
break

if not selected_book:
print("Kitap bulunamadı.")
return

# Kitap ödünç alma işlemi
current_date = datetime.now()
return_date = current_date + timedelta(weeks=2) # 2 hafta sonra teslim tarihi
new_entry = {
"member_id": member_id,
"member_name": members[member_id]["adi"],
"book_barkod": book_barkod,
"book_name": selected_book["Kitap_Adi"],
"lend_date": current_date.strftime('%Y-%m-%d'),
"return_date": return_date.strftime('%Y-%m-%d')
}

# Mevcut tracking.json dosyasını yükle
try:
with open(kontrol_file, "r") as file:
tracking_data = json.load(file)
# Eğer dosya bir sözlükse, listeye dönüştür
if isinstance(tracking_data, dict):
tracking_data = [tracking_data]
except FileNotFoundError:
tracking_data = [] # Eğer dosya yoksa boş bir liste başlat
except json.JSONDecodeError:
print("Tracking dosyası okunamadı. Yeni dosya oluşturulacak.")
tracking_data = []

# Yeni girdiyi ekle
tracking_data.append(new_entry)

# Dosyayı güncelle
with open(kontrol_file, "w") as file:
json.dump(tracking_data, file, indent=4)


print(f"Kitap {members[member_id]['adi']} adlı üyeye ödünç verildi.")
print(f"Kitap, şu tarihe kadar geri verilmelidir: {return_date.strftime('%Y-%m-%d')}")


'''

def return_bookgiving():

'''


# Ödünç verilen kitapları listeleme
def tracking_bookgiving():
try:
# Tracking.json dosyasını oku
with open(kontrol_file, "r") as file:
tracking_data = json.load(file)

# Eğer dosya boşsa bilgi ver
if not tracking_data:
print("Henüz ödünç verilmiş bir kitap bulunmuyor.")
return

# Üye bilgilerini members dosyasından al
members = load_members()

# Ödünç verilen kitapları listele
print("Ödünç Verilen Kitaplar:")
for entry in tracking_data:
member_name = members.get(entry['member_id'], {}).get("adi", "Bilinmiyor") # Üye adını members dosyasından al
print(
f"Üye Adı: {member_name}, "
f"Kitap Adı: {entry['book_name']}, "
f"Barkod: {entry['book_barkod']}, "
f"Verilme Tarihi: {entry['lend_date']}, "
f"Teslim Tarihi: {entry['return_date']}"
)

except FileNotFoundError:
print("Tracking dosyası bulunamadı.")
except json.JSONDecodeError:
print("Tracking dosyası okunamadı.")

Empty file added BookTransactions.py
Empty file.
72 changes: 72 additions & 0 deletions MemberTransactions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import json

FILE_NAME = "user.json"

def load_members():
try:
with open(FILE_NAME, "r") as file:
return json.load(file)
except FileNotFoundError:
return {}
except json.JSONDecodeError:
return {}


def save_members(members):
with open(FILE_NAME, "w") as file:
json.dump(members, file, indent=4)

# Üye ekleme
def add_member():
members = load_members()
member_id = input("Üye ID'sini girin: ")
if member_id in members:
print("Bu ID ile zaten bir üye var.")
return
name = input("Üye adini girin: ")
phone = input("Üye telefonunu girin: ")
address = input("Üye adresini girin: ")

members[member_id] = {
"adi": name,
"telefon": phone,
"adres": address
}
save_members(members) # Dosyaya kaydet
print(f"{name} kişisi basariyla eklendi. Toplam üye sayisi: {len(members)}")

def list_members():
members = load_members()
if not members:
print("Henüz kayıtlı üye yok.")
else:
print(f"\nToplam Üye Sayisi: {len(members)}")
print("\nÜye Listesi:")
for member_id, member in members.items():
print(f"ID: {member_id}, Adi: {member['adi']}, Telefon: {member['telefon']}, Adres: {member['adres']}")

def search_member():
members = load_members()
search_term = input("Aramak istediğiniz üye ID'sini girin: ")
found = False

for member_id, member in members.items():
if search_term == member_id:
print("\nBulunan Üye:")
print(f"ID: {member_id}, Adi: {member['adi']}, Telefon: {member['telefon']}, Adres: {member['adres']}")
found = True
break

if not found:
print("Aranan üye bulunamadı.")


def delete_member():
members = load_members()
member_id = input("Silmek istediğiniz üye ID'sini girin: ")
if member_id in members:
deleted_member = members.pop(member_id)
save_members(members)
print(f"{deleted_member['adi']} kişisi başariyla silindi. Toplam üye sayisi: {len(members)}")
else:
print("Bu ID ile kayitli bir üye bulunamadi.")
Binary file added __pycache__/BookGivingTransactions.cpython-313.pyc
Binary file not shown.
Binary file added __pycache__/BookTransactions.cpython-313.pyc
Binary file not shown.
Binary file added __pycache__/MemberTransactions.cpython-313.pyc
Binary file not shown.
83 changes: 83 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import BookTransactions
import MemberTransactions
import BookGivingTransactions
import json

def main_menu():
try: #try except CALISINIZ
while True:
print("-" * 50)
print(" " * 10 + "HALK KUTUPHANEMIZE HOS GELDINIZ" + " " * 10)
print("-" * 50)
print("-" * 5 + "1-UYELIK ISLEMLERI" + " " * 10 + "1" + " " * 5)
print("-" * 5 + "2-KITAP ISLEMLERI" + " " * 11 + "2" + " " * 5 )
print("-" * 5 + "3-CIKIS" + " " * 21 + "0" + " " * 5 )
print("-" * 50)
secim = input("Lutfen yapmak istediginiz secimin kodunu girin: ")
if secim == '1':
member_menu()
elif secim == '2':
book_menu()
elif secim == '0':
print("Cikis yapiliyor...")
break
else:
print("Gecersiz secim, lutfen tekrar deneyin.")
except Exception as e:
print(f"Hata olustu: {e}")

def member_menu():
while True:
print("-" * 50)
print(" " * 5 + "UYELER" + " " * 10 + "= 1 " + " " * 10 + "KITAP ODUNC VERME" + " " * 10 + "= 5 ")
print(" " * 5 + "UYE EKLEME" + " " * 6 + "= 2 " + " " * 10 + "KITAP IADE" + " " * 17 + "= 6 ")
print(" " * 5 + "UYE ARA" + " " * 9 + "= 3 " + " " * 10 + "KITAP TAKIBI" + " " * 15 + "= 7 ")
print(" " * 5 + "UYE SIL" + " " * 9 + "= 4 " + " " * 10 + "CIKIS" + " " * 22 + "= 0 ")
print("-" * 50)
secim = input("Islem seciniz: ")

if secim == '0':
break
elif secim == '1':
MemberTransactions.list_members()
elif secim == '2':
MemberTransactions.add_member()
elif secim == '3':
MemberTransactions.search_member()
elif secim == '4':
MemberTransactions.delete_member()
elif secim == '5':
BookGivingTransactions.add_bookgiving()
elif secim == '6':
BookGivingTransactions.return_bookgiving()
elif secim == '7':
BookGivingTransactions.tracking_bookgiving()
else:
print(f"{secim} islemi secildi. (Bu kisimda islemler yapilabilir.)")

def book_menu():
while True:
print("-" * 50)
print(" " * 5 + "KITAPLAR" + " " * 12 + "= 1 ")
print(" " * 5 + "KITAP EKLEME" + " " * 8 + "= 2 ")
print(" " * 5 + "KITAP ARA" + " " * 11 + "= 3 ")
print(" " * 5 + "KITAP SIL" + " " * 11 + "= 4 ")
print(" " * 5 + "CIKIS" + " " * 15 + "= 0 ")
print("-" * 50)
secim = input("Islem seciniz: ")

if secim == '0':
break
elif secim == '1':
BookTransactions.list_books()
elif secim == '2':
BookTransactions.add_book()
elif secim == '3':
BookTransactions.search_book()
elif secim == '4':
BookTransactions.delete_book()
else:
print(f"{secim} islemi secildi. (Bu kisimda islemler yapilabilir.)")

if __name__ == "__main__":
main_menu()
34 changes: 34 additions & 0 deletions tracking.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[
{
"member_id": "12",
"member_name": "EMINE DOGAN",
"book_barkod": "9786051981833",
"book_name": "Gece Yar\u00c4\u00b1s\u00c4\u00b1 K\u00c3\u00bct\u00c3\u00bcphanesi",
"lend_date": "2025-01-09",
"return_date": "2025-01-23"
},
{
"member_id": "27",
"member_name": "Naim Ucar",
"book_barkod": "9789750850417",
"book_name": "Kay\u00c4\u00b1p Tanr\u00c4\u00b1lar \u00c3\u0153lkesi",
"lend_date": "2025-01-09",
"return_date": "2025-01-23"
},
{
"member_id": "3",
"member_name": "Ayse Demir",
"book_barkod": "9786053607038",
"book_name": "\u00c4\u00b0nsan Neyle Ya\u00c5\u0178ar? - Hasan Ali Y\u00c3\u00bccel Klasikleri",
"lend_date": "2025-01-09",
"return_date": "2025-01-23"
},
{
"member_id": "44",
"member_name": "Deniz Nehir",
"book_barkod": "34655768",
"book_name": "okumak",
"lend_date": "2025-01-10",
"return_date": "2025-01-24"
}
]
32 changes: 32 additions & 0 deletions user.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"1": {
"adi": "EMINE DOGAN",
"telefon": "555-554-5555",
"adres": "Bir mah, bir sok, Malatya , 44000"
},
"27": {
"adi": "Naim Ucar",
"telefon": "545-345-6786",
"adres": "Baska bir sokak, Baska bir mahalle,AMSTERDAM,35000"
},
"22": {
"adi": "Burak Gunes",
"telefon": "555-234-5678",
"adres": "Gunes sok, Gunes mah. ,ANKARA,0600"
},
"3": {
"adi": "Ayse Demir",
"telefon": "555-345-6789",
"adres": "Bir mah, Bir sok, IZMIR,35000"
},
"34": {
"adi": "Ahmet Dogan",
"telefon": "555-456-7557",
"adres": "Elandstraat mah, Sokak sok, Amsterdam 32000"
},
"44": {
"adi": "Deniz Nehir",
"telefon": "555-554-5656",
"adres": "Deniz mah.,Nehir Sok, MALATYA,44000"
}
}