From 61ffbd6a1b9c4fb1072785f721040e50c64a9110 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Tue, 6 May 2025 09:12:06 +0200 Subject: [PATCH 01/57] =?UTF-8?q?Proje=20altyap=C4=B1s=C4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + Project.md | 445 ++ book_transactions.py | 23 + data/books.json | 26 + data/members.json | 14 + data/tracking.json | 15 + kitap.json | 9032 ---------------------------------------- main.py | 18 + member_transactions.py | 49 + time_utils.py | 19 + 10 files changed, 611 insertions(+), 9032 deletions(-) create mode 100644 .gitignore create mode 100644 Project.md create mode 100644 book_transactions.py create mode 100644 data/books.json create mode 100644 data/members.json create mode 100644 data/tracking.json delete mode 100644 kitap.json create mode 100644 main.py create mode 100644 member_transactions.py create mode 100644 time_utils.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..06ca53a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +data/book.json +data/kitap _backup.json diff --git a/Project.md b/Project.md new file mode 100644 index 0000000..edaa76d --- /dev/null +++ b/Project.md @@ -0,0 +1,445 @@ +**Veri Dosyaları:** + +* **`book.json`**: Kitapları (ID, başlık, yazar, yayın yılı, durum vb.) liste halinde saklar. +* **`member.json`**: Üyeleri (ID, isim, vb.) liste halinde saklar. +* **`tracking.json`**: Hangi üyenin hangi kitabı ne zaman aldığını ve ne zaman iade etmesi gerektiğini takip eden kayıtları liste halinde saklar. + +--- + +## Görev Dağılımı + +### Kürşad (Takım Lideri) + +* **Sorumlu Olduğu Modüller:** `main.py`, `time_utils.py` +* **Genel Görevler:** Projenin genel akışını yönetmek, modüller arası entegrasyonu sağlamak, kullanıcı arayüzünü oluşturmak, zaman hesaplamalarını yapmak. + +* **`main.py` Görevleri:** + * Kullanıcıya ana menüyü sunmak (Kitap Ekle/Sil/Ara, Üye Ekle/Sil/Ara, Kitap Ödünç Ver/Al vb.). + * Kullanıcıdan girdi almak ve ilgili modüldeki fonksiyonları çağırmak. + * Gerekli modülleri (`book_transactions`, `member_transactions`, `time_utils`) import etmek. + * Uygulama başlangıcında gerekli JSON dosyalarının varlığını kontrol etmek (os modülü ile), yoksa boş listelerle oluşturmak. + * Fonksiyon çağrılarından dönen sonuçları kullanıcıya göstermek. + * Hata yönetimini (örn. geçersiz kullanıcı girdisi) temel düzeyde yönetmek. + +* **`time_utils.py` Görevleri:** + * **Gerekli İmportlar:** `datetime` + * **Fonksiyonlar:** + * `get_current_timestamp()`: + * **Açıklama:** Mevcut anın tarih ve saat bilgisini döndürür. + * **Parametreler:** Yok. + * **Döndürdüğü Değer:** `datetime` objesi veya formatlanmış string (örn. 'YYYY-MM-DDTHH:MM:SS'). + * ```python + import datetime + + def get_current_timestamp(): + """Returns the current date and time.""" + # Örnek: return datetime.datetime.now() + pass + ``` + * `calculate_due_date(start_date, weeks=2)`: + * **Açıklama:** Verilen başlangıç tarihinden itibaren belirli bir hafta sonrası tarihi hesaplar. + * **Parametreler:** `start_date` (datetime objesi veya uyumlu string), `weeks` (int, varsayılan 2). + * **Döndürdüğü Değer:** `datetime` objesi veya formatlanmış string (örn. 'YYYY-MM-DDTHH:MM:SS'). + * ```python + import datetime + + def calculate_due_date(start_date, weeks=2): + """Calculates the date two weeks after the start_date.""" + # Örnek: return start_date + datetime.timedelta(weeks=weeks) + pass + ``` + +--- + +### Furkan + +* **Sorumlu Olduğu Modül:** `book_transactions.py` (Kısmen) +* **Genel Görevler:** Kitap ekleme, silme, arama ve JSON dosyasını okuma/yazma işlemlerinin temelini oluşturmak. Mehmet Lütfi ile koordineli çalışacak. + +* **`book_transactions.py` Görevleri:** + * **Gerekli İmportlar:** `json`, `os` + * **Fonksiyonlar:** + * `_load_books(filepath='book.json')`: + * **Açıklama:** Kitap verilerini JSON dosyasından yükler. Dosya yoksa veya boşsa boş liste döndürür. (Bu fonksiyon modül içinde private olabilir `_` ile) + * **Parametreler:** `filepath` (string, dosya yolu). + * **Döndürdüğü Değer:** Kitap listesi (`list`). + * ```python + import json + import os + + def _load_books(filepath='book.json'): + """Loads books from the JSON file.""" + if not os.path.exists(filepath): + return [] + try: + with open(filepath, 'r', encoding='utf-8') as f: + data = json.load(f) + return data + except (json.JSONDecodeError, FileNotFoundError): + return [] # Return empty list on error or empty file + pass # Placeholder - Implement file reading + ``` + * `_save_books(books, filepath='book.json')`: + * **Açıklama:** Güncel kitap listesini JSON dosyasına kaydeder. (Bu fonksiyon modül içinde private olabilir `_` ile) + * **Parametreler:** `books` (list, kaydedilecek kitap listesi), `filepath` (string, dosya yolu). + * **Döndürdüğü Değer:** Yok (`None`). + * ```python + import json + + def _save_books(books, filepath='book.json'): + """Saves the books list to the JSON file.""" + try: + with open(filepath, 'w', encoding='utf-8') as f: + json.dump(books, f, indent=4, ensure_ascii=False) + except IOError: + print(f"Error: Could not write to file {filepath}") + pass # Placeholder - Implement file writing + ``` + * `add_book(title, author, publication_year, book_id)`: + * **Açıklama:** Yeni bir kitabı listeye ekler ve dosyayı günceller. ID'nin benzersizliğini kontrol edebilir. + * **Parametreler:** `title` (str), `author` (str), `publication_year` (int), `book_id` (str, örn. ISBN). + * **Döndürdüğü Değer:** Başarılı ise `True`, kitap zaten varsa veya hata oluşursa `False`. + * ```python + def add_book(title, author, publication_year, book_id): + """Adds a new book to the library.""" + # books = _load_books() + # Check if book_id already exists + # If not, create new book dict {'book_id': ..., 'status': 'available', ...} + # append to books list + # _save_books(books) + pass + ``` + * `delete_book(book_id)`: + * **Açıklama:** Verilen ID'ye sahip kitabı listeden siler ve dosyayı günceller. Kitabın ödünçte olup olmadığını kontrol etmek gerekebilir (Ali'nin fonksiyonlarıyla entegrasyon). + * **Parametreler:** `book_id` (str). + * **Döndürdüğü Değer:** Başarılı ise `True`, kitap bulunamazsa veya silinemezse `False`. + * ```python + def delete_book(book_id): + """Deletes a book from the library by its ID.""" + # books = _load_books() + # Find book by book_id + # Ensure book is 'available' before deleting (or handle borrowed case) + # Remove from list + # _save_books(books) + pass + ``` + * `search_book(query, search_by='title')`: + * **Açıklama:** Başlık, yazar veya ID'ye göre kitap arar. + * **Parametreler:** `query` (str, aranan değer), `search_by` (str, 'title', 'author', veya 'book_id'). + * **Döndürdüğü Değer:** Eşleşen kitapların listesi (`list`). Eşleşme yoksa boş liste. + * ```python + def search_book(query, search_by='title'): + """Searches for books by title, author, or ID.""" + # books = _load_books() + # Filter books based on query and search_by field + # Return list of matching books + pass + ``` + +--- + +### Mehmet Lütfi + +* **Sorumlu Olduğu Modül:** `book_transactions.py` (Kısmen) +* **Genel Görevler:** Kitap güncelleme, listeleme ve varlık kontrolü fonksiyonlarını yazmak. Furkan ile koordineli çalışacak. + +* **`book_transactions.py` Görevleri:** + * **Gerekli İmportlar:** `json`, `os` (Furkan'ın yazdığı `_load_books` ve `_save_books` fonksiyonlarını kullanacak) + * **Fonksiyonlar:** + * `update_book(book_id, new_data)`: + * **Açıklama:** Verilen ID'ye sahip kitabın bilgilerini günceller. + * **Parametreler:** `book_id` (str), `new_data` (dict, güncellenecek alanları içerir, örn. `{'title': 'Yeni Başlık', 'status': 'borrowed'}`). + * **Döndürdüğü Değer:** Başarılı ise `True`, kitap bulunamazsa `False`. + * ```python + # Requires _load_books and _save_books from Furkan + def update_book(book_id, new_data): + """Updates information for a specific book.""" + # books = _load_books() + # Find the book by book_id + # Update the book's dictionary with new_data + # _save_books(books) + pass + ``` + * `list_all_books()`: + * **Açıklama:** Kütüphanedeki tüm kitapları listeler. + * **Parametreler:** Yok. + * **Döndürdüğü Değer:** Tüm kitapların listesi (`list`). + * ```python + # Requires _load_books from Furkan + def list_all_books(): + """Returns a list of all books in the library.""" + # return _load_books() + pass + ``` + * `check_book_availability(book_id)`: + * **Açıklama:** Verilen ID'ye sahip kitabın ödünç alınıp alınamayacağını kontrol eder ('available' durumunda mı?). + * **Parametreler:** `book_id` (str). + * **Döndürdüğü Değer:** Kitap mevcut ve 'available' ise `True`, değilse `False`. + * ```python + # Requires _load_books from Furkan + def check_book_availability(book_id): + """Checks if a book exists and is available for borrowing.""" + # books = _load_books() + # Find book by book_id + # Return True if book exists and book['status'] == 'available', else False + pass + ``` + * `get_book_details(book_id)`: + * **Açıklama:** Verilen ID'ye sahip kitabın tüm detaylarını getirir. + * **Parametreler:** `book_id` (str). + * **Döndürdüğü Değer:** Kitap bulunduysa kitap sözlüğü (`dict`), bulunamadıysa `None`. + * ```python + # Requires _load_books from Furkan + def get_book_details(book_id): + """Gets the details of a specific book by its ID.""" + # books = _load_books() + # Find book by book_id + # Return the book dictionary if found, else return None + pass + ``` + + +--- + +### Mustafa + +* **Sorumlu Olduğu Modül:** `member_transactions.py` (Kısmen) +* **Genel Görevler:** Üye ekleme, silme, arama, güncelleme, listeleme ve üye JSON dosyasını okuma/yazma işlemlerini yapmak. Ali ile koordineli çalışacak. + +* **`member_transactions.py` Görevleri:** + * **Gerekli İmportlar:** `json`, `os`, `datetime` (veya Kürşad'ın `time_utils` modülü) + * **Fonksiyonlar:** + * `_load_members(filepath='member.json')`: + * **Açıklama:** Üye verilerini JSON dosyasından yükler. Dosya yoksa veya boşsa boş liste döndürür. (Private olabilir) + * **Parametreler:** `filepath` (string). + * **Döndürdüğü Değer:** Üye listesi (`list`). + * ```python + import json + import os + + def _load_members(filepath='member.json'): + """Loads members from the JSON file.""" + if not os.path.exists(filepath): + return [] + try: + with open(filepath, 'r', encoding='utf-8') as f: + data = json.load(f) + return data + except (json.JSONDecodeError, FileNotFoundError): + return [] + pass # Implement + ``` + * `_save_members(members, filepath='member.json')`: + * **Açıklama:** Güncel üye listesini JSON dosyasına kaydeder. (Private olabilir) + * **Parametreler:** `members` (list), `filepath` (string). + * **Döndürdüğü Değer:** Yok (`None`). + * ```python + import json + + def _save_members(members, filepath='member.json'): + """Saves the members list to the JSON file.""" + try: + with open(filepath, 'w', encoding='utf-8') as f: + json.dump(members, f, indent=4, ensure_ascii=False) + except IOError: + print(f"Error: Could not write to file {filepath}") + pass # Implement + ``` + * `add_member(name, member_id)`: + * **Açıklama:** Yeni üye ekler. ID'nin benzersizliğini kontrol etmeli. Katılım tarihini otomatik eklemeli. + * **Parametreler:** `name` (str), `member_id` (str, örn. 'M003'). + * **Döndürdüğü Değer:** Başarılı ise `True`, üye zaten varsa veya hata oluşursa `False`. + * ```python + # May need: import datetime or from time_utils import get_current_timestamp + def add_member(name, member_id): + """Adds a new member.""" + # members = _load_members() + # Check if member_id exists + # Get current date for join_date + # Create member dict {'member_id': ..., 'name': ..., 'join_date': ..., 'borrowed_books_count': 0} + # append to members list + # _save_members(members) + pass + ``` + * `delete_member(member_id)`: + * **Açıklama:** Verilen ID'ye sahip üyeyi siler. Üyenin ödünç kitabı olup olmadığını kontrol etmek gerekebilir (Ali'nin fonksiyonlarıyla entegrasyon). + * **Parametreler:** `member_id` (str). + * **Döndürdüğü Değer:** Başarılı ise `True`, üye bulunamazsa veya kitabı varsa `False`. + * ```python + def delete_member(member_id): + """Deletes a member by ID.""" + # members = _load_members() + # Check if member has borrowed books (needs integration with tracking data) + # Find member by member_id + # Remove from list + # _save_members(members) + pass + ``` + * `search_member(query, search_by='name')`: + * **Açıklama:** İsim veya ID'ye göre üye arar. + * **Parametreler:** `query` (str), `search_by` (str, 'name' veya 'member_id'). + * **Döndürdüğü Değer:** Eşleşen üyelerin listesi (`list`). + * ```python + def search_member(query, search_by='name'): + """Searches for members by name or ID.""" + # members = _load_members() + # Filter members based on query and search_by + # Return list of matching members + pass + ``` + * `update_member(member_id, new_data)`: + * **Açıklama:** Verilen ID'ye sahip üyenin bilgilerini günceller (örn. isim değişikliği). `borrowed_books_count` alanı Ali tarafından güncellenecek. + * **Parametreler:** `member_id` (str), `new_data` (dict, örn. `{'name': 'Yeni İsim'}`). + * **Döndürdüğü Değer:** Başarılı ise `True`, üye bulunamazsa `False`. + * ```python + def update_member(member_id, new_data): + """Updates member information (e.g., name).""" + # members = _load_members() + # Find member by member_id + # Update member's dictionary (excluding borrowed_books_count maybe) + # _save_members(members) + pass + ``` + * `list_all_members()`: + * **Açıklama:** Tüm üyeleri listeler. + * **Parametreler:** Yok. + * **Döndürdüğü Değer:** Tüm üyelerin listesi (`list`). + * ```python + def list_all_members(): + """Returns a list of all members.""" + # return _load_members() + pass + ``` + * `check_member_exists(member_id)`: + * **Açıklama:** Verilen ID'ye sahip bir üyenin olup olmadığını kontrol eder. + * **Parametreler:** `member_id` (str). + * **Döndürdüğü Değer:** Üye varsa `True`, yoksa `False`. + * ```python + def check_member_exists(member_id): + """Checks if a member exists by ID.""" + # members = _load_members() + # Check if any member in the list has the given member_id + pass + ``` + +--- + +### Ali + +* **Sorumlu Olduğu Modül:** `member_transactions.py` (Kısmen) +* **Genel Görevler:** Kitap ödünç verme ve iade alma mekanizmalarını kurmak, `tracking.json` dosyasını yönetmek. Mustafa, Kürşad, Furkan ve Mehmet Lütfi ile koordineli çalışacak. + +* **`member_transactions.py` Görevleri:** + * **Gerekli İmportlar:** `json`, `os`, `uuid` (tracking_id için), `datetime` (veya `time_utils` modülü), `book_transactions` modülünden ilgili fonksiyonlar (örn. `update_book`, `check_book_availability`, `get_book_details`). + * **Fonksiyonlar:** + * `_load_tracking_data(filepath='tracking.json')`: + * **Açıklama:** Ödünç alma takip verilerini JSON dosyasından yükler. (Private olabilir) + * **Parametreler:** `filepath` (string). + * **Döndürdüğü Değer:** Takip kayıtları listesi (`list`). + * ```python + import json + import os + + def _load_tracking_data(filepath='tracking.json'): + """Loads borrowing tracking data from the JSON file.""" + if not os.path.exists(filepath): + return [] + try: + with open(filepath, 'r', encoding='utf-8') as f: + data = json.load(f) + return data + except (json.JSONDecodeError, FileNotFoundError): + return [] + pass # Implement + ``` + * `_save_tracking_data(tracking_data, filepath='tracking.json')`: + * **Açıklama:** Güncel takip verilerini JSON dosyasına kaydeder. (Private olabilir) + * **Parametreler:** `tracking_data` (list), `filepath` (string). + * **Döndürdüğü Değer:** Yok (`None`). + * ```python + import json + + def _save_tracking_data(tracking_data, filepath='tracking.json'): + """Saves the tracking data list to the JSON file.""" + try: + with open(filepath, 'w', encoding='utf-8') as f: + json.dump(tracking_data, f, indent=4, ensure_ascii=False) + except IOError: + print(f"Error: Could not write to file {filepath}") + pass # Implement + ``` + * `lend_book_to_member(member_id, book_id)`: + * **Açıklama:** Bir üyeye kitap ödünç verir. Üye ve kitabın varlığını/uygunluğunu kontrol eder. `tracking.json`'a kayıt ekler. `book.json`'daki kitabın durumunu günceller (veya kitabı siler - proje tanımına göre). Üyenin ödünç aldığı kitap sayısını artırır (`member.json`). + * **Gerekenler:** `check_member_exists` (Mustafa), `check_book_availability` (Mehmet Lütfi), `update_book` (Mehmet Lütfi), `get_current_timestamp` (Kürşad), `calculate_due_date` (Kürşad), `update_member` (Mustafa - dolaylı olarak count güncellemesi için veya ayrı fonksiyon). + * **Parametreler:** `member_id` (str), `book_id` (str). + * **Döndürdüğü Değer:** Başarılı ise `True`, hata durumunda (üye yok, kitap yok/ödünçte) `False`. + * ```python + import uuid + # import book_transactions + # import time_utils (veya import datetime) + # from member_transactions import check_member_exists, update_member (veya _load/_save) + + def lend_book_to_member(member_id, book_id): + """Lends a book to a member and updates records.""" + # 1. Check if member exists (use check_member_exists) + # 2. Check if book exists and is available (use check_book_availability) + # 3. If both checks pass: + # a. Get current time (use get_current_timestamp) + # b. Calculate due date (use calculate_due_date) + # c. Create a unique tracking_id (e.g., using uuid.uuid4()) + # d. Create tracking record dict + # e. Load tracking data, append record, save tracking data + # f. Update book status to 'borrowed' in book.json (use update_book) OR remove book from book.json (per project spec) + # g. Update member's borrowed_books_count in member.json (load members, find member, update count, save members) + # h. Return True + # 4. If checks fail, return False + pass + ``` + * `return_book_from_member(tracking_id)`: + * **Açıklama:** Üyenin iade ettiği kitabı sisteme geri alır. `tracking.json`'dan ilgili kaydı siler (veya durumunu 'returned' yapar). `book.json`'a kitabı geri ekler veya durumunu 'available' yapar. Üyenin ödünç aldığı kitap sayısını azaltır. + * **Gerekenler:** `add_book` (Furkan) veya `update_book` (Mehmet Lütfi), `update_member` (Mustafa - dolaylı olarak count güncellemesi için). + * **Parametreler:** `tracking_id` (str) - Ödünç verme sırasında oluşturulan benzersiz ID. Alternatif olarak `member_id` ve `book_id` de kullanılabilir ancak `tracking_id` daha nettir. + * **Döndürdüğü Değer:** Başarılı ise `True`, kayıt bulunamazsa `False`. + * ```python + # import book_transactions + # from member_transactions import update_member (veya _load/_save) + + def return_book_from_member(tracking_id): + """Processes a returned book.""" + # 1. Load tracking data + # 2. Find the tracking record by tracking_id + # 3. If found: + # a. Get member_id and book_id from the record + # b. Remove the record from tracking data, save tracking data + # c. Update book status to 'available' in book.json (use update_book) OR add book back to book.json if it was deleted (use add_book - might need book details) + # d. Update member's borrowed_books_count in member.json (load members, find member, decrease count, save members) + # e. Return True + # 4. If record not found, return False + pass + ``` + * `list_borrowed_books(member_id=None)`: + * **Açıklama:** Belirli bir üyenin veya tüm üyelerin ödünç aldığı kitapları (ve iade tarihlerini) listeler. + * **Parametreler:** `member_id` (str, opsiyonel). Belirtilmezse tüm ödünçteki kitaplar listelenir. + * **Döndürdüğü Değer:** İlgili takip kayıtlarının listesi (`list`). + * ```python + def list_borrowed_books(member_id=None): + """Lists all borrowed books, optionally filtered by member.""" + # tracking_data = _load_tracking_data() + # if member_id: + # Filter tracking_data for the given member_id + # Return the filtered (or full) list + pass + ``` + +--- + +**Genel Notlar ve Talimatlar:** + +1. **JSON Kullanımı:** Tüm veriler (`books.json`, `members.json`, `tracking.json`) JSON formatında saklanacaktır. Veri okuma (`json.load`) ve yazma (`json.dump`) işlemleri için Python'ın `json` modülünü kullanın. Yazarken `indent=4` ve `ensure_ascii=False` parametrelerini kullanmak okunabilirliği artırır. +2. **Dosya Kontrolü:** `os` modülünü kullanarak (`os.path.exists`), bir JSON dosyasını okumadan önce var olup olmadığını kontrol edin. Dosya yoksa veya boşsa, hata almak yerine boş bir liste (`[]`) ile başlayın. +3. **Hata Yönetimi:** `try...except` bloklarını kullanarak olası hataları (örn. `FileNotFoundError`, `json.JSONDecodeError`, `IOError`) yakalayın ve kullanıcıya anlamlı mesajlar verin veya programın çökmesini engelleyin. +4. **İngilizce Fonksiyon İsimleri:** Fonksiyon isimleri, parametreler ve değişkenler için anlaşılır İngilizce terimler kullanın (istendiği gibi). +5. **Fonksiyon İmplementasyonu:** Herkes kendi fonksiyonlarının içini doldururken, sadece `pass` yerine fonksiyonun ne yapması gerektiğini açıklayan yorumlar ve temel mantık adımlarını ekleyebilir. Tam kodu yazmak bir sonraki aşamadır. +6. **İşbirliği:** Özellikle `member_transactions.py` üzerinde çalışan Ali ve Mustafa'nın, ayrıca `book_transactions.py` üzerinde çalışan Furkan ve Mehmet Lütfi'nin sık sık iletişimde olması ve fonksiyonların birbirleriyle nasıl etkileşeceğini planlaması önemlidir. Örneğin, Ali'nin `lend_book_to_member` fonksiyonu, Mehmet Lütfi'nin `update_book` fonksiyonunu çağıracaktır. +7. **Benzersiz ID'ler:** Kitaplar (`book_id`, örn. ISBN) ve Üyeler (`member_id`) için benzersiz ID'ler kullanın. Yeni eklemelerde bu ID'lerin zaten var olup olmadığını kontrol edin. `tracking.json` için `uuid` modülü ile (`uuid.uuid4()`) otomatik benzersiz ID üretebilirsiniz. +8. **Kod Standardı:** Mümkün olduğunca PEP 8 Python kodlama standartlarına uymaya çalışın (girintileme, isimlendirme vb.). \ No newline at end of file diff --git a/book_transactions.py b/book_transactions.py new file mode 100644 index 0000000..620afbc --- /dev/null +++ b/book_transactions.py @@ -0,0 +1,23 @@ +def add_book(barcode, title, publisher, author, language, price): + """Add a new book to the library""" + pass + +def delete_book(barcode): + """Remove a book from the library""" + pass + +def search_book(search_term): + """Search books by various criteria""" + pass + +def get_all_books(): + """Retrieve list of all available books""" + pass + +def update_book(barcode, field, new_value): + """Update book information""" + pass + +def is_book_available(barcode): + """Check if a book is available for loan""" + pass \ No newline at end of file diff --git a/data/books.json b/data/books.json new file mode 100644 index 0000000..aca5fa5 --- /dev/null +++ b/data/books.json @@ -0,0 +1,26 @@ +[ + { + "barcode": 9786053114772, + "language": "Türkçe", + "price": 20.4, + "title": "Süt Lekesi", + "publisher": "Destek Yayınları", + "author": "Esra Ezmeci" + }, + { + "barcode": 9786057906465, + "language": "Türkçe", + "price": 20.4, + "title": "Yanlış Hayat Doğru Yaşanmaz", + "publisher": "Olimpos Yayınları", + "author": "Ethem Emin Nemutlu" + }, + { + "barcode": 9786051856322, + "language": "Türkçe", + "price": 27.3, + "title": "Hazan", + "publisher": "Everest Yayınları", + "author": "Ayşe Kulin" + } +] diff --git a/data/members.json b/data/members.json new file mode 100644 index 0000000..a1a4f26 --- /dev/null +++ b/data/members.json @@ -0,0 +1,14 @@ +[ + { + "id": 27, + "name": "Naim Ucan", + "phone": "545-345-6786", + "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000" + }, + { + "id": 28, + "name": "Naime Ucan", + "phone": "545-345-6786", + "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000" + } +] \ No newline at end of file diff --git a/data/tracking.json b/data/tracking.json new file mode 100644 index 0000000..aac5e7f --- /dev/null +++ b/data/tracking.json @@ -0,0 +1,15 @@ +[ + { + "loan_id": "L001", + "id": 27, + "member_name": "Naim Ucar", + "phone": "545-345-6786", + "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000", + "barcode": 9786057611000, + "book_title": "Kafamdaki Fillerin Hepsi Mavi", + "publisher": "Indigo Kitap", + "author": "Murat Güllen", + "registration_date": "2023-09-18-23:12:44", + "return_date": "2023-10-02" + } +] \ No newline at end of file diff --git a/kitap.json b/kitap.json deleted file mode 100644 index 36d1078..0000000 --- a/kitap.json +++ /dev/null @@ -1,9032 +0,0 @@ -[ - { - "Barkod": 9786053114772, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Süt Lekesi", - "Yayinevi": "Destek Yayınları", - "Yazar": "Esra Ezmeci" - }, - { - "Barkod": 9786057906465, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Yanlış Hayat Doğru Yaşanmaz", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Ethem Emin Nemutlu" - }, - { - "Barkod": 9786051856322, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Hazan", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9789750751363, - "Dil": "Türkçe", - "Fiyat": 24.15, - "Kitap_Adi": "Okçu'nun Yolu", - "Yayinevi": "Can Yayınları", - "Yazar": "Paulo Coelho" - }, - { - "Barkod": 9786258495423, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Zamir", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hakan Günday" - }, - { - "Barkod": 9786254053702, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Beyaz Zambaklar Ülkesinde - Atatürk'ün Tavsiye Ettiği Kitap", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Grigory Petrov" - }, - { - "Barkod": 9786052951569, - "Dil": "Icerik Yok", - "Fiyat": 4.55, - "Kitap_Adi": "Altıncı Koğuş", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Anton Pavloviç Çehov" - }, - { - "Barkod": 9786052182734, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Seyir", - "Yayinevi": "Mona", - "Yazar": "Piraye" - }, - { - "Barkod": 9786053606604, - "Dil": "Türkçe", - "Fiyat": 3.9, - "Kitap_Adi": "Bilinmeyen Bir Kadının Mektubu", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786254494383, - "Dil": "Türkçe", - "Fiyat": 20.3, - "Kitap_Adi": "Fink", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Murat Menteş" - }, - { - "Barkod": 9786258036107, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Kalk Yerine Yat", - "Yayinevi": "Doğan Kitap", - "Yazar": "Şermin Yaşar" - }, - { - "Barkod": 9786052980811, - "Dil": "Türkçe", - "Fiyat": 26.4, - "Kitap_Adi": "Körlük", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Jose Saramago" - }, - { - "Barkod": 9789754589023, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Suç ve Ceza - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789750718533, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "1984", - "Yayinevi": "Can Yayınları - Dünya Klasikleri Dizisi", - "Yazar": "George Orwell" - }, - { - "Barkod": 9789750719387, - "Dil": "Türkçe", - "Fiyat": 9.8, - "Kitap_Adi": "Hayvan Çiftliği", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786053759584, - "Dil": "Türkçe", - "Fiyat": 23.1, - "Kitap_Adi": "Ben Kirke", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Madeline Miller" - }, - { - "Barkod": 9786057003768, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Kırklar Meclisi Hünkar Bektaş", - "Yayinevi": "Siyah Kitap", - "Yazar": "Ayşe Acar" - }, - { - "Barkod": 9786058898134, - "Dil": "Türkçe", - "Fiyat": 19.6, - "Kitap_Adi": "Ve... Sonraki Hayattan Kırk Öykü", - "Yayinevi": "Domingo Yayınevi", - "Yazar": "David Eagleman" - }, - { - "Barkod": 9786053844334, - "Dil": "Türkçe", - "Fiyat": 18.0, - "Kitap_Adi": "Şah Mat", - "Yayinevi": "Sonsuz Kitap", - "Yazar": "Mario Mazzanti" - }, - { - "Barkod": 9789753421768, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Roman Gibi", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "Daniel Pennac" - }, - { - "Barkod": 9789754582864, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Kule", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "William Golding" - }, - { - "Barkod": 9786254486357, - "Dil": "Türkçe", - "Fiyat": 48.75, - "Kitap_Adi": "Hepimiz Gökyüzü Olmak İstedik - Lordlar ve Varisler Yeşil Şömiz", - "Yayinevi": "Martı Yayınları", - "Yazar": "N.G. Kabal" - }, - { - "Barkod": 9789750851636, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Can Kırığı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Akira Mizubayashi" - }, - { - "Barkod": 9786254054044, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Mahalle Kahvesi - Modern Türk Edebiyatı Klasikleri 10", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sait Faik Abasıyanık" - }, - { - "Barkod": 9786257113922, - "Dil": "Türkçe", - "Fiyat": 21.45, - "Kitap_Adi": "Kendimin Çocuğu Olsaydım...", - "Yayinevi": "Cinius", - "Yazar": "Behavioral Scientist" - }, - { - "Barkod": 9786055340926, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Bütün Şiirleri 2", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Şükrü Erbaş" - }, - { - "Barkod": 9789750747847, - "Dil": "Türkçe", - "Fiyat": 7.7, - "Kitap_Adi": "Tembellik Hakkı - Kısa Klasikler 30", - "Yayinevi": "Can Yayınları", - "Yazar": "Paul Lafargue" - }, - { - "Barkod": 9786257999281, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Kuyucaklı Yusuf-Türk Edebiyat Klasikleri 32", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9789750741265, - "Dil": "Türkçe", - "Fiyat": 4.9, - "Kitap_Adi": "Ses", - "Yayinevi": "Can Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786053119142, - "Dil": "Türkçe", - "Fiyat": 16.8, - "Kitap_Adi": "Kod Adı: Pegasus - Hitlerden Tarsusa Uzanan Sır", - "Yayinevi": "Destek Yayınları", - "Yazar": "Haluk Özdil" - }, - { - "Barkod": 9789750825927, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Benim Adım Kırmızı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Orhan Pamuk" - }, - { - "Barkod": 9786257070140, - "Dil": "Türkçe", - "Fiyat": 4.55, - "Kitap_Adi": "Benjamin Button'ın Tuhaf Hikayesi-Modern Klasikler 147", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Francis Scott Key Fitzgerald" - }, - { - "Barkod": 9786051852782, - "Dil": "Icerik Yok", - "Fiyat": 30.9, - "Kitap_Adi": "Aeden", - "Yayinevi": "Everest Yayınları", - "Yazar": "Akilah Azra Kohen" - }, - { - "Barkod": 9786257940696, - "Dil": "Türkçe", - "Fiyat": 14.9, - "Kitap_Adi": "Ah", - "Yayinevi": "Edebiyatist", - "Yazar": "Gonca Ataç" - }, - { - "Barkod": 9786052950364, - "Dil": "Icerik Yok", - "Fiyat": 5.2, - "Kitap_Adi": "Mutlu Prens", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Oscar Wilde" - }, - { - "Barkod": 9771307199001, - "Dil": "Türkçe", - "Fiyat": 6.0, - "Kitap_Adi": "Meraklı Minik - Aralık 2021", - "Yayinevi": "Tübitak Yayınları", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9786059144902, - "Dil": "Icerik Yok", - "Fiyat": 5.5, - "Kitap_Adi": "İnsan Neyle Yaşar?", - "Yayinevi": "İndigo Kitap - Edebiyat Dizisi", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9786051980560, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Zamanı Durdurmanın Yolları", - "Yayinevi": "Domingo Yayınevi", - "Yazar": "Matt Haig" - }, - { - "Barkod": 9789758950379, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "İki Dirhem Bir Çekirdek", - "Yayinevi": "Kapı Yayınları - Sözlük Dizisi", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9786050985344, - "Dil": "Türkçe", - "Fiyat": 32.9, - "Kitap_Adi": "Önce Sen Vardın", - "Yayinevi": "Doğan Kitap", - "Yazar": "Canan Tan" - }, - { - "Barkod": 9786254140396, - "Dil": "Türkçe", - "Fiyat": 24.4, - "Kitap_Adi": "Yeni Yıl Yeni Hayat", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Debbie Macomber" - }, - { - "Barkod": 9789750748677, - "Dil": "Türkçe", - "Fiyat": 19.25, - "Kitap_Adi": "Yabancı", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Albert Camus" - }, - { - "Barkod": 9789750849282, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Veba Geceleri", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Orhan Pamuk" - }, - { - "Barkod": 9789750807145, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "İnce Memed 1", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9789754370485, - "Dil": "Türkçe", - "Fiyat": 11.2, - "Kitap_Adi": "Dokuzuncu Hariciye Koğuşu", - "Yayinevi": "Ötüken Neşriyat - Edebiyat Dizisi", - "Yazar": "Peyami Safa" - }, - { - "Barkod": 9786257070119, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "İki Şehrin Hikayesi-Hasan Ali Yücel Klasikler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Charles Dickens" - }, - { - "Barkod": 9786052361801, - "Dil": "Icerik Yok", - "Fiyat": 30.0, - "Kitap_Adi": "Karantina", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786254494406, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Elveda Aşk", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Sinan Akyüz" - }, - { - "Barkod": 9789750531170, - "Dil": "Türkçe", - "Fiyat": 35.75, - "Kitap_Adi": "Gazap Üzümleri", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "John Steinbeck" - }, - { - "Barkod": 9789751041326, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Son Adanın Çocukları", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789751042132, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Lübeyna", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Arman Atilla" - }, - { - "Barkod": 9786257027205, - "Dil": "Türkçe", - "Fiyat": 13.25, - "Kitap_Adi": "Bayan Unguentinenin Seyir Defteri", - "Yayinevi": "Jaguar Kitap", - "Yazar": "Stanley Crawford" - }, - { - "Barkod": 9789750802959, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Harry Potter ve Sırlar Odası - 2.kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "J. K. Rowling" - }, - { - "Barkod": 9786052952528, - "Dil": "Icerik Yok", - "Fiyat": 9.1, - "Kitap_Adi": "Zaman Makinesi", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "H.G. Wells" - }, - { - "Barkod": 9789750806629, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Sırça Köşk", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9789755391465, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Nietzsche Ağladığında", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "Irvin D. Yalom" - }, - { - "Barkod": 9786052982617, - "Dil": "Türkçe", - "Fiyat": 23.4, - "Kitap_Adi": "Ölüm Bir Varmış Bir Yokmuş", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Jose Saramago" - }, - { - "Barkod": 9786051418261, - "Dil": "Icerik Yok", - "Fiyat": 10.45, - "Kitap_Adi": "Nefes Nefese-Midi Boy", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9786257671170, - "Dil": "Türkçe", - "Fiyat": 33.0, - "Kitap_Adi": "Sokak Nöbetçileri", - "Yayinevi": "İndigo Kitap", - "Yazar": "Aslı Arslan" - }, - { - "Barkod": 9786053324225, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Bir Kadının Yaşamından Yirmi Dört Saat", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789752891456, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Uçurtma Avcısı", - "Yayinevi": "Everest Yayınları", - "Yazar": "Khaled Hosseini" - }, - { - "Barkod": 9786053329008, - "Dil": "Türkçe", - "Fiyat": 33.8, - "Kitap_Adi": "Savaş ve Barış - 2 Kitap Takım", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9786257671545, - "Dil": "Türkçe", - "Fiyat": 39.0, - "Kitap_Adi": "Kar Tanesi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786053046721, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Söylenmemiş Sözler", - "Yayinevi": "Artemis Yayınları", - "Yazar": "İclal Aydın" - }, - { - "Barkod": 9786254411908, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Stefan Zweig - Bilmek Değil Sadece Hayal Etmek İnsanı Mutlu Kılar", - "Yayinevi": "Destek Yayınları", - "Yazar": "Kerem Kına" - }, - { - "Barkod": 9789944880985, - "Dil": "Türkçe", - "Fiyat": 23.4, - "Kitap_Adi": "Karamazov Kardeşler - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789752126046, - "Dil": "Türkçe", - "Fiyat": 45.0, - "Kitap_Adi": "Enstitü", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Stephen King" - }, - { - "Barkod": 9786051736938, - "Dil": "Türkçe", - "Fiyat": 32.2, - "Kitap_Adi": "Bülbülü Öldürmek", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Harper Lee" - }, - { - "Barkod": 9786053320104, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Notre Dame'ın Kamburu - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Victor Hugo" - }, - { - "Barkod": 9789752894846, - "Dil": "Icerik Yok", - "Fiyat": 34.3, - "Kitap_Adi": "Bin Muhteşem Güneş", - "Yayinevi": "Everest Yayınları - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Khaled Hosseini" - }, - { - "Barkod": 9786059367509, - "Dil": "Türkçe", - "Fiyat": 35.1, - "Kitap_Adi": "Pia Mater", - "Yayinevi": "Elma Yayınevi", - "Yazar": "Serkan Karaismailoğlu" - }, - { - "Barkod": 9789750848940, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Empedoklesin Dostları", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Amin Maalouf" - }, - { - "Barkod": 9789752201699, - "Dil": "Türkçe", - "Fiyat": 40.6, - "Kitap_Adi": "Çanlar Kimin İçin Çalıyor", - "Yayinevi": "Bilgi Yayınevi - 100 Temel Eser Dizisi", - "Yazar": "Ernest Hemingway" - }, - { - "Barkod": 9786051924489, - "Dil": "Türkçe", - "Fiyat": 24.6, - "Kitap_Adi": "Musa - Kevser'in Kaderi", - "Yayinevi": "Hep Kitap", - "Yazar": "Burcu Karataş Metin" - }, - { - "Barkod": 9789750738913, - "Dil": "Icerik Yok", - "Fiyat": 20.65, - "Kitap_Adi": "Uğultulu Tepeler", - "Yayinevi": "Can Yayınları", - "Yazar": "Emily Bronte" - }, - { - "Barkod": 9786257266666, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Lizbon'a Gece Treni", - "Yayinevi": "Sia", - "Yazar": "Pascal Mercier" - }, - { - "Barkod": 9786254054372, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Son Kuşlar - Sait Faik Abasıyanık", - "Yayinevi": "İş Bankası Kültür Yayınları - Türk Edebiyatı", - "Yazar": "Sait Faik Abasıyanık" - }, - { - "Barkod": 9786050939828, - "Dil": "Icerik Yok", - "Fiyat": 18.2, - "Kitap_Adi": "Huzursuzluk", - "Yayinevi": "Doğan Kitap - Roman Dizisi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786254494161, - "Dil": "Türkçe", - "Fiyat": 20.3, - "Kitap_Adi": "Kıyamet Park - Bir Kamu Davası 3", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Alper Canıgüz" - }, - { - "Barkod": 9786254494390, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Şimdi Değilse Ne Zaman?", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Bahar Eriş" - }, - { - "Barkod": 9786052953440, - "Dil": "Icerik Yok", - "Fiyat": 4.55, - "Kitap_Adi": "Geçmişe Yolculuk", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786052955857, - "Dil": "Icerik Yok", - "Fiyat": 4.55, - "Kitap_Adi": "Lyon'da Düğün", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789754704723, - "Dil": "Türkçe", - "Fiyat": 23.4, - "Kitap_Adi": "Puslu Kıtalar Atlası", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Türkçe Edebiyat Dizisi", - "Yazar": "İhsan Oktay Anar" - }, - { - "Barkod": 9789750737497, - "Dil": "Türkçe", - "Fiyat": 5.95, - "Kitap_Adi": "Bir Kalbin Çöküşü", - "Yayinevi": "Can Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786254414008, - "Dil": "Türkçe", - "Fiyat": 34.8, - "Kitap_Adi": "Avuçlarımda Hala Sıcaklığın Var", - "Yayinevi": "Destek Yayınları", - "Yazar": "Osman Balcıgil" - }, - { - "Barkod": 9789750807459, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Üç Anadolu Efsanesi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9789751042521, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Kardeşimin Hikayesi", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786254411885, - "Dil": "Türkçe", - "Fiyat": 17.0, - "Kitap_Adi": "Gitmeli miyim Kalmalı mıyım", - "Yayinevi": "Destek Yayınları", - "Yazar": "Hakan Mengüç" - }, - { - "Barkod": 9789753636360, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Çavdar Tarlasında Çocuklar", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Jerome David Salinger" - }, - { - "Barkod": 9789750802942, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Harry Potter ve Felsefe Taşı - 1.Kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "J. K. Rowling" - }, - { - "Barkod": 9786053321392, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Beyaz Geceler - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789750739606, - "Dil": "Türkçe", - "Fiyat": 13.3, - "Kitap_Adi": "İnsancıklar", - "Yayinevi": "Can Yayınları - Dünya Klasikleri Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786258498059, - "Dil": "Türkçe", - "Fiyat": 21.0, - "Kitap_Adi": "Aile İçinde", - "Yayinevi": "Profil Kitap", - "Yazar": "Hayati İnanç, Bekir Develi" - }, - { - "Barkod": 9789754700114, - "Dil": "Türkçe", - "Fiyat": 50.7, - "Kitap_Adi": "Tutunamayanlar - Bütün Eserleri - 1", - "Yayinevi": "İletişim Yayıncılık - Oğuz Atay Bütün Eserleri Dizisi", - "Yazar": "Oğuz Atay" - }, - { - "Barkod": 9789751416575, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Kral Kaybederse", - "Yayinevi": "Remzi Kitabevi - Türk Yazarları Dizisi", - "Yazar": "Gülseren Budayıcıoğlu" - }, - { - "Barkod": 9786053117384, - "Dil": "Türkçe", - "Fiyat": 19.2, - "Kitap_Adi": "Hiçbir Karşılaşma Tesadüf Değildir", - "Yayinevi": "Destek Yayınları", - "Yazar": "Hakan Mengüç" - }, - { - "Barkod": 9786057436788, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "İnşirah", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Hakan Özkan, Mustafa Özkan" - }, - { - "Barkod": 9786052318997, - "Dil": "Türkçe", - "Fiyat": 28.5, - "Kitap_Adi": "Efsun", - "Yayinevi": "Dipnot", - "Yazar": "Selahattin Demirtaş" - }, - { - "Barkod": 9789750721571, - "Dil": "Türkçe", - "Fiyat": 19.25, - "Kitap_Adi": "Kırmızı Pazartesi", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Gabriel Garcia Marquez" - }, - { - "Barkod": 9786254486623, - "Dil": "Türkçe", - "Fiyat": 48.75, - "Kitap_Adi": "İmzalı - Kimse Gerçek Değil - Kutulu", - "Yayinevi": "Martı Yayınları", - "Yazar": "Zeynep Sey" - }, - { - "Barkod": 9786052950524, - "Dil": "Icerik Yok", - "Fiyat": 5.2, - "Kitap_Adi": "Alice Harikalar Diyarında", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Lewis Carroll" - }, - { - "Barkod": 9786052989135, - "Dil": "Türkçe", - "Fiyat": 21.0, - "Kitap_Adi": "Yukarlarda En Uzaklarda", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "İnci Aral" - }, - { - "Barkod": 9789754701586, - "Dil": "Türkçe", - "Fiyat": 22.1, - "Kitap_Adi": "Korkuyu Beklerken - Bütün Eserleri 4", - "Yayinevi": "İletişim Yayıncılık - Oğuz Atay Bütün Eserleri Dizisi", - "Yazar": "Oğuz Atay" - }, - { - "Barkod": 9786257382465, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Her Kalp Kırılır", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Colleen Hoover" - }, - { - "Barkod": 9789751412874, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Günahın Üç Rengi", - "Yayinevi": "Remzi Kitabevi - Edebiyat Kitaplığı Dizisi", - "Yazar": "Gülseren Budayıcıoğlu" - }, - { - "Barkod": 9789754587197, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Oblomov - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "İvan Aleksandroviç Gonçarov" - }, - { - "Barkod": 9789750722486, - "Dil": "Türkçe", - "Fiyat": 40.95, - "Kitap_Adi": "Zorba", - "Yayinevi": "Can Yayınları - Dünya Klasikleri Dizisi", - "Yazar": "Nikos Kazancakis" - }, - { - "Barkod": 9786051855349, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Hayal", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9786257550727, - "Dil": "Türkçe", - "Fiyat": 27.0, - "Kitap_Adi": "Rakipler", - "Yayinevi": "Yabancı", - "Yazar": "Vi Keeland" - }, - { - "Barkod": 9786052955840, - "Dil": "Icerik Yok", - "Fiyat": 5.2, - "Kitap_Adi": "Rahel Tanrı'yla Hesaplaşıyor", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786053045076, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Kalbimin Can Mayası", - "Yayinevi": "Artemis Yayınları", - "Yazar": "İclal Aydın" - }, - { - "Barkod": 9786053321170, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "İvan İlyiç'in Ölümü - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9789750809774, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Doğu'nun Limanları", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Amin Maalouf" - }, - { - "Barkod": 9786050900682, - "Dil": "Türkçe", - "Fiyat": 32.9, - "Kitap_Adi": "Az", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hakan Günday" - }, - { - "Barkod": 9789752126169, - "Dil": "Türkçe", - "Fiyat": 23.4, - "Kitap_Adi": "On Kişiydiler (On Küçük Zenci)", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Agatha Christie" - }, - { - "Barkod": 9789944883146, - "Dil": "Türkçe", - "Fiyat": 12.35, - "Kitap_Adi": "Ezilenler - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786258475395, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Yaban Kazı", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Ogai Mori" - }, - { - "Barkod": 9789944885454, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Babalar ve Oğullar - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Ivan Sergeyeviç Turgenyev" - }, - { - "Barkod": 9786053321057, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Odysseia - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Homeros" - }, - { - "Barkod": 9789750807411, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Ağrıdağı Efsanesi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9789750738869, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "İki Şehrin Hikayesi", - "Yayinevi": "Can Yayınları", - "Yazar": "Charles Dickens" - }, - { - "Barkod": 9771301746003, - "Dil": "Türkçe", - "Fiyat": 6.0, - "Kitap_Adi": "Bilim Çocuk - Ekim 2021", - "Yayinevi": "Tübitak Yayınları", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789754371543, - "Dil": "Türkçe", - "Fiyat": 9.05, - "Kitap_Adi": "Toprak Ana", - "Yayinevi": "Ötüken Neşriyat - Cengiz Aytmatov Dizisi", - "Yazar": "Cengiz Aytmatov" - }, - { - "Barkod": 9789750831331, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Lavinia - Aşk Şiirleri", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Özdemir Asaf" - }, - { - "Barkod": 9789754344073, - "Dil": "Türkçe", - "Fiyat": 16.8, - "Kitap_Adi": "Açlık", - "Yayinevi": "Varlık Yayınları - Anlatı Dizisi", - "Yazar": "Knut Hamsun" - }, - { - "Barkod": 9789750845987, - "Dil": "Türkçe", - "Fiyat": 29.9, - "Kitap_Adi": "İstanbul Hatırası", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786053116646, - "Dil": "Türkçe", - "Fiyat": 13.8, - "Kitap_Adi": "Konuşmayan Tavus Kuşu Camio", - "Yayinevi": "Destek Yayınları", - "Yazar": "Berrak Yurdakul" - }, - { - "Barkod": 9786254081613, - "Dil": "Türkçe", - "Fiyat": 27.9, - "Kitap_Adi": "Ruh Adam", - "Yayinevi": "Ötüken Neşriyat - Tarihi Romanlar Dizisi", - "Yazar": "Hüseyin Nihal Atsız" - }, - { - "Barkod": 9789753638326, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Bir Dinozorun Anıları", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Mina Urgan" - }, - { - "Barkod": 9789753428750, - "Dil": "Icerik Yok", - "Fiyat": 14.0, - "Kitap_Adi": "Ah'lar Ağacı", - "Yayinevi": "Metis Yayıncılık - Edebiyat-Şiir Dizisi", - "Yazar": "Didem Madak" - }, - { - "Barkod": 9789750735943, - "Dil": "Türkçe", - "Fiyat": 36.4, - "Kitap_Adi": "Ay Sarayı", - "Yayinevi": "Can Yayınları", - "Yazar": "Paul Auster" - }, - { - "Barkod": 9789750755392, - "Dil": "Türkçe", - "Fiyat": 17.15, - "Kitap_Adi": "Seviş Yolcu", - "Yayinevi": "Can Yayınları", - "Yazar": "Cemal Süreya" - }, - { - "Barkod": 9789758434572, - "Dil": "Türkçe", - "Fiyat": 63.75, - "Kitap_Adi": "Sofie'nin Dünyası", - "Yayinevi": "Pan Yayıncılık", - "Yazar": "Jostein Gaarder" - }, - { - "Barkod": 9786051853420, - "Dil": "Icerik Yok", - "Fiyat": 9.4, - "Kitap_Adi": "Ve Dağlar Yankılandı-Midi Boy", - "Yayinevi": "Everest Yayınları - Dünya Edebiyatı Dizisi", - "Yazar": "Khaled Hosseini" - }, - { - "Barkod": 9786055903886, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Miras", - "Yayinevi": "Siren Yayınları", - "Yazar": "Vigdis Hjorth" - }, - { - "Barkod": 2789788623424, - "Dil": "Türkçe", - "Fiyat": 22.8, - "Kitap_Adi": "İmzalı - İçindeki Dağı Aş", - "Yayinevi": "Destek Yayınları", - "Yazar": "Sadettin Saran" - }, - { - "Barkod": 9789753901505, - "Dil": "Türkçe", - "Fiyat": 39.0, - "Kitap_Adi": "Kelebek", - "Yayinevi": "E Yayınları - Yabancı Romanlar Dizisi", - "Yazar": "Henri Charriere" - }, - { - "Barkod": 9786057611352, - "Dil": "Türkçe", - "Fiyat": 30.0, - "Kitap_Adi": "Karantina Dördüncü Perde-Mahşerin Dört Atlısının Hikayesi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9789752123748, - "Dil": "Icerik Yok", - "Fiyat": 59.4, - "Kitap_Adi": "İlahi Komedya Seti-3 Kitap Takım Özel Kutulu", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Dante Alighieri" - }, - { - "Barkod": 9786258492002, - "Dil": "Türkçe", - "Fiyat": 40.6, - "Kitap_Adi": "Ardında Bıraktığın Kadın", - "Yayinevi": "DEX", - "Yazar": "Jojo Moyes" - }, - { - "Barkod": 9786053754794, - "Dil": "Türkçe", - "Fiyat": 42.9, - "Kitap_Adi": "Dune", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Frank Herbert" - }, - { - "Barkod": 9786052986745, - "Dil": "Türkçe", - "Fiyat": 6.6, - "Kitap_Adi": "Kendine Ait Bir Oda - Kırmızı Kedi Klasikler", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Virginia Woolf" - }, - { - "Barkod": 9789751041050, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Adımı Deniz Koydular", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Demet Cengiz" - }, - { - "Barkod": 9786254491030, - "Dil": "Türkçe", - "Fiyat": 20.3, - "Kitap_Adi": "Oğullar ve Rencide Ruhlar", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Alper Canıgüz" - }, - { - "Barkod": 9786254051548, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Cahil Filozof", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Voltaire" - }, - { - "Barkod": 9789751042729, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Düşüş", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Seda Ünsar" - }, - { - "Barkod": 9789750745782, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Sevda Sözleri - Bütün Şiirleri", - "Yayinevi": "Can Yayınları", - "Yazar": "Cemal Süreya" - }, - { - "Barkod": 9789750812989, - "Dil": "Türkçe", - "Fiyat": 33.8, - "Kitap_Adi": "Harry Potter ve Ölüm Yadigarları - 7. Kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "J. K. Rowling" - }, - { - "Barkod": 9786257671507, - "Dil": "Türkçe", - "Fiyat": 33.0, - "Kitap_Adi": "Yıldızların Laneti", - "Yayinevi": "İndigo Kitap", - "Yazar": "Sena Nur Işık" - }, - { - "Barkod": 9786051737683, - "Dil": "Türkçe", - "Fiyat": 28.95, - "Kitap_Adi": "Tespih Ağacının Gölgesinde", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Harper Lee" - }, - { - "Barkod": 9786051853383, - "Dil": "Icerik Yok", - "Fiyat": 10.45, - "Kitap_Adi": "Bin Muhteşem Güneş-Midi Boy", - "Yayinevi": "Everest Yayınları - Dünya Edebiyatı Dizisi", - "Yazar": "Khaled Hosseini" - }, - { - "Barkod": 9786057393418, - "Dil": "Türkçe", - "Fiyat": 30.4, - "Kitap_Adi": "Müjdat Gezen: Bir Kar Tanesinin Çığa Dönüşümü", - "Yayinevi": "Sözcü Kitabevi", - "Yazar": "Gökmen Ulu" - }, - { - "Barkod": 9789750748837, - "Dil": "Türkçe", - "Fiyat": 9.8, - "Kitap_Adi": "Bir İdam", - "Yayinevi": "Can Yayınları", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786052361726, - "Dil": "Icerik Yok", - "Fiyat": 33.0, - "Kitap_Adi": "3391 Kilometre", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9789750531668, - "Dil": "Türkçe", - "Fiyat": 35.1, - "Kitap_Adi": "Kumdan Yürek", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Abdulrazak Gurnah" - }, - { - "Barkod": 9786258475371, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Sarmaşık", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Chana Porter" - }, - { - "Barkod": 9789750737992, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Koku", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Patrick Süskind" - }, - { - "Barkod": 9786254414497, - "Dil": "Türkçe", - "Fiyat": 19.2, - "Kitap_Adi": "Şeytan Terapiste Gittiğinde", - "Yayinevi": "Destek Yayınları", - "Yazar": "Hicran Tülüce" - }, - { - "Barkod": 9789750803314, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Harry Potter ve Ateş Kadehi - 4.kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "J. K. Rowling" - }, - { - "Barkod": 9786052361832, - "Dil": "Icerik Yok", - "Fiyat": 30.0, - "Kitap_Adi": "3391 Kilometre", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786051715124, - "Dil": "Icerik Yok", - "Fiyat": 27.3, - "Kitap_Adi": "Otostopçunun Galaksi Rehberi", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Douglas Adams" - }, - { - "Barkod": 9789750743214, - "Dil": "Türkçe", - "Fiyat": 7.7, - "Kitap_Adi": "Yalnız Sıkıcı İnsanlar Kahvaltıda Parıldar", - "Yayinevi": "Can Yayınları", - "Yazar": "Oscar Wilde" - }, - { - "Barkod": 9786057717610, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "Kitapları Kurtaran Kedi", - "Yayinevi": "Turkuvaz Kitap", - "Yazar": "Sosuke Natsukawa" - }, - { - "Barkod": 9786057611123, - "Dil": "Icerik Yok", - "Fiyat": 14.4, - "Kitap_Adi": "Derin", - "Yayinevi": "İndigo Kitap", - "Yazar": "Meltem Reyhan" - }, - { - "Barkod": 9786254492419, - "Dil": "Türkçe", - "Fiyat": 39.9, - "Kitap_Adi": "Bir Köy Enstitüsü - Keşke", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Sema Soykan" - }, - { - "Barkod": 9789754586923, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Dörtlükler - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Ömer Hayyam" - }, - { - "Barkod": 9786051853109, - "Dil": "Icerik Yok", - "Fiyat": 15.4, - "Kitap_Adi": "Deniz Duası", - "Yayinevi": "Everest Yayınları", - "Yazar": "Khaled Hosseini" - }, - { - "Barkod": 9786057838407, - "Dil": "Türkçe", - "Fiyat": 22.4, - "Kitap_Adi": "Akşam Yıldızı-Bir Göbeklitepe Romanı", - "Yayinevi": "Kapı Yayınları", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9786052988763, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "İnsan Bir Eksik Sözdür", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Şükrü Erbaş" - }, - { - "Barkod": 9786052692134, - "Dil": "Türkçe", - "Fiyat": 14.5, - "Kitap_Adi": "Bir Diğer Mustafa", - "Yayinevi": "Yediveren Yayınları", - "Yazar": "Cahit Tosun" - }, - { - "Barkod": 9789750849503, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Klara İle Güneş", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Kazuo Ishiguro" - }, - { - "Barkod": 9786050981971, - "Dil": "Türkçe", - "Fiyat": 30.8, - "Kitap_Adi": "Küllerin Günü", - "Yayinevi": "Doğan Kitap", - "Yazar": "Jean-Christophe Grange" - }, - { - "Barkod": 9786052691311, - "Dil": "Türkçe", - "Fiyat": 23.35, - "Kitap_Adi": "Paranormal Hikayeler", - "Yayinevi": "Yediveren Yayınları", - "Yazar": "Işıl Işık" - }, - { - "Barkod": 9789750726170, - "Dil": "Türkçe", - "Fiyat": 39.9, - "Kitap_Adi": "Varolmanın Dayanılmaz Hafifliği", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Milan Kundera" - }, - { - "Barkod": 9789750730146, - "Dil": "Türkçe", - "Fiyat": 49.0, - "Kitap_Adi": "Kolera Günlerinde Aşk", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Gabriel Garcia Marquez" - }, - { - "Barkod": 9786257382717, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Yaralasar 4", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Maral Atmaca" - }, - { - "Barkod": 9789750845956, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Sis ve Gece", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9789753425285, - "Dil": "Icerik Yok", - "Fiyat": 39.9, - "Kitap_Adi": "Mülksüzler", - "Yayinevi": "Metis Yayıncılık - Edebiyat / Roman Dizisi", - "Yazar": "Ursula K. Le Guin" - }, - { - "Barkod": 9786053604419, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Budala - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786052956267, - "Dil": "Icerik Yok", - "Fiyat": 12.35, - "Kitap_Adi": "Dorian Gray'in Portresi", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Oscar Wilde" - }, - { - "Barkod": 9789751042705, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Düş Uykusu", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Oya Denizyaran" - }, - { - "Barkod": 9786053600138, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Beyaz Diş", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Jack London" - }, - { - "Barkod": 9786052955697, - "Dil": "Icerik Yok", - "Fiyat": 39.0, - "Kitap_Adi": "Monte Cristo Kontu-Hasan Ali Yücel Klasikler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Alexandre Dumas" - }, - { - "Barkod": 9789752200296, - "Dil": "Icerik Yok", - "Fiyat": 41.3, - "Kitap_Adi": "Frida", - "Yayinevi": "Bilgi Yayınevi - Yayınevi Genel Dizisi", - "Yazar": "Hayden Herrera" - }, - { - "Barkod": 9786051856797, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "Ülker Abla", - "Yayinevi": "Everest Yayınları", - "Yazar": "Seray Şahiner" - }, - { - "Barkod": 9786056587887, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Yaşamak", - "Yayinevi": "Jaguar Kitap", - "Yazar": "Yu Hua" - }, - { - "Barkod": 9789750748196, - "Dil": "Türkçe", - "Fiyat": 49.0, - "Kitap_Adi": "Yeşil Peri Gecesi", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Ayfer Tunç" - }, - { - "Barkod": 9789754370577, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Yalnızız", - "Yayinevi": "Ötüken Neşriyat - Edebiyat Dizisi", - "Yazar": "Peyami Safa" - }, - { - "Barkod": 9789755705866, - "Dil": "Türkçe", - "Fiyat": 11.2, - "Kitap_Adi": "İnci", - "Yayinevi": "Sel Yayıncılık - Dünya Edebiyatı - Roman Dizisi", - "Yazar": "John Steinbeck" - }, - { - "Barkod": 9786051736518, - "Dil": "Türkçe", - "Fiyat": 25.7, - "Kitap_Adi": "Yere Yakın Yıldızlara Uzak", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Emine Tavuz" - }, - { - "Barkod": 9786053328582, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Vadideki Zambak", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Honore de Balzac" - }, - { - "Barkod": 9786054188970, - "Dil": "Türkçe", - "Fiyat": 33.75, - "Kitap_Adi": "Fedailerin Kalesi Alamut", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "Vladimir Bartol" - }, - { - "Barkod": 9786257781282, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Tepenin Laneti", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "John Verdon" - }, - { - "Barkod": 9786055147945, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Bülbülün Kırk Şarkısı", - "Yayinevi": "Kapı Yayınları", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9786051853635, - "Dil": "Türkçe", - "Fiyat": 30.9, - "Kitap_Adi": "Gör Beni-İki Devrin Hikayesi", - "Yayinevi": "Everest Yayınları", - "Yazar": "Akilah Azra Kohen" - }, - { - "Barkod": 9789750807176, - "Dil": "Türkçe", - "Fiyat": 26.0, - "Kitap_Adi": "İnce Memed 2", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786053329695, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Doktor OX'un Deneyi", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jules Verne" - }, - { - "Barkod": 9789751409935, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Madalyonun İçi", - "Yayinevi": "Remzi Kitabevi - Ev Aile Toplum Dizisi", - "Yazar": "Gülseren Budayıcıoğlu" - }, - { - "Barkod": 9789750747045, - "Dil": "Türkçe", - "Fiyat": 32.9, - "Kitap_Adi": "Kapak Kızı", - "Yayinevi": "Can Yayınları - Türk Edebiyatı Dizisi", - "Yazar": "Ayfer Tunç" - }, - { - "Barkod": 9789752201682, - "Dil": "Türkçe", - "Fiyat": 16.8, - "Kitap_Adi": "Yaşlı Adam ve Deniz", - "Yayinevi": "Bilgi Yayınevi - 100 Temel Eser Dizisi", - "Yazar": "Ernest Hemingway" - }, - { - "Barkod": 9786053604099, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Anna Karenina - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9789754370430, - "Dil": "Türkçe", - "Fiyat": 8.4, - "Kitap_Adi": "Beyaz Gemi", - "Yayinevi": "Ötüken Neşriyat - Cengiz Aytmatov Dizisi", - "Yazar": "Cengiz Aytmatov" - }, - { - "Barkod": 9786254050657, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Küçük Prens - Modern Klasikler 157", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Antoine de Saint-Exupery" - }, - { - "Barkod": 9789751040862, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Konstantiniyye Oteli", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786254052033, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "1984 - Modern Klasikler 163", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786257671217, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Kendine Hoş Geldin", - "Yayinevi": "İndigo Kitap", - "Yazar": "Miraç Çağrı Aktaş" - }, - { - "Barkod": 9786258475418, - "Dil": "Türkçe", - "Fiyat": 10.8, - "Kitap_Adi": "Şeytanın Çırağı", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Şiro Hamao" - }, - { - "Barkod": 9789750810039, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Semerkant", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Amin Maalouf" - }, - { - "Barkod": 9789750845857, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Kırlangıç Çığlığı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786054764716, - "Dil": "Türkçe", - "Fiyat": 18.0, - "Kitap_Adi": "Sırça Fanus", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Sylvia Plath" - }, - { - "Barkod": 9786052954829, - "Dil": "Icerik Yok", - "Fiyat": 3.9, - "Kitap_Adi": "Şair Evlenmesi-Türk Edebiyatı Klasikleri 5", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Şinasi" - }, - { - "Barkod": 9786258475401, - "Dil": "Türkçe", - "Fiyat": 14.4, - "Kitap_Adi": "Yeşil Bambu ve Diğer Fantastik Öyküler", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Osamu Dazai" - }, - { - "Barkod": 9789759917951, - "Dil": "Türkçe", - "Fiyat": 39.2, - "Kitap_Adi": "Kinyas ve Kayra", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hakan Günday" - }, - { - "Barkod": 9786052953433, - "Dil": "Icerik Yok", - "Fiyat": 4.55, - "Kitap_Adi": "Bir Kuzey Macerası", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jack London" - }, - { - "Barkod": 9789750730153, - "Dil": "Türkçe", - "Fiyat": 30.1, - "Kitap_Adi": "Veronika Ölmek İstiyor", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Paulo Coelho" - }, - { - "Barkod": 9789944888059, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Aforizmalar", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Franz Kafka" - }, - { - "Barkod": 9789944888035, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Bir Delinin Anı Defteri - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Nikolay Vasilyeviç Gogol" - }, - { - "Barkod": 9789750813870, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Göğe Bakma Durağı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Turgut Uyar" - }, - { - "Barkod": 9786053607946, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Demir Ökçe", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Jack London" - }, - { - "Barkod": 9786257940603, - "Dil": "Türkçe", - "Fiyat": 18.6, - "Kitap_Adi": "Kurt ile Kuzu", - "Yayinevi": "Edebiyatist", - "Yazar": "Emir Ali Kızıl" - }, - { - "Barkod": 9789753633383, - "Dil": "Türkçe", - "Fiyat": 45.5, - "Kitap_Adi": "Don Quijote (2 Cilt Takım)", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Miguel de Cervantes Saavedra" - }, - { - "Barkod": 2789735658981, - "Dil": "Türkçe", - "Fiyat": 45.0, - "Kitap_Adi": "Operatöre Bağlanıyorsunuz - Hediyeli Özel Kutu", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "K. Kübra Berk" - }, - { - "Barkod": 9786254053610, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Sahaf Mendel - Modern Klasikler 171", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789750813863, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Gelmiş Bulundum - Seçme Şiirler", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Edip Cansever" - }, - { - "Barkod": 9786053321910, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Çocukluğum", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Maksim Gorki" - }, - { - "Barkod": 9786257099950, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Ben Feride", - "Yayinevi": "Müptela Yayınları", - "Yazar": "Mehmet Emin Altan" - }, - { - "Barkod": 9786053328261, - "Dil": "Türkçe", - "Fiyat": 7.15, - "Kitap_Adi": "Önemsiz Bir Kadın", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Oscar Wilde" - }, - { - "Barkod": 9786059691116, - "Dil": "Icerik Yok", - "Fiyat": 12.5, - "Kitap_Adi": "Geleceği İnşa Eden Adam", - "Yayinevi": "Zeplin Kitap", - "Yazar": "Elon Musk" - }, - { - "Barkod": 9789750806995, - "Dil": "Türkçe", - "Fiyat": 32.5, - "Kitap_Adi": "İnce Memed 4", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786257479561, - "Dil": "Türkçe", - "Fiyat": 16.9, - "Kitap_Adi": "Kurtuluş", - "Yayinevi": "Hayykitap", - "Yazar": "Ömer Çelebi" - }, - { - "Barkod": 9789754050943, - "Dil": "Türkçe", - "Fiyat": 26.0, - "Kitap_Adi": "Doğu Ekspresi'nde Cinayet", - "Yayinevi": "Altın Kitaplar - Klasik Polis Romanları Dizisi", - "Yazar": "Agatha Christie" - }, - { - "Barkod": 9789750741074, - "Dil": "Türkçe", - "Fiyat": 7.7, - "Kitap_Adi": "Nasıl Ölünür-Kısa Klasik", - "Yayinevi": "Can Yayınları", - "Yazar": "Emile Zola" - }, - { - "Barkod": 9786054927531, - "Dil": "Türkçe", - "Fiyat": 18.0, - "Kitap_Adi": "İnsanın Acısını İnsan Alır", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Şükrü Erbaş" - }, - { - "Barkod": 9786050381108, - "Dil": "Türkçe", - "Fiyat": 30.9, - "Kitap_Adi": "Meyra-Bir Bosna Hikayesi", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Sinan Akyüz" - }, - { - "Barkod": 9789752201279, - "Dil": "Türkçe", - "Fiyat": 46.2, - "Kitap_Adi": "Şu Çılgın Türkler", - "Yayinevi": "Bilgi Yayınevi - Roman Dizisi", - "Yazar": "Turgut Özakman" - }, - { - "Barkod": 9789750806605, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Değirmen", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9789754701258, - "Dil": "Türkçe", - "Fiyat": 24.05, - "Kitap_Adi": "Tatar Çölü", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Dino Buzzati" - }, - { - "Barkod": 9789753639019, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Bütün Şiirleri - Sabahattin Ali", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786254412820, - "Dil": "Türkçe", - "Fiyat": 14.5, - "Kitap_Adi": "Elleri Titremeden Ateşi Tutabilene", - "Yayinevi": "Destek Yayınları", - "Yazar": "Berrak Yurdakul" - }, - { - "Barkod": 9789750719356, - "Dil": "Türkçe", - "Fiyat": 4.9, - "Kitap_Adi": "Dönüşüm", - "Yayinevi": "Can Yayınları - Dünya Klasikleri Dizisi", - "Yazar": "Franz Kafka" - }, - { - "Barkod": 9789755102108, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Bulantı", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Jean-Paul Sartre" - }, - { - "Barkod": 9786254486524, - "Dil": "Türkçe", - "Fiyat": 38.35, - "Kitap_Adi": "Orion - İmzalı", - "Yayinevi": "Martı Yayınları", - "Yazar": "Almina Taner" - }, - { - "Barkod": 9789750803116, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Harry Potter ve Azkaban Tutsağı - 3.kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "J. K. Rowling" - }, - { - "Barkod": 9786052955178, - "Dil": "Icerik Yok", - "Fiyat": 5.2, - "Kitap_Adi": "Küçük Şeyler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Samipaşazade Sezai" - }, - { - "Barkod": 9789750724787, - "Dil": "Türkçe", - "Fiyat": 15.4, - "Kitap_Adi": "Delifişek", - "Yayinevi": "Can Çocuk Yayınları - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Jose Mauro De Vasconcelos" - }, - { - "Barkod": 9786057944733, - "Dil": "Türkçe", - "Fiyat": 60.5, - "Kitap_Adi": "Edgar Allan Poe Bütün Hikayeleri Tek Cilt", - "Yayinevi": "Ren Kitap", - "Yazar": "Edgar Allan Poe" - }, - { - "Barkod": 9789944889209, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Öteki - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789754346800, - "Dil": "Türkçe", - "Fiyat": 26.55, - "Kitap_Adi": "Korku Çağında Çocuk Yetiştirmek", - "Yayinevi": "Varlık Yayınları", - "Yazar": "Şeniz Pamuk" - }, - { - "Barkod": 9789750845550, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Aşkımız Eski Bir Roman", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786054629862, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "Algernon'a Çiçekler", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "Daniel Keyes" - }, - { - "Barkod": 9786053321040, - "Dil": "Türkçe", - "Fiyat": 22.1, - "Kitap_Adi": "İlyada - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Homeros" - }, - { - "Barkod": 9789944829670, - "Dil": "Türkçe", - "Fiyat": 19.2, - "Kitap_Adi": "Martı Jonathan Livingston", - "Yayinevi": "Epsilon Yayınevi - Epsilon Edebiyat Dizisi", - "Yazar": "Richard Bach" - }, - { - "Barkod": 9786053325536, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Yakıcı Sır", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786254052040, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Hayvan Çiftliği - Modern Klasikler 164", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786051853369, - "Dil": "Icerik Yok", - "Fiyat": 10.45, - "Kitap_Adi": "Uçurtma Avcısı-Midi Boy", - "Yayinevi": "Everest Yayınları", - "Yazar": "Khaled Hosseini" - }, - { - "Barkod": 9786050905441, - "Dil": "Türkçe", - "Fiyat": 19.6, - "Kitap_Adi": "Bir Kedi Bir Adam Bir Ölüm", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786052361931, - "Dil": "Türkçe", - "Fiyat": 30.0, - "Kitap_Adi": "Karantina-Üçüncü Perde-Mahşerin Dört Atlısının Hikayesi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786257548335, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Kaideye Tamah Etmeyen İstisnadır Hayat", - "Yayinevi": "Turkuvaz Kitap", - "Yazar": "Nilgün Bodur" - }, - { - "Barkod": 9786050959628, - "Dil": "Türkçe", - "Fiyat": 32.9, - "Kitap_Adi": "Camdaki Kız", - "Yayinevi": "Doğan Kitap", - "Yazar": "Gülseren Budayıcıoğlu" - }, - { - "Barkod": 9786053324249, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Dava", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Franz Kafka" - }, - { - "Barkod": 9786051738116, - "Dil": "Türkçe", - "Fiyat": 22.45, - "Kitap_Adi": "Bir Kış Rüyası", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Debbie Macomber" - }, - { - "Barkod": 9789750745522, - "Dil": "Türkçe", - "Fiyat": 45.5, - "Kitap_Adi": "Osman", - "Yayinevi": "Can Yayınları", - "Yazar": "Ayfer Tunç" - }, - { - "Barkod": 9786053325956, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Muhteşem Gatsby", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "F. Scott Ftzgerald" - }, - { - "Barkod": 9786052691953, - "Dil": "Türkçe", - "Fiyat": 24.6, - "Kitap_Adi": "Tünelden Önceki Beyaz Ev", - "Yayinevi": "Yediveren Yayınları", - "Yazar": "Işıl Işık" - }, - { - "Barkod": 9786057728326, - "Dil": "Türkçe", - "Fiyat": 16.8, - "Kitap_Adi": "İnsanlığımı Yitirirken", - "Yayinevi": "Sel Yayıncılık", - "Yazar": "Osamu Dazai" - }, - { - "Barkod": 9786257671279, - "Dil": "Türkçe", - "Fiyat": 30.0, - "Kitap_Adi": "No.26", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786258036220, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Birinci Tekil Şahıs", - "Yayinevi": "Doğan Kitap", - "Yazar": "Haruki Murakami" - }, - { - "Barkod": 9786257077019, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Ölüler Konuşamaz", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Dilara Keskin" - }, - { - "Barkod": 9789750739545, - "Dil": "Icerik Yok", - "Fiyat": 36.4, - "Kitap_Adi": "Savaş ve Barış-2 Cilt Takım", - "Yayinevi": "Can Yayınları", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9786257442398, - "Dil": "Türkçe", - "Fiyat": 33.0, - "Kitap_Adi": "Kurtuluş Projesi", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Andy Weir" - }, - { - "Barkod": 9786052361825, - "Dil": "Icerik Yok", - "Fiyat": 30.0, - "Kitap_Adi": "Karantina İkinci Perde", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786057640093, - "Dil": "Icerik Yok", - "Fiyat": 13.0, - "Kitap_Adi": "Zamanın Sessiz Ruhu", - "Yayinevi": "Cinius", - "Yazar": "Adil Yıldırım" - }, - { - "Barkod": 9786254050664, - "Dil": "Türkçe", - "Fiyat": 4.55, - "Kitap_Adi": "Bir Zanaatla Beklenmedik Karşılaşma", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789754370232, - "Dil": "Türkçe", - "Fiyat": 13.15, - "Kitap_Adi": "Fatih-Harbiye", - "Yayinevi": "Ötüken Neşriyat - Edebiyat Dizisi", - "Yazar": "Peyami Safa" - }, - { - "Barkod": 9786057611918, - "Dil": "Türkçe", - "Fiyat": 30.0, - "Kitap_Adi": "Karantina - Beşinci Perde - Mahşerin Dört Atlısının Hikayesi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786053325543, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Dr. Jekyll ile Bay Hyde", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Robert Louis Stevenson" - }, - { - "Barkod": 9786050966534, - "Dil": "Türkçe", - "Fiyat": 26.6, - "Kitap_Adi": "Gelirken Ekmek Al", - "Yayinevi": "Doğan Kitap", - "Yazar": "Şermin Yaşar" - }, - { - "Barkod": 9789750531675, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Doğum Lekesi Gibi Bir Gülümseme", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Barış Bıçakçı" - }, - { - "Barkod": 9786053607243, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Seçme Hikayeler - Sait Faik Abasıyanık", - "Yayinevi": "İş Bankası Kültür Yayınları - Türk Edebiyatı", - "Yazar": "Sait Faik Abasıyanık" - }, - { - "Barkod": 9786053113867, - "Dil": "Türkçe", - "Fiyat": 14.4, - "Kitap_Adi": "Bazı Yollar Yalnız Yürünür", - "Yayinevi": "Destek Yayınları", - "Yazar": "Özgür Bacaksız" - }, - { - "Barkod": 9786258495003, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Geç Kalan", - "Yayinevi": "Doğan Kitap", - "Yazar": "Tarık Tufan" - }, - { - "Barkod": 9789750807046, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Yılanı Öldürseler", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9789751041098, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Son Ada", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786053114208, - "Dil": "Türkçe", - "Fiyat": 13.2, - "Kitap_Adi": "Geçecek mi?", - "Yayinevi": "Destek Yayınları", - "Yazar": "Gökhan Çınar" - }, - { - "Barkod": 9786051738871, - "Dil": "Türkçe", - "Fiyat": 41.95, - "Kitap_Adi": "Kelebeği Öldürmek - 1", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Beyza Aksoy" - }, - { - "Barkod": 9786051981482, - "Dil": "Türkçe", - "Fiyat": 32.2, - "Kitap_Adi": "Sessiz Hasta", - "Yayinevi": "Domingo Yayınevi", - "Yazar": "Alex Michaelides" - }, - { - "Barkod": 9789750805288, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Bütün Şiirleri - Orhan Veli", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Orhan Veli Kanık" - }, - { - "Barkod": 9786053322863, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Yıldız Gezgini", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Jack London" - }, - { - "Barkod": 9789944983990, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Beyaz Zambaklar Ülkesinde", - "Yayinevi": "Koridor Yayıncılık - Tarihi Roman Dizisi", - "Yazar": "Grigory Petrov" - }, - { - "Barkod": 9786052988855, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "Kemal Hadi Gel Bi Kahve İçelim", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Gül Sunal" - }, - { - "Barkod": 9786053606741, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Robinson Crusoe - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Daniel Defoe" - }, - { - "Barkod": 9786254410291, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Bir Narsisin Gölgesinde On İki Ay", - "Yayinevi": "Destek Yayınları", - "Yazar": "Fikret Yıldırım" - }, - { - "Barkod": 9786059144971, - "Dil": "Icerik Yok", - "Fiyat": 6.6, - "Kitap_Adi": "Kendine Ait Bir Oda", - "Yayinevi": "İndigo Kitap", - "Yazar": "Virginia Woolf" - }, - { - "Barkod": 9786051064390, - "Dil": "Türkçe", - "Fiyat": 30.8, - "Kitap_Adi": "İncir Kuşları", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Sinan Akyüz" - }, - { - "Barkod": 9789753421812, - "Dil": "Türkçe", - "Fiyat": 47.6, - "Kitap_Adi": "Yüzüklerin Efendisi - II - İki Kule", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "J. R. R. Tolkien" - }, - { - "Barkod": 9786053043249, - "Dil": "Icerik Yok", - "Fiyat": 29.4, - "Kitap_Adi": "Üç Kız Kardeş", - "Yayinevi": "Artemis Yayınları", - "Yazar": "İclal Aydın" - }, - { - "Barkod": 9786052957868, - "Dil": "Icerik Yok", - "Fiyat": 5.2, - "Kitap_Adi": "Ateş Yakmak", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jack London" - }, - { - "Barkod": 9789750724220, - "Dil": "Türkçe", - "Fiyat": 19.6, - "Kitap_Adi": "Suzan Defter", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Ayfer Tunç" - }, - { - "Barkod": 9789759953331, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Uzun Hikaye", - "Yayinevi": "Dergah Yayınları", - "Yazar": "Mustafa Kutlu" - }, - { - "Barkod": 9786257550628, - "Dil": "Türkçe", - "Fiyat": 16.8, - "Kitap_Adi": "Lekeli Taç", - "Yayinevi": "Yabancı", - "Yazar": "Erin Watt" - }, - { - "Barkod": 9789750755408, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Deli İbram Divanı", - "Yayinevi": "Can Yayınları", - "Yazar": "Ahmet Büke" - }, - { - "Barkod": 9786257382762, - "Dil": "Türkçe", - "Fiyat": 141.6, - "Kitap_Adi": "Yaralasar Serisi Seti - 4 Kitap Takım", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Maral Atmaca" - }, - { - "Barkod": 9789750846328, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Şeytan Ayrıntıda Gizlidir", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786052950746, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "Ecce Homo-Kişi Nasıl Olduğu Kimse Olur", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Friedrich Nietzsche" - }, - { - "Barkod": 9789750735639, - "Dil": "Icerik Yok", - "Fiyat": 16.8, - "Kitap_Adi": "Anayurt Oteli", - "Yayinevi": "Can Yayınları", - "Yazar": "Yusuf Atılgan" - }, - { - "Barkod": 9786257425049, - "Dil": "Türkçe", - "Fiyat": 12.6, - "Kitap_Adi": "Kalpten Gelen Armağan", - "Yayinevi": "Düşbaz", - "Yazar": "Clarissa Pinkola Estes" - }, - { - "Barkod": 9786053118756, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "En Hüzünlü Eylül", - "Yayinevi": "Destek Yayınları", - "Yazar": "Osman Balcıgil" - }, - { - "Barkod": 9786050940978, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Işığın Yolu", - "Yayinevi": "Doğan Kitap", - "Yazar": "Nilüfer Devecigil" - }, - { - "Barkod": 9789751042668, - "Dil": "Türkçe", - "Fiyat": 31.2, - "Kitap_Adi": "Serenad", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786057611642, - "Dil": "Türkçe", - "Fiyat": 33.0, - "Kitap_Adi": "Kar Küresi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786257077804, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Yaralasar", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Maral Atmaca" - }, - { - "Barkod": 9786057525826, - "Dil": "Türkçe", - "Fiyat": 21.0, - "Kitap_Adi": "Fabrika Ayarı", - "Yayinevi": "Profil Kitap", - "Yazar": "Hayati İnanç, Bekir Develi" - }, - { - "Barkod": 9789750846205, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Beyoğlu Rapsodisi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9789750723339, - "Dil": "Türkçe", - "Fiyat": 42.0, - "Kitap_Adi": "Mor Salkımlı Ev", - "Yayinevi": "Can Yayınları - Anı Dizisi", - "Yazar": "Halide Edib Adıvar" - }, - { - "Barkod": 9786257706063, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Kervan", - "Yayinevi": "Kapı Yayınları", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9786051715193, - "Dil": "Türkçe", - "Fiyat": 136.5, - "Kitap_Adi": "Otostopçunun Galaksi Rehberi-5 Kitap Bir Arada", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Douglas Adams" - }, - { - "Barkod": 9789750835605, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Kırmızı Saçlı Kadın", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Orhan Pamuk" - }, - { - "Barkod": 9789754588255, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Kamelyalı Kadın - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Alexandre Dumas" - }, - { - "Barkod": 9789754707069, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Cehenneme Övgü", - "Yayinevi": "İletişim Yayıncılık - Bugünün Kitapları Dizisi", - "Yazar": "Gündüz Vassaf" - }, - { - "Barkod": 9786059059923, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Hayati Dengeler", - "Yayinevi": "Babıali Kültür - BKY", - "Yazar": "Hayati İnanç" - }, - { - "Barkod": 9786257382724, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yaralasar 4", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Maral Atmaca" - }, - { - "Barkod": 9786050978490, - "Dil": "Türkçe", - "Fiyat": 26.6, - "Kitap_Adi": "Deli Tarla", - "Yayinevi": "Doğan Kitap", - "Yazar": "Şermin Yaşar" - }, - { - "Barkod": 9786053324942, - "Dil": "Türkçe", - "Fiyat": 9.75, - "Kitap_Adi": "Karmaşık Duygular", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789754588323, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Madame Bovary - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Gustave Flaubert" - }, - { - "Barkod": 9786057611147, - "Dil": "Icerik Yok", - "Fiyat": 30.0, - "Kitap_Adi": "Sıfır Kilometre", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786257836074, - "Dil": "Türkçe", - "Fiyat": 4.9, - "Kitap_Adi": "Cebimde Yoktu Yüreğimden Verdim", - "Yayinevi": "Gece Kitaplığı", - "Yazar": "Nazım Hikmet" - }, - { - "Barkod": 9786257077859, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yaralasar", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Maral Atmaca" - }, - { - "Barkod": 9789754370539, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Gün Olur Asra Bedel", - "Yayinevi": "Ötüken Neşriyat - Cengiz Aytmatov Dizisi", - "Yazar": "Cengiz Aytmatov" - }, - { - "Barkod": 9789753422024, - "Dil": "Türkçe", - "Fiyat": 47.6, - "Kitap_Adi": "Yüzüklerin Efendisi - III - Kralın Dönüşü", - "Yayinevi": "Metis Yayıncılık - Edebiyat Dizisi", - "Yazar": "J. R. R. Tolkien" - }, - { - "Barkod": 9786257026154, - "Dil": "Türkçe", - "Fiyat": 31.7, - "Kitap_Adi": "Arsen Lüpen Seti-3 Kitap Takım", - "Yayinevi": "Ren Kitap", - "Yazar": "Maurice Leblanc" - }, - { - "Barkod": 9789753426527, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Hasretinden Prangalar Eskittim", - "Yayinevi": "Metis Yayıncılık - Edebiyat-Şiir Dizisi", - "Yazar": "Ahmed Arif" - }, - { - "Barkod": 9786052954836, - "Dil": "Icerik Yok", - "Fiyat": 5.2, - "Kitap_Adi": "Vatan Yahut Silistre-Türk Edebiyatı Klasikleri 6", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Namık Kemal" - }, - { - "Barkod": 9789750806612, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Yeni Dünya", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786052953204, - "Dil": "Icerik Yok", - "Fiyat": 3.9, - "Kitap_Adi": "Zacharius Usta", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler Dizisi", - "Yazar": "Jules Verne" - }, - { - "Barkod": 9789753425988, - "Dil": "Türkçe", - "Fiyat": 57.4, - "Kitap_Adi": "Yüzüklerin Efendisi - I - Yüzük Kardeşliği", - "Yayinevi": "Metis Yayıncılık - Edebiyat Dizisi", - "Yazar": "J. R. R. Tolkien" - }, - { - "Barkod": 9789759955762, - "Dil": "Türkçe", - "Fiyat": 44.0, - "Kitap_Adi": "Saatleri Ayarlama Enstitüsü", - "Yayinevi": "Dergah Yayınları", - "Yazar": "Ahmet Hamdi Tanpınar" - }, - { - "Barkod": 9789754702095, - "Dil": "Türkçe", - "Fiyat": 36.4, - "Kitap_Adi": "Tehlikeli Oyunlar", - "Yayinevi": "İletişim Yayıncılık - Oğuz Atay Bütün Eserleri Dizisi", - "Yazar": "Oğuz Atay" - }, - { - "Barkod": 9786053323112, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Genç Bir Doktorun Anıları", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Mihayl Afanasyeviç Bulgakov" - }, - { - "Barkod": 9786059203043, - "Dil": "Türkçe", - "Fiyat": 14.4, - "Kitap_Adi": "İnsan Nedir?", - "Yayinevi": "Dedalus", - "Yazar": "Mark Twain" - }, - { - "Barkod": 9789750845970, - "Dil": "Türkçe", - "Fiyat": 23.4, - "Kitap_Adi": "Patasana", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786053323563, - "Dil": "Türkçe", - "Fiyat": 8.45, - "Kitap_Adi": "Gılgamış Destanı", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789750811876, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Beni Asla Bırakma", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Kazuo Ishiguro" - }, - { - "Barkod": 9786257027182, - "Dil": "Türkçe", - "Fiyat": 12.6, - "Kitap_Adi": "İnsanlığımı Kaybedişim", - "Yayinevi": "Olvido", - "Yazar": "Osamu Dazai" - }, - { - "Barkod": 9789751041548, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Engereğin Gözü", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786052954140, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Usta ile Margarita", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Mihail Bulgakov" - }, - { - "Barkod": 9789750526961, - "Dil": "Icerik Yok", - "Fiyat": 13.65, - "Kitap_Adi": "Nohut Oda", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Melisa Kesmez" - }, - { - "Barkod": 9789750748745, - "Dil": "Türkçe", - "Fiyat": 19.25, - "Kitap_Adi": "Düşüş", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Albert Camus" - }, - { - "Barkod": 9789753485531, - "Dil": "Türkçe", - "Fiyat": 18.0, - "Kitap_Adi": "Yabani Ot Toplayıcısı", - "Yayinevi": "Çınar Yayınları", - "Yazar": "Elif Türkölmez" - }, - { - "Barkod": 9786052169209, - "Dil": "Icerik Yok", - "Fiyat": 21.0, - "Kitap_Adi": "Dünyaya Geldim Gitmeye-Gönül Sadası'ndan Akisler", - "Yayinevi": "Turkuvaz Kitap", - "Yazar": "Kemal Sayar, Sadettin Ökten" - }, - { - "Barkod": 8018190019544, - "Dil": "Türkçe", - "Fiyat": 12.5, - "Kitap_Adi": "2022 Kart Fifa 365 Panini", - "Yayinevi": "Panini", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789750741173, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Normal İnsanlar", - "Yayinevi": "Can Yayınları", - "Yazar": "Sally Rooney" - }, - { - "Barkod": 9789756388020, - "Dil": "Türkçe", - "Fiyat": 24.96, - "Kitap_Adi": "Bir Çift Yürek", - "Yayinevi": "Klan Yayınları - Edebiyat Dizisi", - "Yazar": "Marlo Morgan" - }, - { - "Barkod": 9786050904192, - "Dil": "Türkçe", - "Fiyat": 25.9, - "Kitap_Adi": "Mutluluk", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789755706436, - "Dil": "Türkçe", - "Fiyat": 22.4, - "Kitap_Adi": "Tatlı Perşembe", - "Yayinevi": "Sel Yayıncılık - Roman Dizisi", - "Yazar": "John Steinbeck" - }, - { - "Barkod": 9786257359511, - "Dil": "Türkçe", - "Fiyat": 21.45, - "Kitap_Adi": "Tebeşir Tozu", - "Yayinevi": "Nemesis Kitap", - "Yazar": "Sezer Ortadağ" - }, - { - "Barkod": 9786053326557, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Mürebbiye", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786257498005, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Onlar", - "Yayinevi": "İkinci Adam Yayınları", - "Yazar": "Süleyman Hilmi Yıldırım" - }, - { - "Barkod": 9799756841357, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "Posta Kutusundaki Mızıka", - "Yayinevi": "Şule Yayınları - Deneme Dizisi", - "Yazar": "A. Ali Ural" - }, - { - "Barkod": 9789750845994, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Kavim", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786056501944, - "Dil": "Türkçe", - "Fiyat": 11.35, - "Kitap_Adi": "Kağıt Ev", - "Yayinevi": "Jaguar Kitap", - "Yazar": "Carlos Maria Dominguez" - }, - { - "Barkod": 9786050963090, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "On Dakika Otuz Sekiz Saniye", - "Yayinevi": "Doğan Kitap", - "Yazar": "Elif Şafak" - }, - { - "Barkod": 9786051981963, - "Dil": "Türkçe", - "Fiyat": 30.8, - "Kitap_Adi": "Bir Şey Olduğu Yok", - "Yayinevi": "Domingo Yayınevi", - "Yazar": "Kevin Wilson" - }, - { - "Barkod": 9786050929812, - "Dil": "Türkçe", - "Fiyat": 32.9, - "Kitap_Adi": "İmkansızın Şarkısı", - "Yayinevi": "Doğan Kitap", - "Yazar": "Haruki Murakami" - }, - { - "Barkod": 9789750738876, - "Dil": "Icerik Yok", - "Fiyat": 18.2, - "Kitap_Adi": "Jane Eyre", - "Yayinevi": "Can Yayınları", - "Yazar": "Charlotte Bronte" - }, - { - "Barkod": 9786058276642, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Bugün Kalan Hayatımın İlk Günü", - "Yayinevi": "Yan Pasaj", - "Yazar": "Maud Ankaoua" - }, - { - "Barkod": 9789750846298, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Beyoğlu'nun En Güzel Abisi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786257671286, - "Dil": "Türkçe", - "Fiyat": 33.0, - "Kitap_Adi": "No.26", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9789754700060, - "Dil": "Türkçe", - "Fiyat": 23.4, - "Kitap_Adi": "Yaban", - "Yayinevi": "İletişim Yayıncılık - M.E.B. Dizisi", - "Yazar": "Yakup Kadri Karaosmanoğlu" - }, - { - "Barkod": 9786052692141, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Karanlık Dosyalar: Çözülmüş Vakalar", - "Yayinevi": "Yediveren Yayınları", - "Yazar": "Sezgi Aksu" - }, - { - "Barkod": 9786058283503, - "Dil": "Icerik Yok", - "Fiyat": 16.67, - "Kitap_Adi": "Bir Dünya Kurmak-Hüsnü Özyeğinin Yaşam Öyküsü", - "Yayinevi": "Özyeğin Üniversitesi", - "Yazar": "Rıdvan Akar" - }, - { - "Barkod": 9789752104037, - "Dil": "Türkçe", - "Fiyat": 41.6, - "Kitap_Adi": "Da Vinci Şifresi", - "Yayinevi": "Altın Kitaplar - Edebiyat Dizisi", - "Yazar": "Dan Brown" - }, - { - "Barkod": 9786052970751, - "Dil": "Icerik Yok", - "Fiyat": 18.0, - "Kitap_Adi": "Hachiko", - "Yayinevi": "Yakamoz Yayınları", - "Yazar": "Leslea Newman" - }, - { - "Barkod": 9786257685641, - "Dil": "Türkçe", - "Fiyat": 36.4, - "Kitap_Adi": "Emanet", - "Yayinevi": "Hayykitap", - "Yazar": "Bige Güven Kızılay" - }, - { - "Barkod": 9786053329121, - "Dil": "Icerik Yok", - "Fiyat": 8.45, - "Kitap_Adi": "Clarissa", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786055340773, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Bütün Şiirleri 1", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Şükrü Erbaş" - }, - { - "Barkod": 9789750739200, - "Dil": "Icerik Yok", - "Fiyat": 9.1, - "Kitap_Adi": "Komünist Manifesto", - "Yayinevi": "Can Yayınları", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789750826139, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Kara Kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Orhan Pamuk" - }, - { - "Barkod": 9786057611154, - "Dil": "Icerik Yok", - "Fiyat": 33.0, - "Kitap_Adi": "Sıfır Kilometre", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786053328322, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Franz Kafka Babaya Mektup", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Franz Kafka" - }, - { - "Barkod": 9789755390444, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Karanlığın Sol Eli", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "Ursula K. Le Guin" - }, - { - "Barkod": 9786057948342, - "Dil": "Türkçe", - "Fiyat": 18.0, - "Kitap_Adi": "İbnül Arabi: Yıldızların - Harflerin ve Sırların Üstadı", - "Yayinevi": "Lopus", - "Yazar": "Orhan Yalçın" - }, - { - "Barkod": 9786056685842, - "Dil": "Icerik Yok", - "Fiyat": 58.5, - "Kitap_Adi": "Elon Musk-Tesla SpaceX ve Muhteşem Geleceğin Peşinde", - "Yayinevi": "Buzdağı Yayınevi", - "Yazar": "Ashlee Vance" - }, - { - "Barkod": 9786051113302, - "Dil": "Türkçe", - "Fiyat": 32.2, - "Kitap_Adi": "Ziyan", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hakan Günday" - }, - { - "Barkod": 9789750501982, - "Dil": "Türkçe", - "Fiyat": 37.05, - "Kitap_Adi": "Küçük Ağa", - "Yayinevi": "İletişim Yayıncılık - M.E.B. Dizisi", - "Yazar": "Tarık Buğra" - }, - { - "Barkod": 9786050201765, - "Dil": "Türkçe", - "Fiyat": 4.9, - "Kitap_Adi": "İnsan Ne İle Yaşar", - "Yayinevi": "Say Yayınları", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9789754707823, - "Dil": "Türkçe", - "Fiyat": 27.95, - "Kitap_Adi": "Drina Köprüsü", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "İvo Andriç" - }, - { - "Barkod": 9786257231978, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Aleme Bir Yar İçin Ah Etmeye Geldik - Gönül Sadası'ndan Akisler 3", - "Yayinevi": "Turkuvaz Kitap", - "Yazar": "Sadettin Ökten, Kemal Sayar" - }, - { - "Barkod": 9786050914443, - "Dil": "Türkçe", - "Fiyat": 22.4, - "Kitap_Adi": "Kardeşimin Hikayesi", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786052361436, - "Dil": "Icerik Yok", - "Fiyat": 33.0, - "Kitap_Adi": "Karantina İkinci Perde", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786050655834, - "Dil": "Türkçe", - "Fiyat": 17.6, - "Kitap_Adi": "Çemberin Dışı", - "Yayinevi": "Tara Kitap", - "Yazar": "Hilal Bebek" - }, - { - "Barkod": 9786254140181, - "Dil": "Türkçe", - "Fiyat": 35.45, - "Kitap_Adi": "Kül Kelebek", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Beyza Aksoy" - }, - { - "Barkod": 9786254051906, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Totem ve Tabu - Hasan Ali Yücel Klasikler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sigmund Freud" - }, - { - "Barkod": 9786057583185, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Çemberin Altında", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Gamze Aydeniz" - }, - { - "Barkod": 9786052956441, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "Mutlu Bir Yaşam Üzerine-Yaşamın Kısalığı Üzerine", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Seneca" - }, - { - "Barkod": 9786057906816, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "İyi ki Yoksun", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Hakan Özkan" - }, - { - "Barkod": 9786257500005, - "Dil": "Türkçe", - "Fiyat": 34.25, - "Kitap_Adi": "Yıldız Haritası", - "Yayinevi": "Ren Kitap", - "Yazar": "Betül Güçlü" - }, - { - "Barkod": 9786054764853, - "Dil": "Icerik Yok", - "Fiyat": 16.8, - "Kitap_Adi": "Filin Yolculuğu", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Jose Saramago" - }, - { - "Barkod": 9789759955748, - "Dil": "Türkçe", - "Fiyat": 46.4, - "Kitap_Adi": "Huzur", - "Yayinevi": "Dergah Yayınları", - "Yazar": "Ahmet Hamdi Tanpınar" - }, - { - "Barkod": 9789750751387, - "Dil": "Türkçe", - "Fiyat": 13.65, - "Kitap_Adi": "Alçaklığın Evrensel Tarihi", - "Yayinevi": "Can Yayınları", - "Yazar": "Jorge Luis Borges" - }, - { - "Barkod": 9786257458085, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Gahiji", - "Yayinevi": "Elpis Yayınları", - "Yazar": "Ayşegül Caz" - }, - { - "Barkod": 9786258489095, - "Dil": "Türkçe", - "Fiyat": 42.25, - "Kitap_Adi": "Gucci Hanedanı: Cinayet - Delilik - İhtişam ve Açgözlülüğün Çarpıcı Hikayesi", - "Yayinevi": "Nova Kitap", - "Yazar": "Sarah Gay Forden" - }, - { - "Barkod": 9789754054217, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Göz", - "Yayinevi": "Altın Kitaplar - Meşhur Romanlar Dizisi", - "Yazar": "Stephen King" - }, - { - "Barkod": 9786257135955, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Zor Zamanlar Güzel Kapılar Açar", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Nebi Yıldız" - }, - { - "Barkod": 9786254431036, - "Dil": "Türkçe", - "Fiyat": 27.0, - "Kitap_Adi": "Kınalı Çiçekler", - "Yayinevi": "Arkadya Yayınları", - "Yazar": "Alka Joshi" - }, - { - "Barkod": 9789750739163, - "Dil": "Icerik Yok", - "Fiyat": 7.0, - "Kitap_Adi": "Bir İdam Mahkumunun Son Günü", - "Yayinevi": "Can Yayınları", - "Yazar": "Victor Hugo" - }, - { - "Barkod": 9786254050541, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Emma - Hasan Ali Yücel Klasikler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jane Austen" - }, - { - "Barkod": 9786053140177, - "Dil": "Türkçe", - "Fiyat": 49.0, - "Kitap_Adi": "Bir Gün Tek Başına", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "Vedat Türkali" - }, - { - "Barkod": 9789754055856, - "Dil": "Icerik Yok", - "Fiyat": 35.75, - "Kitap_Adi": "Medyum", - "Yayinevi": "Altın Kitaplar - Roman / Korku - Gerilim", - "Yazar": "Stephen King" - }, - { - "Barkod": 9789750814068, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Henüz Vakit Varken Gülüm", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Nazım Hikmet" - }, - { - "Barkod": 9789750741210, - "Dil": "Türkçe", - "Fiyat": 7.7, - "Kitap_Adi": "Morgue Sokağı Cinayetleri-Kısa Klasik", - "Yayinevi": "Can Yayınları", - "Yazar": "Edgar Allan Poe" - }, - { - "Barkod": 9789752202795, - "Dil": "Türkçe", - "Fiyat": 30.8, - "Kitap_Adi": "Silahlara Veda", - "Yayinevi": "Bilgi Yayınevi - Roman Dizisi", - "Yazar": "Ernest Hemingway" - }, - { - "Barkod": 9786254490675, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Korkma Ben Varım", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Murat Menteş" - }, - { - "Barkod": 9786257685559, - "Dil": "Türkçe", - "Fiyat": 26.0, - "Kitap_Adi": "Dr. Thalamus", - "Yayinevi": "Hayykitap", - "Yazar": "Ünal Aydın" - }, - { - "Barkod": 9789750531897, - "Dil": "Türkçe", - "Fiyat": 19.2, - "Kitap_Adi": "Dünya Unutana Kalır", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Deniz Poyraz" - }, - { - "Barkod": 9789750846229, - "Dil": "Türkçe", - "Fiyat": 13.0, - "Kitap_Adi": "Agathanın Anahtarı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786254411762, - "Dil": "Türkçe", - "Fiyat": 19.0, - "Kitap_Adi": "Haysiyet - Tuhaf Zamanlarda Cesurca Yaşamak", - "Yayinevi": "Destek Yayınları", - "Yazar": "Ece Üner" - }, - { - "Barkod": 9786257359610, - "Dil": "Türkçe", - "Fiyat": 26.0, - "Kitap_Adi": "Aşk Geceleri", - "Yayinevi": "Nemesis Kitap", - "Yazar": "Jill Shalvis" - }, - { - "Barkod": 9786051921723, - "Dil": "Icerik Yok", - "Fiyat": 29.0, - "Kitap_Adi": "Moskova'da Bir Beyefendi", - "Yayinevi": "Hep Kitap", - "Yazar": "Amor Towles" - }, - { - "Barkod": 9789753900799, - "Dil": "Türkçe", - "Fiyat": 35.1, - "Kitap_Adi": "Şibumi", - "Yayinevi": "E Yayınları - Yabancı Romanlar Dizisi", - "Yazar": "Trevanian" - }, - { - "Barkod": 9786257999144, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Retorik-Hasan Ali Yücel Klasikler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Aristoteles" - }, - { - "Barkod": 9789944882552, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Akıl ve Tutku - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Jane Austen" - }, - { - "Barkod": 9789751042675, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Huzursuzluk", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789753635103, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Karısını Şapka Sanan Adam", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Oliver Sacks" - }, - { - "Barkod": 9786051738628, - "Dil": "Türkçe", - "Fiyat": 32.2, - "Kitap_Adi": "Davetli Listesi", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Lucy Foley" - }, - { - "Barkod": 9786050834611, - "Dil": "Türkçe", - "Fiyat": 19.95, - "Kitap_Adi": "Arayış - Mehmet'in Hikayesi", - "Yayinevi": "Timaş Yayınları", - "Yazar": "Mehmet Yıldız" - }, - { - "Barkod": 9786052956274, - "Dil": "Türkçe", - "Fiyat": 9.75, - "Kitap_Adi": "Mai ve Siyah-Günümüz Türkçesiyle", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Halid Ziya Uşaklıgil" - }, - { - "Barkod": 9786057611635, - "Dil": "Türkçe", - "Fiyat": 30.0, - "Kitap_Adi": "Kar Küresi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 2789735654563, - "Dil": "Türkçe", - "Fiyat": 45.0, - "Kitap_Adi": "Deniz Kızı Ağladığında - Hediyeli Özel Kutu", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Ekin S. Koch" - }, - { - "Barkod": 9786257999502, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Hayatın Mucizeleri-Modern Klasikler 144", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789750807039, - "Dil": "Türkçe", - "Fiyat": 32.5, - "Kitap_Adi": "İnce Memed 3", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786257382311, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yaralasar 2", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Maral Atmaca" - }, - { - "Barkod": 9786257671255, - "Dil": "Türkçe", - "Fiyat": 45.0, - "Kitap_Adi": "Sokak Nöbetçileri", - "Yayinevi": "İndigo Kitap", - "Yazar": "Aslı Arslan" - }, - { - "Barkod": 9789755707686, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Sevilen", - "Yayinevi": "Sel Yayıncılık - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Toni Morrison" - }, - { - "Barkod": 9789750739491, - "Dil": "Icerik Yok", - "Fiyat": 8.4, - "Kitap_Adi": "Yeraltından Notlar", - "Yayinevi": "Can Yayınları", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786257382243, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Son Görüş - Çemberin Altında 2", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Gamze Aydeniz" - }, - { - "Barkod": 9789750806452, - "Dil": "Türkçe", - "Fiyat": 39.0, - "Kitap_Adi": "Harry Potter ve Zümrüdüanka Yoldaşlığı - 5.kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "J. K. Rowling" - }, - { - "Barkod": 9786254054914, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Semaver", - "Yayinevi": "İş Bankası Kültür Yayınları - Türk Edebiyatı", - "Yazar": "Sait Faik Abasıyanık" - }, - { - "Barkod": 9786052957349, - "Dil": "Icerik Yok", - "Fiyat": 7.8, - "Kitap_Adi": "Oz Büyücüsü", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "L. Frank Baum" - }, - { - "Barkod": 9789753424080, - "Dil": "Icerik Yok", - "Fiyat": 35.0, - "Kitap_Adi": "Sana Gül Bahçesi Vadetmedim", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "Joanne Greenberg" - }, - { - "Barkod": 9789750832208, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Günden Kalanlar", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Kazuo Ishiguro" - }, - { - "Barkod": 9789750739903, - "Dil": "Icerik Yok", - "Fiyat": 16.45, - "Kitap_Adi": "Aşk ve Gurur", - "Yayinevi": "Can Yayınları", - "Yazar": "Jane Austen" - }, - { - "Barkod": 9789750835292, - "Dil": "Türkçe", - "Fiyat": 9.75, - "Kitap_Adi": "Doppler", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Erlend Loe" - }, - { - "Barkod": 9789752448308, - "Dil": "Icerik Yok", - "Fiyat": 31.5, - "Kitap_Adi": "Abum Rabum", - "Yayinevi": "Kapı Yayınları", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9789750748844, - "Dil": "Türkçe", - "Fiyat": 12.6, - "Kitap_Adi": "Beyaz Zambaklar Ülkesinde", - "Yayinevi": "Can Yayınları", - "Yazar": "Grigory Petrov" - }, - { - "Barkod": 9789754700671, - "Dil": "Türkçe", - "Fiyat": 31.2, - "Kitap_Adi": "Bir Bilim Adamının Romanı", - "Yayinevi": "İletişim Yayıncılık - M.E.B. Dizisi", - "Yazar": "Oğuz Atay" - }, - { - "Barkod": 9789944887632, - "Dil": "Türkçe", - "Fiyat": 7.15, - "Kitap_Adi": "Vahşetin Çağrısı", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Jack London" - }, - { - "Barkod": 9786054188710, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Aklından Bir Sayı Tut", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "John Verdon" - }, - { - "Barkod": 9786050954333, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Issız Kadınlar Sokağı", - "Yayinevi": "Doğan Kitap", - "Yazar": "Canan Tan" - }, - { - "Barkod": 9786057739940, - "Dil": "Türkçe", - "Fiyat": 25.35, - "Kitap_Adi": "Böke - Alamut'un Fethi", - "Yayinevi": "Panama Yayıncılık", - "Yazar": "Çağlayan Yılmaz" - }, - { - "Barkod": 9786257382328, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Yaralasar 2", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Maral Atmaca" - }, - { - "Barkod": 9786052954539, - "Dil": "Icerik Yok", - "Fiyat": 4.55, - "Kitap_Adi": "Kızıl-Modern Klasikler Dizisi 116", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789751041883, - "Dil": "Türkçe", - "Fiyat": 18.85, - "Kitap_Adi": "Leyla'nın Evi", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789750748707, - "Dil": "Türkçe", - "Fiyat": 36.4, - "Kitap_Adi": "Veba", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Albert Camus" - }, - { - "Barkod": 9786050987393, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Son Kadın", - "Yayinevi": "Doğan Kitap", - "Yazar": "Şaziye Karlıklı" - }, - { - "Barkod": 9786052221426, - "Dil": "Icerik Yok", - "Fiyat": 18.85, - "Kitap_Adi": "Benliğini Arayan Çocuk", - "Yayinevi": "Panama Yayıncılık", - "Yazar": "Virginia M.Axline" - }, - { - "Barkod": 9786054927821, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Kirpinin Zarafeti", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Muriel Barbery" - }, - { - "Barkod": 9789753423472, - "Dil": "Türkçe", - "Fiyat": 147.0, - "Kitap_Adi": "Yüzüklerin Efendisi - Tek Cilt Özel Basım", - "Yayinevi": "Metis Yayıncılık - Edebiyat Dizisi", - "Yazar": "J. R. R. Tolkien" - }, - { - "Barkod": 9789751041944, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Arafat'ta Bir Çocuk", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789755391991, - "Dil": "Icerik Yok", - "Fiyat": 31.5, - "Kitap_Adi": "Divan", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "Irvin D. Yalom" - }, - { - "Barkod": 9786051923994, - "Dil": "Türkçe", - "Fiyat": 26.5, - "Kitap_Adi": "Ev", - "Yayinevi": "Hep Kitap", - "Yazar": "Nermin Yıldırım" - }, - { - "Barkod": 9789750846335, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Ninatta'nın Bileziği", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786051854441, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Her Yerde Kan Var", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9786058276666, - "Dil": "Türkçe", - "Fiyat": 21.1, - "Kitap_Adi": "Saç Örgüsü", - "Yayinevi": "Yan Pasaj", - "Yazar": "Laetitia Colombani" - }, - { - "Barkod": 9786053605669, - "Dil": "Türkçe", - "Fiyat": 22.1, - "Kitap_Adi": "Ecinniler - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789754058789, - "Dil": "Icerik Yok", - "Fiyat": 16.25, - "Kitap_Adi": "Acı Kahve", - "Yayinevi": "Altın Kitaplar - Klasik Polis Romanları Dizisi", - "Yazar": "Agatha Christie" - }, - { - "Barkod": 9789750847141, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Aşk Köpekliktir", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786057463210, - "Dil": "Türkçe", - "Fiyat": 17.7, - "Kitap_Adi": "Renkli Çekmeceli Şifonyer", - "Yayinevi": "Yan Pasaj", - "Yazar": "Olivia Ruiz" - }, - { - "Barkod": 9786257671194, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Yine de Sevdik", - "Yayinevi": "İndigo Kitap", - "Yazar": "Miraç Çağrı Aktaş" - }, - { - "Barkod": 9786257382472, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Bir Kış Gecesi Masalı 2 - Kuledeki Kız", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Katherine Arden" - }, - { - "Barkod": 8696602029321, - "Dil": "Türkçe", - "Fiyat": 26.6, - "Kitap_Adi": "İmzalı - Deli Tarla", - "Yayinevi": "Doğan Kitap", - "Yazar": "Şermin Yaşar" - }, - { - "Barkod": 9786053110842, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "Ela Gözlü Pars Celile", - "Yayinevi": "Destek Yayınları", - "Yazar": "Osman Balcıgil" - }, - { - "Barkod": 9786054927579, - "Dil": "Icerik Yok", - "Fiyat": 13.2, - "Kitap_Adi": "Bilinmeyen Adanın Öyküsü", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Jose Saramago" - }, - { - "Barkod": 9786050940596, - "Dil": "Icerik Yok", - "Fiyat": 33.6, - "Kitap_Adi": "Damızlık Kızın Öyküsü", - "Yayinevi": "Doğan Kitap", - "Yazar": "Margaret Atwood" - }, - { - "Barkod": 9786257671576, - "Dil": "Türkçe", - "Fiyat": 60.0, - "Kitap_Adi": "Çıkmaz Aşk", - "Yayinevi": "İndigo Kitap", - "Yazar": "Işılca" - }, - { - "Barkod": 9789754052718, - "Dil": "Türkçe", - "Fiyat": 18.85, - "Kitap_Adi": "Noel'de Cinayet", - "Yayinevi": "Altın Kitaplar - Klasik Polis Romanları Dizisi", - "Yazar": "Agatha Christie" - }, - { - "Barkod": 9789754586152, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Üç Büyük Usta", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789751041487, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Mutluluk", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786257650236, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Gecede Saklı Yalnız Aşklar", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Adil Yıldırım" - }, - { - "Barkod": 9786050986457, - "Dil": "Türkçe", - "Fiyat": 26.55, - "Kitap_Adi": "Buzdaki Kelebek", - "Yayinevi": "DEX", - "Yazar": "Sylvia Day" - }, - { - "Barkod": 9789750739217, - "Dil": "Icerik Yok", - "Fiyat": 9.1, - "Kitap_Adi": "Prens", - "Yayinevi": "Can Yayınları", - "Yazar": "Niccola Machiavelli" - }, - { - "Barkod": 9789750806735, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Filler Sultanı ile Kırmızı Sakallı Topal Karınca", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786053609308, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Leylim Leylim", - "Yayinevi": "İş Bankası Kültür Yayınları - Türk Edebiyatı", - "Yazar": "Ahmed Arif" - }, - { - "Barkod": 9789750526596, - "Dil": "Türkçe", - "Fiyat": 21.45, - "Kitap_Adi": "Devran", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Selahattin Demirtaş" - }, - { - "Barkod": 9786057685988, - "Dil": "Türkçe", - "Fiyat": 21.85, - "Kitap_Adi": "Meçhul Kuvvetlere Kurban", - "Yayinevi": "Koç Üniversitesi Yayınları", - "Yazar": "Selim Nüzhet Gerçek" - }, - { - "Barkod": 9789751042699, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Herkes Çıplak", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Elif Şakar" - }, - { - "Barkod": 9789750817779, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Dokuza Kadar On", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Özdemir Asaf" - }, - { - "Barkod": 9789944884044, - "Dil": "Türkçe", - "Fiyat": 13.0, - "Kitap_Adi": "Ölüler Evinden Anılar - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786054322848, - "Dil": "Icerik Yok", - "Fiyat": 31.5, - "Kitap_Adi": "Od", - "Yayinevi": "Kapı Yayınları - İskender Pala Bütün Eserleri Dizisi", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9786050949889, - "Dil": "Icerik Yok", - "Fiyat": 48.3, - "Kitap_Adi": "Değersiz Bir Hayat", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hanya Yanagihara" - }, - { - "Barkod": 9789753901451, - "Dil": "Icerik Yok", - "Fiyat": 39.0, - "Kitap_Adi": "Aptallar Erken Ölür", - "Yayinevi": "E Yayınları", - "Yazar": "Mario Puzo" - }, - { - "Barkod": 9789750818127, - "Dil": "Türkçe", - "Fiyat": 120.25, - "Kitap_Adi": "Kayıp Zamanın İzinde - 2 Cilt", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Marcel Proust" - }, - { - "Barkod": 9786258475197, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Çelik Mağaralar - Robot Serisi", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Isaac Asimov" - }, - { - "Barkod": 9786057436795, - "Dil": "Türkçe", - "Fiyat": 27.2, - "Kitap_Adi": "Gerçek Sensin", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Meral Kır" - }, - { - "Barkod": 9789944889384, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Germinal - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Bülent Onaran" - }, - { - "Barkod": 9789750722127, - "Dil": "Türkçe", - "Fiyat": 51.8, - "Kitap_Adi": "Bir Deliler Evinin Yalan Yanlış Anlatılan Kısa Tarihi", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Ayfer Tunç" - }, - { - "Barkod": 9789750721663, - "Dil": "Türkçe", - "Fiyat": 49.0, - "Kitap_Adi": "Sinekli Bakkal", - "Yayinevi": "Can Yayınları - Türk Edebiyatı Dizisi", - "Yazar": "Halide Edib Adıvar" - }, - { - "Barkod": 9786052361818, - "Dil": "Icerik Yok", - "Fiyat": 30.0, - "Kitap_Adi": "Asansör", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786052361795, - "Dil": "Icerik Yok", - "Fiyat": 11.0, - "Kitap_Adi": "Milena'ya Mektuplar", - "Yayinevi": "İndigo Kitap", - "Yazar": "Franz Kafka" - }, - { - "Barkod": 9786257382533, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Yaralasar 3", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Kolektif" - }, - { - "Barkod": 9786053327325, - "Dil": "Türkçe", - "Fiyat": 9.75, - "Kitap_Adi": "Frankenstein Ya Da Modern Prometheus", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Mary Shelley" - }, - { - "Barkod": 9789750726491, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Boğulmamak İçin", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786050655841, - "Dil": "Türkçe", - "Fiyat": 21.45, - "Kitap_Adi": "Bilge Ay Cesur Güneş", - "Yayinevi": "Tara Kitap", - "Yazar": "Didem Öztabak" - }, - { - "Barkod": 9786052318478, - "Dil": "Türkçe", - "Fiyat": 26.25, - "Kitap_Adi": "Leylan", - "Yayinevi": "Dipnot", - "Yazar": "Selahattin Demirtaş" - }, - { - "Barkod": 9786051553900, - "Dil": "Türkçe", - "Fiyat": 7.4, - "Kitap_Adi": "Cemile", - "Yayinevi": "Ötüken Neşriyat - Roman Dizisi", - "Yazar": "Cengiz Aytmatov" - }, - { - "Barkod": 9789750846359, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Kar Kokusu", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9789754941883, - "Dil": "Türkçe", - "Fiyat": 20.3, - "Kitap_Adi": "Aganta Burına Burınata", - "Yayinevi": "Bilgi Yayınevi - M.E.B. Dizisi", - "Yazar": "Halikarnas Balıkçısı" - }, - { - "Barkod": 9786257382540, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yaralasar 3", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Kolektif" - }, - { - "Barkod": 9786254140174, - "Dil": "Türkçe", - "Fiyat": 43.9, - "Kitap_Adi": "Kül Kelebek", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Beyza Aksoy" - }, - { - "Barkod": 9772548041005, - "Dil": "Türkçe", - "Fiyat": 10.9, - "Kitap_Adi": "Minika Çocuk - Kasım 2021", - "Yayinevi": "Turkuvaz", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 8018190013337, - "Dil": "Türkçe", - "Fiyat": 35.0, - "Kitap_Adi": "Captain Tsubasa Çoklu Paket", - "Yayinevi": "Panini", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9786057674111, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Bu Kitabı Sakın Okuma!", - "Yayinevi": "Hayykitap", - "Yazar": "Mehmet Yıldız" - }, - { - "Barkod": 9789751403810, - "Dil": "Türkçe", - "Fiyat": 29.75, - "Kitap_Adi": "Suyu Arayan Adam", - "Yayinevi": "Remzi Kitabevi - M.E.B. Dizisi", - "Yazar": "Şevket Süreyya Aydemir" - }, - { - "Barkod": 9789751037459, - "Dil": "Icerik Yok", - "Fiyat": 18.85, - "Kitap_Adi": "Haşırt Dı Bilekbord", - "Yayinevi": "İnkılap Kitabevi - Deneme Dizisi", - "Yazar": "Zafer Algöz" - }, - { - "Barkod": 9789944887014, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Soneler - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "William Shakespeare" - }, - { - "Barkod": 9786052954355, - "Dil": "Icerik Yok", - "Fiyat": 16.25, - "Kitap_Adi": "Hayvanlaşan İnsan", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Emile Zola" - }, - { - "Barkod": 9786257781497, - "Dil": "Türkçe", - "Fiyat": 26.25, - "Kitap_Adi": "Piyanist - Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Wladyslaw Szpilman" - }, - { - "Barkod": 9789754378047, - "Dil": "Icerik Yok", - "Fiyat": 13.95, - "Kitap_Adi": "Dalkavuklar Gecesi - Z Vitamini", - "Yayinevi": "Ötüken Neşriyat - Edebî Eserler Dizisi", - "Yazar": "Hüseyin Nihal Atsız" - }, - { - "Barkod": 9789751416803, - "Dil": "Türkçe", - "Fiyat": 45.5, - "Kitap_Adi": "Damdan Düşen Psikolog", - "Yayinevi": "Remzi Kitabevi - Anılar Dizisi", - "Yazar": "Doğan Cüceloğlu" - }, - { - "Barkod": 9786052956236, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "Taaşşuk-ı Talat ve Fitnat-Günümüz Türkçesiyle", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Şemseddin Sami" - }, - { - "Barkod": 9786257498494, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Grendel Maceraları - Aynalı Kapı", - "Yayinevi": "İkinci Adam Yayınları", - "Yazar": "Özlem Yeşim Özkan" - }, - { - "Barkod": 9789755704036, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Adınla Çağır Beni", - "Yayinevi": "Sel Yayıncılık - Roman Dizisi", - "Yazar": "Andre Aciman" - }, - { - "Barkod": 9786257940405, - "Dil": "Türkçe", - "Fiyat": 10.55, - "Kitap_Adi": "Sen Yoksun Ben Varım", - "Yayinevi": "Edebiyatist", - "Yazar": "Ceren Atmaca" - }, - { - "Barkod": 9786257999274, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "İçimizdeki Şeytan-Türk Edebiyat Klasikleri 31", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786051850788, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Kanadı Kırık Kuşlar", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9786053327547, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Siyah Lale", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Alexandre Dumas" - }, - { - "Barkod": 9786257070317, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Eylül-Günümüz Türkçesiyle-Türk Edebiyatı Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Mehmet Rauf" - }, - { - "Barkod": 9789750805561, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Bozkırkurdu", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Hermann Hesse" - }, - { - "Barkod": 9786051737904, - "Dil": "Türkçe", - "Fiyat": 35.45, - "Kitap_Adi": "Mutlu Yarınlar", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Debbie Macomber" - }, - { - "Barkod": 9786254054020, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Alemdağ'da Var Bir Yılan-Modern Türk Edebiyatı Klasikleri 8", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sait Faik Abasıyanık" - }, - { - "Barkod": 9789750849343, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Parasız Yatılı - 50 Yaşında - Numaralı Özel Baskı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Füruzan" - }, - { - "Barkod": 9789750745928, - "Dil": "Türkçe", - "Fiyat": 45.5, - "Kitap_Adi": "Güneşi Uyandıralım", - "Yayinevi": "Can Yayınları", - "Yazar": "Jose Mauro De Vasconcelos" - }, - { - "Barkod": 9789752890435, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Adı: Aylin", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9789750807015, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Binboğalar Efsanesi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9789754701012, - "Dil": "Türkçe", - "Fiyat": 29.9, - "Kitap_Adi": "Lolita", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Vladimir Nabokov" - }, - { - "Barkod": 9786053116820, - "Dil": "Türkçe", - "Fiyat": 11.0, - "Kitap_Adi": "Başka Bir Şey", - "Yayinevi": "Destek Yayınları", - "Yazar": "Ahmet Batman" - }, - { - "Barkod": 9789750404030, - "Dil": "Türkçe", - "Fiyat": 21.2, - "Kitap_Adi": "Eşekli Kütüphaneci", - "Yayinevi": "Literatür Yayıncılık", - "Yazar": "Fakir Baykurt" - }, - { - "Barkod": 9786057401359, - "Dil": "Türkçe", - "Fiyat": 19.2, - "Kitap_Adi": "Köşedeki Dükkan", - "Yayinevi": "Orman Kitap", - "Yazar": "Nicola May" - }, - { - "Barkod": 9786058029538, - "Dil": "Icerik Yok", - "Fiyat": 25.35, - "Kitap_Adi": "Siyah Takım Elbiseli Adam", - "Yayinevi": "İnka", - "Yazar": "Stephen King" - }, - { - "Barkod": 9786051738888, - "Dil": "Türkçe", - "Fiyat": 54.95, - "Kitap_Adi": "Kelebeği Öldürmek - 1", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Beyza Aksoy" - }, - { - "Barkod": 9789750737282, - "Dil": "Türkçe", - "Fiyat": 25.55, - "Kitap_Adi": "Yüzyıllık Yalnızlık-Mini Kitap", - "Yayinevi": "Can Yayınları", - "Yazar": "Gabriel Garcia Marquez" - }, - { - "Barkod": 9789755391014, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Parfümün Dansı", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "Tom Robbins" - }, - { - "Barkod": 9786050842913, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Son Hikayeler", - "Yayinevi": "Timaş Yayınları", - "Yazar": "Olga Tokarczuk" - }, - { - "Barkod": 9786257307321, - "Dil": "Türkçe", - "Fiyat": 8.8, - "Kitap_Adi": "Raşomon", - "Yayinevi": "Fol Kitap", - "Yazar": "Ryunosuke Akutagava" - }, - { - "Barkod": 9789759916169, - "Dil": "Türkçe", - "Fiyat": 26.6, - "Kitap_Adi": "Kadının Adı Yok", - "Yayinevi": "Doğan Kitap", - "Yazar": "Duygu Asena" - }, - { - "Barkod": 9786054322374, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Şah ve Sultan", - "Yayinevi": "Kapı Yayınları - İskender Pala Bütün Eserleri Dizisi", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9786053329817, - "Dil": "Icerik Yok", - "Fiyat": 9.1, - "Kitap_Adi": "Seksen Günde Dünya Gezisi", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jules Verne" - }, - { - "Barkod": 9786257217842, - "Dil": "Türkçe", - "Fiyat": 23.95, - "Kitap_Adi": "Sakın Günlüğümü Okuma", - "Yayinevi": "Karakarga", - "Yazar": "Ayça Warner" - }, - { - "Barkod": 9786057643698, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Geçmiş Zaman Ambarı", - "Yayinevi": "Notos", - "Yazar": "Cihan Çakan" - }, - { - "Barkod": 9789750524363, - "Dil": "Icerik Yok", - "Fiyat": 31.85, - "Kitap_Adi": "Sessizliğe Hayranlık", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Abdulrazak Gurnah" - }, - { - "Barkod": 9786053324423, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Deniz Feneri", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Virginia Woolf" - }, - { - "Barkod": 9786257027014, - "Dil": "Türkçe", - "Fiyat": 13.9, - "Kitap_Adi": "Günler Aylar Yıllar", - "Yayinevi": "Jaguar Kitap", - "Yazar": "Yan Lianke" - }, - { - "Barkod": 9786051920429, - "Dil": "Icerik Yok", - "Fiyat": 24.6, - "Kitap_Adi": "Dokunmadan", - "Yayinevi": "Hep Kitap", - "Yazar": "Nermin Yıldırım" - }, - { - "Barkod": 9786052954591, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "İntibah-Türk Edebiyatı Klasikleri 4", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Namık Kemal" - }, - { - "Barkod": 9789750846076, - "Dil": "Türkçe", - "Fiyat": 31.2, - "Kitap_Adi": "Sultanı Öldürmek", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9789754700084, - "Dil": "Türkçe", - "Fiyat": 28.3, - "Kitap_Adi": "Kiralık Konak", - "Yayinevi": "İletişim Yayıncılık - M.E.B. Dizisi", - "Yazar": "Yakup Kadri Karaosmanoğlu" - }, - { - "Barkod": 9786053112952, - "Dil": "Icerik Yok", - "Fiyat": 32.4, - "Kitap_Adi": "İpek Sabahlık-Bir Suat Derviş Romanı", - "Yayinevi": "Destek Yayınları", - "Yazar": "Osman Balcıgil" - }, - { - "Barkod": 9786059658904, - "Dil": "Icerik Yok", - "Fiyat": 12.0, - "Kitap_Adi": "Yaşıyoruz Sessizce", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Şükrü Erbaş" - }, - { - "Barkod": 9786051920856, - "Dil": "Icerik Yok", - "Fiyat": 25.2, - "Kitap_Adi": "Rüyalar Anlatılmaz", - "Yayinevi": "Hep Kitap", - "Yazar": "Nermin Yıldırım" - }, - { - "Barkod": 9789944887427, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Siyasetname - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Nizamülmülk" - }, - { - "Barkod": 9786053323815, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Kutadgu Bilig", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Yusuf Has Hacib" - }, - { - "Barkod": 9786057823465, - "Dil": "Icerik Yok", - "Fiyat": 20.8, - "Kitap_Adi": "Med Cezir", - "Yayinevi": "Cinius", - "Yazar": "Adil Yıldırım" - }, - { - "Barkod": 9789751041630, - "Dil": "Türkçe", - "Fiyat": 23.4, - "Kitap_Adi": "Orta Zekalılar Cenneti", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786057083722, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Tilki", - "Yayinevi": "Theseus Yayınevi", - "Yazar": "Gökçe Tuncay" - }, - { - "Barkod": 9786051416779, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Ve Dağlar Yankılandı", - "Yayinevi": "Everest Yayınları - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Khaled Hosseini" - }, - { - "Barkod": 9786051981925, - "Dil": "Türkçe", - "Fiyat": 26.6, - "Kitap_Adi": "Kendime Notlar", - "Yayinevi": "Domingo Yayınevi", - "Yazar": "Emilie Pine" - }, - { - "Barkod": 9786052958612, - "Dil": "Icerik Yok", - "Fiyat": 8.45, - "Kitap_Adi": "Günümüz Türkçesiyle Amak-ı Hayal-Hayalin Derinlikleri", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Şehbenderzade Filibeli Ahmed Hilmi" - }, - { - "Barkod": 9786257135603, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Beni Unutma Ben Sana Sevmeyi Öğrettim", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Hakan Özkan" - }, - { - "Barkod": 9786057063151, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Bu Kimin Cesedi?", - "Yayinevi": "Sahi Kitap", - "Yazar": "Dorothy L. Sayers" - }, - { - "Barkod": 9786257217767, - "Dil": "Türkçe", - "Fiyat": 22.05, - "Kitap_Adi": "Tanrım Beni Başkan Yarat", - "Yayinevi": "Karakarga", - "Yazar": "Yavuz Saltık" - }, - { - "Barkod": 9786257737999, - "Dil": "Türkçe", - "Fiyat": 5.0, - "Kitap_Adi": "Elia", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Yılmaz Şener" - }, - { - "Barkod": 9789759955694, - "Dil": "Türkçe", - "Fiyat": 25.6, - "Kitap_Adi": "Beş Şehir", - "Yayinevi": "Dergah Yayınları", - "Yazar": "Ahmet Hamdi Tanpınar" - }, - { - "Barkod": 9786052126981, - "Dil": "Türkçe", - "Fiyat": 7.23, - "Kitap_Adi": "Gümüş Patenler", - "Yayinevi": "Ema Genç", - "Yazar": "Mary Mapes Dodge" - }, - { - "Barkod": 9786058276604, - "Dil": "Icerik Yok", - "Fiyat": 21.8, - "Kitap_Adi": "İkinci Hayatın Tek Bir Hayatın Olduğunu Anladığında Başlar", - "Yayinevi": "Yan Pasaj", - "Yazar": "Raphaelle Giordano" - }, - { - "Barkod": 9786257266772, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "İki Kez Yaşamanın Güzelliği", - "Yayinevi": "Sia", - "Yazar": "Sharon Stone" - }, - { - "Barkod": 9786057611932, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Mevlananın Kedisi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Can Aydoğmuş" - }, - { - "Barkod": 9786257310185, - "Dil": "Türkçe", - "Fiyat": 55.0, - "Kitap_Adi": "Arsen Lupen - Seçme Eserler Özel Basım", - "Yayinevi": "Ren Kitap", - "Yazar": "Maurice Leblanc" - }, - { - "Barkod": 9789750723322, - "Dil": "Türkçe", - "Fiyat": 30.1, - "Kitap_Adi": "Ateşten Gömlek", - "Yayinevi": "Can Yayınları - Türk Edebiyatı Dizisi", - "Yazar": "Halide Edib Adıvar" - }, - { - "Barkod": 9786257220149, - "Dil": "Türkçe", - "Fiyat": 52.5, - "Kitap_Adi": "Seyir", - "Yayinevi": "Mona", - "Yazar": "Piraye" - }, - { - "Barkod": 8018190068634, - "Dil": "Türkçe", - "Fiyat": 57.5, - "Kitap_Adi": "Panini FIFA 365 Çoklu Paket 30 Kart - 2 Limited Edition", - "Yayinevi": "Panini", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789750803772, - "Dil": "Türkçe", - "Fiyat": 31.2, - "Kitap_Adi": "Memleketimden İnsan Manzaraları - Şiirler 5", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789750845895, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Uygarlıkların Batışı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Amin Maalouf" - }, - { - "Barkod": 9789750728730, - "Dil": "Türkçe", - "Fiyat": 30.45, - "Kitap_Adi": "Piedra Irmağının Kıyısında Oturdum Ağladım", - "Yayinevi": "Can Yayınları - Bestseller Dizisi", - "Yazar": "Paulo Coelho" - }, - { - "Barkod": 9789753420570, - "Dil": "Icerik Yok", - "Fiyat": 25.2, - "Kitap_Adi": "Yerdeniz Büyücüsü - Yerdeniz Üçlemesi 1", - "Yayinevi": "Metis Yayıncılık - Edebiyat Dizisi", - "Yazar": "Ursula K. Le Guin" - }, - { - "Barkod": 9786051113869, - "Dil": "Türkçe", - "Fiyat": 41.3, - "Kitap_Adi": "Sahilde Kafka", - "Yayinevi": "Doğan Kitap", - "Yazar": "Haruki Murakami" - }, - { - "Barkod": 9786053116882, - "Dil": "Türkçe", - "Fiyat": 17.4, - "Kitap_Adi": "Dijital Tapınak", - "Yayinevi": "Destek Yayınları", - "Yazar": "Haluk Özdil" - }, - { - "Barkod": 8696602140521, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Aşk (Gri Kapak)", - "Yayinevi": "Doğan Kitap", - "Yazar": "Elif Şafak" - }, - { - "Barkod": 2789788610523, - "Dil": "Icerik Yok", - "Fiyat": 38.0, - "Kitap_Adi": "Modern Dünya Klasikleri Seti - 7 Kitap Takım", - "Yayinevi": "İndigo Kitap", - "Yazar": "Kolektif" - }, - { - "Barkod": 9789759914899, - "Dil": "Türkçe", - "Fiyat": 26.6, - "Kitap_Adi": "Zargana", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hakan Günday" - }, - { - "Barkod": 9786050906486, - "Dil": "Türkçe", - "Fiyat": 21.7, - "Kitap_Adi": "Leyla'nın Evi", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786254491009, - "Dil": "Türkçe", - "Fiyat": 20.3, - "Kitap_Adi": "Tatlı Rüyalar", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Alper Canıgüz" - }, - { - "Barkod": 9789750809958, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Harry Potter ve Melez Prens - 6. Kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "J. K. Rowling" - }, - { - "Barkod": 9789750505386, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Suskunlar", - "Yayinevi": "İletişim Yayıncılık - Roman Dizisi", - "Yazar": "İhsan Oktay Anar" - }, - { - "Barkod": 9789750509636, - "Dil": "Türkçe", - "Fiyat": 20.15, - "Kitap_Adi": "Sinek Isırıklarının Müellifi", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Türkçe Edebiyat Dizisi", - "Yazar": "Barış Bıçakçı" - }, - { - "Barkod": 9786053326939, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Babil Yaratılış Destanı", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Enuma Eliş" - }, - { - "Barkod": 9786257070300, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Gizli Bahçe-Modern Klasikler 148", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Frances Hodgson Burnett" - }, - { - "Barkod": 9786254486425, - "Dil": "Türkçe", - "Fiyat": 41.3, - "Kitap_Adi": "Kazanırsak Kaybederiz - Çevrimiçi", - "Yayinevi": "Martı Yayınları", - "Yazar": "Zeynep Sey" - }, - { - "Barkod": 9786257077033, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Sesini Duyur", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "M. Rise" - }, - { - "Barkod": 9786052988848, - "Dil": "Türkçe", - "Fiyat": 26.4, - "Kitap_Adi": "Yüz Yıllık Umut", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Nermin Abadan Unat" - }, - { - "Barkod": 9789750826672, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Canım Aliye Ruhum Filiz", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786051738253, - "Dil": "Türkçe", - "Fiyat": 40.65, - "Kitap_Adi": "Onun Şeytanları", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Beyza Aksoy" - }, - { - "Barkod": 9786257359238, - "Dil": "Türkçe", - "Fiyat": 24.4, - "Kitap_Adi": "Beyaz Güller Açarken", - "Yayinevi": "Nemesis Kitap", - "Yazar": "Naşide Gökbudak" - }, - { - "Barkod": 9789752892422, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Sevdalinka", - "Yayinevi": "Everest Yayınları - Roman Dizisi", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9786257124607, - "Dil": "Türkçe", - "Fiyat": 12.6, - "Kitap_Adi": "Çatı Katı", - "Yayinevi": "Eksik Parça", - "Yazar": "Nihan Kaya" - }, - { - "Barkod": 9789754700497, - "Dil": "Türkçe", - "Fiyat": 29.9, - "Kitap_Adi": "Sodom ve Gomore", - "Yayinevi": "İletişim Yayıncılık - Y. K. Karaosmanoğlu Bütün Eserleri Dizisi", - "Yazar": "Yakup Kadri Karaosmanoğlu" - }, - { - "Barkod": 9786254056048, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Zavallı Çocuk", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Namık Kemal" - }, - { - "Barkod": 9786051924410, - "Dil": "Türkçe", - "Fiyat": 28.35, - "Kitap_Adi": "Bir Arkadaşlık", - "Yayinevi": "Hep Kitap", - "Yazar": "Silvia Avallone" - }, - { - "Barkod": 9786050986877, - "Dil": "Türkçe", - "Fiyat": 29.65, - "Kitap_Adi": "Güzel Düştüm İyi Acıdı", - "Yayinevi": "Doğan Novus", - "Yazar": "Tuğba B. Çınar" - }, - { - "Barkod": 9789750803000, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Albertine Kayıp", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Marcel Proust" - }, - { - "Barkod": 9789750807473, - "Dil": "Türkçe", - "Fiyat": 16.9, - "Kitap_Adi": "Sarı Sıcak", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786258495058, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Çukur", - "Yayinevi": "Doğan Kitap", - "Yazar": "Pyun Hye Young" - }, - { - "Barkod": 9789750807213, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Kuşlar da Gitti", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786054927968, - "Dil": "Türkçe", - "Fiyat": 14.4, - "Kitap_Adi": "Ariel ve Seçme Şiirler", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Sylvia Plath" - }, - { - "Barkod": 9789750739156, - "Dil": "Icerik Yok", - "Fiyat": 18.55, - "Kitap_Adi": "Ana", - "Yayinevi": "Can Yayınları", - "Yazar": "Maksim Gorki" - }, - { - "Barkod": 9786051417332, - "Dil": "Türkçe", - "Fiyat": 41.3, - "Kitap_Adi": "Ölmeye Yatmak - Dar Zamanlar 1", - "Yayinevi": "Everest Yayınları", - "Yazar": "Adalet Ağaoğlu" - }, - { - "Barkod": 9786059702713, - "Dil": "Icerik Yok", - "Fiyat": 15.0, - "Kitap_Adi": "Genç Werter'in Acıları-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Yeşim Tükel Kanra, Johann Wolfgang Von Goethe" - }, - { - "Barkod": 9786254486364, - "Dil": "Türkçe", - "Fiyat": 48.75, - "Kitap_Adi": "Hepimiz Gökyüzü Olmak İstedik - Lordlar ve Varisler Kırmızı Şömiz", - "Yayinevi": "Martı Yayınları", - "Yazar": "N.G. Kabal" - }, - { - "Barkod": 9786053328520, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Arayışlar", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Lou Andreas Salome" - }, - { - "Barkod": 9786257382144, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yeşilin Kızı Anne - 8", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Lucy Maud Montgomery" - }, - { - "Barkod": 9786053849063, - "Dil": "Türkçe", - "Fiyat": 9.0, - "Kitap_Adi": "Beyaz Zambaklar Ülkesinde", - "Yayinevi": "Yakamoz Yayınları - Roman Dizisi", - "Yazar": "Grigory Petrov" - }, - { - "Barkod": 9789944886666, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Diriliş - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9786254439483, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Nikah Sarhoşluğu", - "Yayinevi": "Edisyon Kitap", - "Yazar": "Ferhat Uludere" - }, - { - "Barkod": 9789751038685, - "Dil": "Icerik Yok", - "Fiyat": 18.85, - "Kitap_Adi": "Keş On Dı Teybıl", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zafer Algöz" - }, - { - "Barkod": 9789752895546, - "Dil": "Türkçe", - "Fiyat": 45.5, - "Kitap_Adi": "Bereketli Topraklar Üzerinde", - "Yayinevi": "Everest Yayınları", - "Yazar": "Orhan Kemal" - }, - { - "Barkod": 9789754051520, - "Dil": "Türkçe", - "Fiyat": 33.8, - "Kitap_Adi": "Hayvan Mezarlığı - Gecenin Pençesi", - "Yayinevi": "Altın Kitaplar - Meşhur Romanlar Dizisi", - "Yazar": "Stephen King" - }, - { - "Barkod": 9789750803024, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Kör Baykuş", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sadık Hidayet" - }, - { - "Barkod": 9789750732775, - "Dil": "Türkçe", - "Fiyat": 47.25, - "Kitap_Adi": "Foucault Sarkacı", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Umberto Eco" - }, - { - "Barkod": 9786050917260, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Daha", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hakan Günday" - }, - { - "Barkod": 9789752102965, - "Dil": "Icerik Yok", - "Fiyat": 0.0, - "Kitap_Adi": "Roger Ackroyd Cinayeti", - "Yayinevi": "Altın Kitaplar - Klasik Polis Romanları Dizisi", - "Yazar": "Agatha Christie, Çiğdem Öztekin" - }, - { - "Barkod": 9789754371093, - "Dil": "Türkçe", - "Fiyat": 12.3, - "Kitap_Adi": "Elveda Gülsarı", - "Yayinevi": "Ötüken Neşriyat - Cengiz Aytmatov Dizisi", - "Yazar": "Cengiz Aytmatov" - }, - { - "Barkod": 9786050955453, - "Dil": "Icerik Yok", - "Fiyat": 25.2, - "Kitap_Adi": "Göçüp Gidenler Koleksiyoncusu", - "Yayinevi": "Doğan Kitap", - "Yazar": "Şermin Yaşar" - }, - { - "Barkod": 9786050959468, - "Dil": "Icerik Yok", - "Fiyat": 19.9, - "Kitap_Adi": "Rüzgarlar Hep Gençtir", - "Yayinevi": "DEX", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786050916362, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Son Ada", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789751041722, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Otuz Yedi", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Sezin Karameşe" - }, - { - "Barkod": 9786257099974, - "Dil": "Türkçe", - "Fiyat": 35.1, - "Kitap_Adi": "Günebakan", - "Yayinevi": "Müptela Yayınları", - "Yazar": "Ayşegül Çiçekoğlu" - }, - { - "Barkod": 9786050946314, - "Dil": "Icerik Yok", - "Fiyat": 25.2, - "Kitap_Adi": "Tarihi Hoşça Kal Lokantası", - "Yayinevi": "Doğan Kitap", - "Yazar": "Şermin Yaşar" - }, - { - "Barkod": 9789750501487, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Aramızdaki En Kısa Mesafe", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Türkçe Edebiyat Dizisi", - "Yazar": "Barış Bıçakçı" - }, - { - "Barkod": 9786059724296, - "Dil": "Türkçe", - "Fiyat": 13.4, - "Kitap_Adi": "Kovadaki Balıklar", - "Yayinevi": "Postiga", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9786052382509, - "Dil": "Türkçe", - "Fiyat": 10.5, - "Kitap_Adi": "Beyaz Zambaklar Ülkesinde", - "Yayinevi": "Akılçelen Kitaplar", - "Yazar": "Grigory Petrov" - }, - { - "Barkod": 9786257550024, - "Dil": "Türkçe", - "Fiyat": 21.6, - "Kitap_Adi": "Sevgiler Carter", - "Yayinevi": "Yabancı", - "Yazar": "Whitney G." - }, - { - "Barkod": 9786052361580, - "Dil": "Icerik Yok", - "Fiyat": 30.0, - "Kitap_Adi": "Sınır", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786254435126, - "Dil": "Türkçe", - "Fiyat": 32.0, - "Kitap_Adi": "Güçten Sonra Devam", - "Yayinevi": "Mundi", - "Yazar": "Y. Akın Öngör" - }, - { - "Barkod": 9786051856339, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Orhan Veli-Resimli Şiirler-Bez Ciltli", - "Yayinevi": "Everest Yayınları", - "Yazar": "Orhan Veli Kanık" - }, - { - "Barkod": 9786057072238, - "Dil": "Türkçe", - "Fiyat": 16.0, - "Kitap_Adi": "Şeytan Düğünü", - "Yayinevi": "Monokl", - "Yazar": "Nazlı Ayça Özkarahan" - }, - { - "Barkod": 9771307761000, - "Dil": "Türkçe", - "Fiyat": 8.0, - "Kitap_Adi": "Uykusuz - Aralık 2021", - "Yayinevi": "Mürekkep Basım Yayın", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9786257070935, - "Dil": "Türkçe", - "Fiyat": 4.55, - "Kitap_Adi": "Kara Kesiş - Modern Klasikler 155", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Anton Pavloviç Çehov" - }, - { - "Barkod": 9789750730139, - "Dil": "Türkçe", - "Fiyat": 29.05, - "Kitap_Adi": "Yaşama Uğraşı - Günlükler 1935-1950", - "Yayinevi": "Can Yayınları - Yaşam Dizisi", - "Yazar": "Cesare Pavese" - }, - { - "Barkod": 9789750804199, - "Dil": "Türkçe", - "Fiyat": 33.8, - "Kitap_Adi": "Gecenin Sonuna Yolculuk", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Louis Ferdinand Celine" - }, - { - "Barkod": 9789751419774, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "İnferis", - "Yayinevi": "Remzi Kitabevi", - "Yazar": "Mahfi Eğilmez" - }, - { - "Barkod": 9789753426046, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "Pulbiber Mahallesi", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "Didem Madak" - }, - { - "Barkod": 9786053113645, - "Dil": "Icerik Yok", - "Fiyat": 15.0, - "Kitap_Adi": "Beni İçinden Sev", - "Yayinevi": "Destek Yayınları", - "Yazar": "Ahmet Batman" - }, - { - "Barkod": 9789755393087, - "Dil": "Icerik Yok", - "Fiyat": 26.6, - "Kitap_Adi": "Koleksiyoncu", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "John Fowles" - }, - { - "Barkod": 9786051217512, - "Dil": "Türkçe", - "Fiyat": 58.5, - "Kitap_Adi": "Son Alperen Muhsin Yazıcıoğlu'nun Sır Görüşmeleri", - "Yayinevi": "Elips Kitapları", - "Yazar": "Selçuk Özdağ" - }, - { - "Barkod": 9789753631570, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Afrikalı Leo", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Amin Maalouf" - }, - { - "Barkod": 9789759914943, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Piç", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hakan Günday" - }, - { - "Barkod": 9789752116832, - "Dil": "Türkçe", - "Fiyat": 44.2, - "Kitap_Adi": "Cehennem", - "Yayinevi": "Altın Kitaplar - Roman Dizisi", - "Yazar": "Dan Brown" - }, - { - "Barkod": 9786055340384, - "Dil": "Icerik Yok", - "Fiyat": 12.0, - "Kitap_Adi": "Bağbozumu Şarkıları", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Şükrü Erbaş" - }, - { - "Barkod": 9786051738956, - "Dil": "Türkçe", - "Fiyat": 24.4, - "Kitap_Adi": "Kahve Soğumadan Önce", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Toshikazu Kawaguchi" - }, - { - "Barkod": 9786051736204, - "Dil": "Türkçe", - "Fiyat": 40.65, - "Kitap_Adi": "Kibrit Çöpü Mezarlığı-Ölüme Fısıldayan Adam 2", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Büşra Yılmaz" - }, - { - "Barkod": 9789752126879, - "Dil": "Türkçe", - "Fiyat": 35.1, - "Kitap_Adi": "İstanbul'un Hayaletleri", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Yonca Eldener" - }, - { - "Barkod": 9786057755469, - "Dil": "Türkçe", - "Fiyat": 0.0, - "Kitap_Adi": "Suç ve Ceza", - "Yayinevi": "Mahzen", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786057572516, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Kumarbaz-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786053111795, - "Dil": "Türkçe", - "Fiyat": 28.8, - "Kitap_Adi": "Yeşil Mürekkep", - "Yayinevi": "Destek Yayınları", - "Yazar": "Osman Balcıgil" - }, - { - "Barkod": 9786056910647, - "Dil": "Icerik Yok", - "Fiyat": 6.0, - "Kitap_Adi": "Kürk Mantolu Madonna", - "Yayinevi": "Mahzen", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786051714486, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Yağmurun Gelini", - "Yayinevi": "Alfa Yayıncılık - Roman Dizisi", - "Yazar": "Sinan Akyüz" - }, - { - "Barkod": 9786053041702, - "Dil": "Icerik Yok", - "Fiyat": 28.35, - "Kitap_Adi": "Unutursun", - "Yayinevi": "Artemis Yayınları - Roman Dizisi", - "Yazar": "İclal Aydın" - }, - { - "Barkod": 9786257070201, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Sırça Köşk-Türk Edebiyatı Klasikleri 35", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9789754370560, - "Dil": "Türkçe", - "Fiyat": 23.0, - "Kitap_Adi": "Matmazel Noralya'nın Koltuğu", - "Yayinevi": "Ötüken Neşriyat - Edebiyat Dizisi", - "Yazar": "Peyami Safa" - }, - { - "Barkod": 9786257026680, - "Dil": "Türkçe", - "Fiyat": 3.9, - "Kitap_Adi": "İnsancıklar", - "Yayinevi": "Ren Kitap", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786057413758, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Her Şey Eksik Her Şey Tamam", - "Yayinevi": "Küsurat", - "Yazar": "İrem Yaşar" - }, - { - "Barkod": 9786059840736, - "Dil": "Türkçe", - "Fiyat": 12.8, - "Kitap_Adi": "Sherlock Holmes Kızıl Dosya", - "Yayinevi": "Ren Kitap - Roman Dizisi", - "Yazar": "Sir Arthur Conan Doyle" - }, - { - "Barkod": 9786052318003, - "Dil": "Icerik Yok", - "Fiyat": 23.2, - "Kitap_Adi": "Seher", - "Yayinevi": "Dipnot", - "Yazar": "Selahattin Demirtaş" - }, - { - "Barkod": 9789755393223, - "Dil": "Türkçe", - "Fiyat": 21.0, - "Kitap_Adi": "Dövüş Kulübü", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "Chuck Palahniuk" - }, - { - "Barkod": 9786058240988, - "Dil": "Türkçe", - "Fiyat": 21.85, - "Kitap_Adi": "Perfect Blue - Mükemmel Başkalaşım", - "Yayinevi": "Komik Şeyler", - "Yazar": "Yoşikazu Takeuçi" - }, - { - "Barkod": 9786051422787, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Bir Cihan Kafes", - "Yayinevi": "Artemis Yayınları - Roman Dizisi", - "Yazar": "İclal Aydın" - }, - { - "Barkod": 9786052957486, - "Dil": "Icerik Yok", - "Fiyat": 8.45, - "Kitap_Adi": "Adem'den Önce", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jack London" - }, - { - "Barkod": 9789944889896, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Yanlışlıklar Komedyası-Hasan Ali Yü", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "William Shakespeare" - }, - { - "Barkod": 9786254490989, - "Dil": "Türkçe", - "Fiyat": 20.3, - "Kitap_Adi": "Cehennem Çiçeği", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Alper Canıgüz" - }, - { - "Barkod": 9789750738326, - "Dil": "Icerik Yok", - "Fiyat": 17.5, - "Kitap_Adi": "Martin Eden", - "Yayinevi": "Can Yayınları", - "Yazar": "Jack London" - }, - { - "Barkod": 9789754703139, - "Dil": "Türkçe", - "Fiyat": 11.4, - "Kitap_Adi": "Kambur", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Türkçe Edebiyat Dizisi", - "Yazar": "Şule Gürbüz" - }, - { - "Barkod": 9786257671309, - "Dil": "Türkçe", - "Fiyat": 17.4, - "Kitap_Adi": "Var Bir Hayalimiz", - "Yayinevi": "İndigo Kitap", - "Yazar": "Uğur Gökbulut, Talha Bora Öge" - }, - { - "Barkod": 9786055057909, - "Dil": "Icerik Yok", - "Fiyat": 30.85, - "Kitap_Adi": "Agapi Ölümsüz Aşk", - "Yayinevi": "Pena Yayınları", - "Yazar": "Sarah Jio" - }, - { - "Barkod": 9786057404718, - "Dil": "Türkçe", - "Fiyat": 25.85, - "Kitap_Adi": "Bibury Cadısı", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Nesrin Öz" - }, - { - "Barkod": 9786257999410, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Tembellik Hakkı-Hasan Ali Yücel Klasikler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Paul Lafargue" - }, - { - "Barkod": 9789750813818, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Bir Kış Gecesi Eğer Bir Yolcu", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Italo Calvino" - }, - { - "Barkod": 9786257550017, - "Dil": "Türkçe", - "Fiyat": 21.6, - "Kitap_Adi": "Josh ve Hazel'ın Sevgili Olmama Rehberi", - "Yayinevi": "Yabancı", - "Yazar": "Christina Lauren" - }, - { - "Barkod": 9786057055569, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Deniz Ne Kadar Güzel", - "Yayinevi": "Altıkırkbeş Basın Yayın", - "Yazar": "Yiğit Karaahmet" - }, - { - "Barkod": 9789754700350, - "Dil": "Türkçe", - "Fiyat": 29.9, - "Kitap_Adi": "Günlük", - "Yayinevi": "İletişim Yayıncılık - Oğuz Atay Bütün Eserleri Dizisi", - "Yazar": "Oğuz Atay" - }, - { - "Barkod": 9789750807077, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Bir Ada Hikayesi 2 - Karıncanın Su İçtiği", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786051410036, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Uyumsuz Defne Kaman'ın Maceraları-Su", - "Yayinevi": "Everest Yayınları", - "Yazar": "Buket Uzuner" - }, - { - "Barkod": 9786053322924, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Küçük Burjuvalar", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Maksim Gorki" - }, - { - "Barkod": 9786059702942, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Fırtınada Yanacaksın", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "John Verdon" - }, - { - "Barkod": 9786050952544, - "Dil": "Icerik Yok", - "Fiyat": 18.8, - "Kitap_Adi": "Gölgeler", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789752125001, - "Dil": "Türkçe", - "Fiyat": 44.2, - "Kitap_Adi": "Yabancı", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Stephen King" - }, - { - "Barkod": 9789750833533, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Muhtelif Evhamlar Kitabı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ömür İklim Demir" - }, - { - "Barkod": 9786059702263, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Yeraltından Notlar-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786055465933, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Yer Altından Notlar", - "Yayinevi": "Alter Yayınları", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789750808869, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Ses ve Öfke", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "William Faulkner" - }, - { - "Barkod": 9786052063859, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Hayallerin Allah'a Emanet", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Nebi Yıldız" - }, - { - "Barkod": 9786257371711, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Yıldızları Hesaplamak", - "Yayinevi": "Eksik Parça", - "Yazar": "Mary Robinette Kowal" - }, - { - "Barkod": 9789753482745, - "Dil": "Icerik Yok", - "Fiyat": 21.0, - "Kitap_Adi": "Karartma Geceleri-Bütün Eserleri", - "Yayinevi": "Çınar Yayınları", - "Yazar": "Rıfat Ilgaz" - }, - { - "Barkod": 9786257498234, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Maskesiz Balo", - "Yayinevi": "İkinci Adam Yayınları", - "Yazar": "Gülsevin Garip" - }, - { - "Barkod": 9786257026420, - "Dil": "Türkçe", - "Fiyat": 60.5, - "Kitap_Adi": "H.P. Lovecraft Tek Cilt Özel Basım", - "Yayinevi": "Ren Kitap", - "Yazar": "Howard Phillips Lovecraft" - }, - { - "Barkod": 9789750739569, - "Dil": "Icerik Yok", - "Fiyat": 22.75, - "Kitap_Adi": "Çılgın Kalabalıktan Uzak", - "Yayinevi": "Can Yayınları", - "Yazar": "Thomas Hardy" - }, - { - "Barkod": 9786257382731, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "Deniz Kızı Ağladığında", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Ekin S. Koch" - }, - { - "Barkod": 9789750733666, - "Dil": "Türkçe", - "Fiyat": 19.25, - "Kitap_Adi": "Joseph Fouche - Bir Politikacının Portresi", - "Yayinevi": "Can Yayınları - Dünya Klasikleri Dizisi", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786053425854, - "Dil": "Türkçe", - "Fiyat": 9.0, - "Kitap_Adi": "1984", - "Yayinevi": "Akçağ Yayınları", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786254054594, - "Dil": "Türkçe", - "Fiyat": 12.35, - "Kitap_Adi": "Balonla Beş Hafta - Modern Klasikler 174", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jules Verne" - }, - { - "Barkod": 9786257550703, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Kağıt Kuğu", - "Yayinevi": "Yabancı", - "Yazar": "Leylah Attar" - }, - { - "Barkod": 9786254054631, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Şiirli Yastık", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sunay Akın" - }, - { - "Barkod": 9789750732836, - "Dil": "Türkçe", - "Fiyat": 50.05, - "Kitap_Adi": "Körburun", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Hikmet Hükümenoğlu" - }, - { - "Barkod": 9786053325949, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Köpek Kalbi", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Mihail Bulgakov" - }, - { - "Barkod": 2789735652392, - "Dil": "Türkçe", - "Fiyat": 45.0, - "Kitap_Adi": "Benim Küçük Sırrım - 2 Hediyeli Özel Kutu", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Dilara Keskin" - }, - { - "Barkod": 9786054629978, - "Dil": "Türkçe", - "Fiyat": 16.5, - "Kitap_Adi": "Gece", - "Yayinevi": "Koridor Yayıncılık - Yayınevi Genel Dizisi", - "Yazar": "Elie Wiesel" - }, - { - "Barkod": 9789753420792, - "Dil": "Icerik Yok", - "Fiyat": 28.0, - "Kitap_Adi": "En Uzak Sahil-Yerdeniz Üçlemesi 3", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "Ursula K. Le Guin" - }, - { - "Barkod": 9786052060445, - "Dil": "Icerik Yok", - "Fiyat": 40.0, - "Kitap_Adi": "Tesla Seti Kutulu - 3 Kitap Takım", - "Yayinevi": "Zeplin Kitap", - "Yazar": "Kolektif" - }, - { - "Barkod": 9786257671200, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Sen On Yedi Yaşımsın", - "Yayinevi": "İndigo Kitap", - "Yazar": "Miraç Çağrı Aktaş" - }, - { - "Barkod": 9786052959008, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Zehra-Günümüz Türkçesiyle", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Nabizade Nazım" - }, - { - "Barkod": 9786257966344, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "Tesla ve Edison: Akıl Savaşları", - "Yayinevi": "Zeplin Kitap", - "Yazar": "Joel Martin" - }, - { - "Barkod": 9789750719981, - "Dil": "Icerik Yok", - "Fiyat": 40.95, - "Kitap_Adi": "Simyacı 25. Yıl Özel Baskı", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Paulo Coelho" - }, - { - "Barkod": 9786057572967, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Zaman Makinesi - Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "H.G. Wells" - }, - { - "Barkod": 9786057583673, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yeşilin Kızı Anne", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Lucy Maud Montgomery" - }, - { - "Barkod": 9786052987025, - "Dil": "Türkçe", - "Fiyat": 11.4, - "Kitap_Adi": "Dorian Grayin Portresi - Kırmızı Kedi Klasikler", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Oscar Wilde" - }, - { - "Barkod": 9786257359009, - "Dil": "Türkçe", - "Fiyat": 31.85, - "Kitap_Adi": "Akıncı", - "Yayinevi": "Nemesis Kitap", - "Yazar": "Monica McCarty" - }, - { - "Barkod": 9786050381009, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Androidler Elektrikli Koyun Düşler mi?", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Philip K. Dick" - }, - { - "Barkod": 9786054977864, - "Dil": "Icerik Yok", - "Fiyat": 16.25, - "Kitap_Adi": "Milenaya Mektuplar", - "Yayinevi": "İlgi Kültür Sanat Yayınları", - "Yazar": "Franz Kafka" - }, - { - "Barkod": 9789754370546, - "Dil": "Türkçe", - "Fiyat": 9.85, - "Kitap_Adi": "Cengiz Han'a Küsen Bulut", - "Yayinevi": "Ötüken Neşriyat - Cengiz Aytmatov Dizisi", - "Yazar": "Cengiz Aytmatov" - }, - { - "Barkod": 9786051853765, - "Dil": "Icerik Yok", - "Fiyat": 10.45, - "Kitap_Adi": "Adı Aylin-Midi Boy", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9789752891746, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Çocuksun Sen", - "Yayinevi": "Everest Yayınları - Şiir Dizisi", - "Yazar": "Ahmet Telli" - }, - { - "Barkod": 9789750723513, - "Dil": "Türkçe", - "Fiyat": 50.05, - "Kitap_Adi": "Bir Maniniz Yoksa Annemler Size Gelecek", - "Yayinevi": "Can Yayınları - Türk Edebiyatı Dizisi", - "Yazar": "Ayfer Tunç" - }, - { - "Barkod": 9786057572745, - "Dil": "Türkçe", - "Fiyat": 28.5, - "Kitap_Adi": "Jane Eyre-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Charlotte Bronte" - }, - { - "Barkod": 9789754374063, - "Dil": "Türkçe", - "Fiyat": 14.8, - "Kitap_Adi": "Yılkı Atı", - "Yayinevi": "Ötüken Neşriyat - Edebiyat Dizisi", - "Yazar": "Abbas Sayar" - }, - { - "Barkod": 9789753631549, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Yaşamın Ucuna Yolculuk", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Tezer Özlü" - }, - { - "Barkod": 9786053118190, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Akıllandım Artık Şimdi Daha Deliyim", - "Yayinevi": "Destek Yayınları", - "Yazar": "Nilgün Bodur" - }, - { - "Barkod": 9786053326533, - "Dil": "Türkçe", - "Fiyat": 9.75, - "Kitap_Adi": "Benim Üniversitelerim", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Maksim Gorki" - }, - { - "Barkod": 9786056785955, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Leyla ile Mecnun", - "Yayinevi": "Küsurat", - "Yazar": "Burak Aksak" - }, - { - "Barkod": 9789753424615, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Öteki Rüzgar - Yerdeniz Üçlemesi 5", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "Ursula K. Le Guin" - }, - { - "Barkod": 9786257310741, - "Dil": "Türkçe", - "Fiyat": 28.45, - "Kitap_Adi": "Yalancılar ve Yabancılar", - "Yayinevi": "Ren Kitap", - "Yazar": "Emre Gül" - }, - { - "Barkod": 9786254054433, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Dünya'nın Ucundaki Fener-Modern Klasikler 173", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jules Verne" - }, - { - "Barkod": 9786057086150, - "Dil": "Türkçe", - "Fiyat": 22.6, - "Kitap_Adi": "Bir Ceza Avukatının Anıları", - "Yayinevi": "KKX Yayıncılık", - "Yazar": "Faruk Erem" - }, - { - "Barkod": 9789750745768, - "Dil": "Türkçe", - "Fiyat": 11.55, - "Kitap_Adi": "Üvercinka", - "Yayinevi": "Can Yayınları", - "Yazar": "Cemal Süreya" - }, - { - "Barkod": 9786254486678, - "Dil": "Türkçe", - "Fiyat": 44.85, - "Kitap_Adi": "Şiddetli Hazlar", - "Yayinevi": "Martı Yayınları", - "Yazar": "Chloe Gong" - }, - { - "Barkod": 9786052954188, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "Mürebbiye-Türk Edebiyat Klasikleri 2", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Hüseyin Rahmi Gürpınar" - }, - { - "Barkod": 9786051733265, - "Dil": "Icerik Yok", - "Fiyat": 40.65, - "Kitap_Adi": "Siyah Kuğu 2-Ruh Kadehi", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Beyza Aksoy" - }, - { - "Barkod": 9786258475128, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Topraktan Dönenler", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Ray Bradbury" - }, - { - "Barkod": 9786057879134, - "Dil": "Icerik Yok", - "Fiyat": 22.5, - "Kitap_Adi": "Kya'nın Şarkı Söylediği Yer", - "Yayinevi": "Salon Yayınları", - "Yazar": "Delia Owens" - }, - { - "Barkod": 9786257135894, - "Dil": "Türkçe", - "Fiyat": 25.85, - "Kitap_Adi": "Sessizliğin Peşinde", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Jane Casey" - }, - { - "Barkod": 9786052205259, - "Dil": "Icerik Yok", - "Fiyat": 17.65, - "Kitap_Adi": "Ağaçlar", - "Yayinevi": "Kolektif Kitap", - "Yazar": "Hermann Hesse" - }, - { - "Barkod": 9789753639101, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Swann' ların Tarafı - Kayıp Zamanın İzinde 1. Kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Marcel Proust" - }, - { - "Barkod": 9786050807073, - "Dil": "Türkçe", - "Fiyat": 39.55, - "Kitap_Adi": "Nar Ağacı", - "Yayinevi": "Timaş Yayınları - Roman Dizisi", - "Yazar": "Nazan Bekiroğlu" - }, - { - "Barkod": 9789752123267, - "Dil": "Icerik Yok", - "Fiyat": 44.2, - "Kitap_Adi": "Başlangıç", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Dan Brown" - }, - { - "Barkod": 9786054764297, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Bütün Şiirleri 3", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Şükrü Erbaş" - }, - { - "Barkod": 9786257699075, - "Dil": "Türkçe", - "Fiyat": 5.9, - "Kitap_Adi": "Yoğun Bakımdan Mektuplar", - "Yayinevi": "Perseus Yayınevi", - "Yazar": "Dr. Nilüfer" - }, - { - "Barkod": 9786257026413, - "Dil": "Türkçe", - "Fiyat": 60.5, - "Kitap_Adi": "Sabahattn Ali Tek Cilt", - "Yayinevi": "Ren Kitap", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786052792964, - "Dil": "Türkçe", - "Fiyat": 21.85, - "Kitap_Adi": "Bu Efsane Hikayelerden Neden Haberim Yok?", - "Yayinevi": "Erdem Yayınları", - "Yazar": "Kadir Koç" - }, - { - "Barkod": 9786052982778, - "Dil": "Türkçe", - "Fiyat": 28.8, - "Kitap_Adi": "İsa'ya Göre İncil", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Jose Saramago" - }, - { - "Barkod": 9786053758235, - "Dil": "Icerik Yok", - "Fiyat": 20.4, - "Kitap_Adi": "Gizli Özne", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Nihan Kaya" - }, - { - "Barkod": 9786053043515, - "Dil": "Türkçe", - "Fiyat": 41.3, - "Kitap_Adi": "Üç Kız Kardeş", - "Yayinevi": "Artemis Yayınları", - "Yazar": "İclal Aydın" - }, - { - "Barkod": 9771300338001, - "Dil": "Türkçe", - "Fiyat": 7.0, - "Kitap_Adi": "Bilim ve Teknik - Aralık 2021", - "Yayinevi": "Tübitak Yayınları", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789752890299, - "Dil": "Türkçe", - "Fiyat": 38.5, - "Kitap_Adi": "Uzun Beyaz Bulut Gelibolu", - "Yayinevi": "Everest Yayınları - Türkçe Edebiyat Dizisi", - "Yazar": "Buket Uzuner" - }, - { - "Barkod": 9789751039613, - "Dil": "Icerik Yok", - "Fiyat": 25.35, - "Kitap_Adi": "Nigahdar", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Başak Sayan" - }, - { - "Barkod": 9786054188239, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "Sil Baştan", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "Ken Grimwood" - }, - { - "Barkod": 9772687193009, - "Dil": "Türkçe", - "Fiyat": 25.0, - "Kitap_Adi": "Kafa Çocuk ve Bilim - Kasım/Aralık 2021", - "Yayinevi": "Kafa Grup Reklam", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789751039583, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Benden Ne Olur", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Aslı T. Kızmaz" - }, - { - "Barkod": 9786059961660, - "Dil": "Türkçe", - "Fiyat": 24.4, - "Kitap_Adi": "Her Gün Hüzün - Sol ayağım 2", - "Yayinevi": "Nemesis Kitap", - "Yazar": "Christy Brown" - }, - { - "Barkod": 9786052060230, - "Dil": "Icerik Yok", - "Fiyat": 10.0, - "Kitap_Adi": "Tesla-Aforizmalar", - "Yayinevi": "Zeplin Kitap", - "Yazar": "Nikola Tesla" - }, - { - "Barkod": 9789759953065, - "Dil": "Türkçe", - "Fiyat": 18.4, - "Kitap_Adi": "Menekşeli Mektup", - "Yayinevi": "Dergah Yayınları", - "Yazar": "Mustafa Kutlu" - }, - { - "Barkod": 9786050832310, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Sür Pulluğunu Ölülerin Kemikleri Üzerinde", - "Yayinevi": "Timaş Yayınları", - "Yazar": "Olga Tokarczuk" - }, - { - "Barkod": 9786053321194, - "Dil": "Türkçe", - "Fiyat": 13.0, - "Kitap_Adi": "Huckleberry Finn'in Maceraları", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Mark Twain" - }, - { - "Barkod": 9786051923758, - "Dil": "Türkçe", - "Fiyat": 24.6, - "Kitap_Adi": "Unutma Dersleri", - "Yayinevi": "Hep Kitap", - "Yazar": "Nermin Yıldırım" - }, - { - "Barkod": 9786057728456, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "Dansa Davet", - "Yayinevi": "Sel Yayıncılık", - "Yazar": "Jean Teule" - }, - { - "Barkod": 9786053114673, - "Dil": "Icerik Yok", - "Fiyat": 32.4, - "Kitap_Adi": "Nefesi Tutku Olan Kadın-Afife Jale", - "Yayinevi": "Destek Yayınları", - "Yazar": "Osman Balcıgil" - }, - { - "Barkod": 9789750731808, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Mary Stuart", - "Yayinevi": "Can Yayınları - Biyografi Dizisi", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789750848643, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Kum Tefrikaları", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ömür İklim Demir" - }, - { - "Barkod": 9786050987041, - "Dil": "Türkçe", - "Fiyat": 36.4, - "Kitap_Adi": "İşitiyor musun Memet?", - "Yayinevi": "Doğan Kitap", - "Yazar": "Sibel Oral" - }, - { - "Barkod": 9786257858991, - "Dil": "Türkçe", - "Fiyat": 4.9, - "Kitap_Adi": "Giden Gitmiş Hüznü Ayaklandırmak Boşuna", - "Yayinevi": "Gece Kitaplığı", - "Yazar": "Ahmed Arif" - }, - { - "Barkod": 9786257027199, - "Dil": "Türkçe", - "Fiyat": 14.5, - "Kitap_Adi": "Batan Güneş", - "Yayinevi": "Olvido", - "Yazar": "Osamu Dazai" - }, - { - "Barkod": 9786053608899, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Baştan Çıkarıcının Günlüğü - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Soren Kierkegaard" - }, - { - "Barkod": 9786257382601, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Benim Küçük Sırrım - 2", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Dilara Keskin" - }, - { - "Barkod": 9789755397214, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "Bir Son Duygusu", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "Julian Barnes" - }, - { - "Barkod": 9786051513409, - "Dil": "Türkçe", - "Fiyat": 39.0, - "Kitap_Adi": "Ahirette 45 Gün - Yaşanmış Gerçeküstü Bir Hadise", - "Yayinevi": "Hayat Yayıncılık", - "Yazar": "Mehmet Ali Bulut" - }, - { - "Barkod": 2789788610530, - "Dil": "Icerik Yok", - "Fiyat": 30.0, - "Kitap_Adi": "Stefan Zweig Seti - 6 Kitap Takım", - "Yayinevi": "İndigo Kitap", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786052954362, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "Üç Yıl", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Anton Pavloviç Çehov" - }, - { - "Barkod": 9789750523601, - "Dil": "Icerik Yok", - "Fiyat": 32.2, - "Kitap_Adi": "Dünyadan Aşağı", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Gaye Boralıoğlu" - }, - { - "Barkod": 9786051736921, - "Dil": "Türkçe", - "Fiyat": 41.95, - "Kitap_Adi": "Açık Yaralar ve Dikiş İzleri", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Beyza Aksoy" - }, - { - "Barkod": 9786057775139, - "Dil": "Türkçe", - "Fiyat": 5.5, - "Kitap_Adi": "Bir İdam Mahkumunun Son Günü", - "Yayinevi": "Zeplin Kitap", - "Yazar": "Victor Hugo" - }, - { - "Barkod": 9786258488159, - "Dil": "Türkçe", - "Fiyat": 25.35, - "Kitap_Adi": "İçimizdeki Ses", - "Yayinevi": "Panama Yayıncılık", - "Yazar": "Brian Freeman" - }, - { - "Barkod": 9786051922478, - "Dil": "Icerik Yok", - "Fiyat": 25.85, - "Kitap_Adi": "Saklı Bahçeler Haritası", - "Yayinevi": "Hep Kitap", - "Yazar": "Nermin Yıldırım" - }, - { - "Barkod": 8696602029161, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "İmzalı - Kaybolan", - "Yayinevi": "Doğan Kitap", - "Yazar": "Tarık Tufan" - }, - { - "Barkod": 9786050975680, - "Dil": "Türkçe", - "Fiyat": 39.2, - "Kitap_Adi": "Dans Dans Dans", - "Yayinevi": "Doğan Kitap", - "Yazar": "Haruki Murakami" - }, - { - "Barkod": 9786052987902, - "Dil": "Türkçe", - "Fiyat": 14.4, - "Kitap_Adi": "Afet", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Özlem Özdemir" - }, - { - "Barkod": 9789750846342, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Kukla", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9789750529726, - "Dil": "Türkçe", - "Fiyat": 27.65, - "Kitap_Adi": "Albion'un Kızı", - "Yayinevi": "İletişim Yayıncılık - İletişim Klasikleri Dizisi", - "Yazar": "Anton Pavloviç Çehov" - }, - { - "Barkod": 9786053117414, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Aynalı Tılsımlar Dükkanı", - "Yayinevi": "Destek Yayınları", - "Yazar": "Melda Kamhi Kosif" - }, - { - "Barkod": 9789750754050, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Bir Vatan Evladının Notları", - "Yayinevi": "Can Yayınları", - "Yazar": "James Baldwin" - }, - { - "Barkod": 9786059479349, - "Dil": "Türkçe", - "Fiyat": 13.3, - "Kitap_Adi": "Bro on the Go: Güncel Kurallar", - "Yayinevi": "Kurukafa", - "Yazar": "Barney Stinson" - }, - { - "Barkod": 9789750739880, - "Dil": "Icerik Yok", - "Fiyat": 22.4, - "Kitap_Adi": "Karamazov Kardeşler", - "Yayinevi": "Can Yayınları", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786254411410, - "Dil": "Türkçe", - "Fiyat": 16.0, - "Kitap_Adi": "Kendine Yabancılaşan İnsan", - "Yayinevi": "Destek Yayınları", - "Yazar": "Fikret Yıldırım" - }, - { - "Barkod": 9786057477606, - "Dil": "Türkçe", - "Fiyat": 37.8, - "Kitap_Adi": "Kadın Koruma", - "Yayinevi": "Otantik Kitap", - "Yazar": "Selma Kahraman" - }, - { - "Barkod": 9789753421959, - "Dil": "Icerik Yok", - "Fiyat": 17.5, - "Kitap_Adi": "Sıfır Noktasındaki Kadın", - "Yayinevi": "Metis Yayıncılık - Yaşadığımız Dünya Dizisi", - "Yazar": "Neval El Seddavi" - }, - { - "Barkod": 9789750725029, - "Dil": "Türkçe", - "Fiyat": 16.1, - "Kitap_Adi": "Tersi ve Yüzü", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Albert Camus" - }, - { - "Barkod": 9789750745966, - "Dil": "Türkçe", - "Fiyat": 7.7, - "Kitap_Adi": "Kızıl Veba", - "Yayinevi": "Can Yayınları", - "Yazar": "Jack London" - }, - { - "Barkod": 9789750737107, - "Dil": "Türkçe", - "Fiyat": 23.8, - "Kitap_Adi": "Işığın Savaşçısının El Kitabı", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Paulo Coelho" - }, - { - "Barkod": 9786052958896, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Sergüzeşt-Günümüz Türkçesiyle", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Samipaşazade Sezai" - }, - { - "Barkod": 9786051738178, - "Dil": "Türkçe", - "Fiyat": 41.95, - "Kitap_Adi": "Bülbülü Öldürmek", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Harper Lee" - }, - { - "Barkod": 9786052987728, - "Dil": "Türkçe", - "Fiyat": 19.8, - "Kitap_Adi": "Çocukluğumu Bindirdim Tramvaya O Gitti Ben Kaldım Yaya", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Müjdat Gezen" - }, - { - "Barkod": 9789750846311, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Bir Ses Böler Geceyi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9789753428767, - "Dil": "Türkçe", - "Fiyat": 14.0, - "Kitap_Adi": "Grapon Kağıtları", - "Yayinevi": "Metis Yayıncılık - Edebiyat-Şiir Dizisi", - "Yazar": "Didem Madak" - }, - { - "Barkod": 9786053483250, - "Dil": "Türkçe", - "Fiyat": 31.85, - "Kitap_Adi": "Kitap Hırsızı", - "Yayinevi": "Martı Yayınları", - "Yazar": "Markus Zusak" - }, - { - "Barkod": 9786257498821, - "Dil": "Türkçe", - "Fiyat": 32.5, - "Kitap_Adi": "Evaren Yemin Bozanlar", - "Yayinevi": "İkinci Adam Yayınları", - "Yazar": "Mert Güven" - }, - { - "Barkod": 9786052957462, - "Dil": "Icerik Yok", - "Fiyat": 7.8, - "Kitap_Adi": "Günümüz Türkçesiyle Gulyabani", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Hüseyin Rahmi Gürpınar" - }, - { - "Barkod": 9786053325482, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Ekmeğimi Kazanırken", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Maksim Gorki" - }, - { - "Barkod": 9786057611369, - "Dil": "Türkçe", - "Fiyat": 33.0, - "Kitap_Adi": "Karantina Dördüncü Perde-Mahşerin Dört Atlısının Hikayesi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9789754706994, - "Dil": "Türkçe", - "Fiyat": 14.65, - "Kitap_Adi": "Eylembilim", - "Yayinevi": "İletişim Yayıncılık - Oğuz Atay Bütün Eserleri Dizisi", - "Yazar": "Oğuz Atay" - }, - { - "Barkod": 9789751040312, - "Dil": "Türkçe", - "Fiyat": 16.9, - "Kitap_Adi": "Gwendy'nin Düğme Kutusu", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Stephen King, Richard Chizmar" - }, - { - "Barkod": 9786257781244, - "Dil": "Türkçe", - "Fiyat": 21.75, - "Kitap_Adi": "Heidi - Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Johanna Spyri" - }, - { - "Barkod": 9786053609940, - "Dil": "Türkçe", - "Fiyat": 7.15, - "Kitap_Adi": "Üç Ölüm - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Edebiyat Dizisi", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9786257671514, - "Dil": "Türkçe", - "Fiyat": 27.0, - "Kitap_Adi": "Yıldızların Laneti", - "Yayinevi": "İndigo Kitap", - "Yazar": "Sena Nur Işık" - }, - { - "Barkod": 9786054764983, - "Dil": "Türkçe", - "Fiyat": 22.8, - "Kitap_Adi": "Alıklar Birliği", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "John Kennedy Toole" - }, - { - "Barkod": 9786056840562, - "Dil": "Icerik Yok", - "Fiyat": 20.8, - "Kitap_Adi": "Madenci", - "Yayinevi": "Jaguar Kitap", - "Yazar": "Natsume Soseki" - }, - { - "Barkod": 9786059115896, - "Dil": "Türkçe", - "Fiyat": 8.5, - "Kitap_Adi": "Mutluluk Dediğimiz Şey", - "Yayinevi": "Zeplin Kitap", - "Yazar": "Sigmund Freud" - }, - { - "Barkod": 9786257999632, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Buzullar Arasında Bir Kış-Modern Klasikler 145", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jules Verne" - }, - { - "Barkod": 9786257382267, - "Dil": "Türkçe", - "Fiyat": 235.2, - "Kitap_Adi": "Yeşilin Kızı Anne Kutulu Set - 8 Kitap Takım Bez Çanta Hediyeli", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Lucy Maud Montgomery" - }, - { - "Barkod": 9786057572134, - "Dil": "Icerik Yok", - "Fiyat": 18.75, - "Kitap_Adi": "Kendinle Savaşma Sanatı", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Fumitake Koga" - }, - { - "Barkod": 9786057572691, - "Dil": "Türkçe", - "Fiyat": 13.5, - "Kitap_Adi": "Palto-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Nikolay Gogol" - }, - { - "Barkod": 9789750801990, - "Dil": "Türkçe", - "Fiyat": 13.0, - "Kitap_Adi": "Ölümcül Kimlikler", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Amin Maalouf" - }, - { - "Barkod": 9789750755415, - "Dil": "Türkçe", - "Fiyat": 23.45, - "Kitap_Adi": "Dalga", - "Yayinevi": "Can Yayınları", - "Yazar": "Giulio Cavalli" - }, - { - "Barkod": 9786257442572, - "Dil": "Türkçe", - "Fiyat": 16.2, - "Kitap_Adi": "Lanetli Otel", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Wilkie Collins" - }, - { - "Barkod": 9789759917975, - "Dil": "Icerik Yok", - "Fiyat": 26.6, - "Kitap_Adi": "Azil", - "Yayinevi": "Doğan Kitap", - "Yazar": "Hakan Günday" - }, - { - "Barkod": 9786254140303, - "Dil": "Türkçe", - "Fiyat": 28.95, - "Kitap_Adi": "Fısıltı Adam", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Alex North" - }, - { - "Barkod": 9789750807251, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Yer Demir Gök Bakır - Dağın Öteki Yüzü 2", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9789752123144, - "Dil": "Icerik Yok", - "Fiyat": 46.8, - "Kitap_Adi": "Sis-Tam Metin", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Stephen King" - }, - { - "Barkod": 9786053327837, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Feniçka", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Lou Andreas Salome" - }, - { - "Barkod": 9786051737638, - "Dil": "Türkçe", - "Fiyat": 40.65, - "Kitap_Adi": "Bir Gün Mutlaka", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Debbie Macomber" - }, - { - "Barkod": 9786257131995, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Suyun Fısıltısı", - "Yayinevi": "Çınaraltı Yayınları", - "Yazar": "Nilgün Zaimoğlu" - }, - { - "Barkod": 9786052398470, - "Dil": "Icerik Yok", - "Fiyat": 4.9, - "Kitap_Adi": "Savaş Sanatı", - "Yayinevi": "Ren Kitap", - "Yazar": "Sun Tzu" - }, - { - "Barkod": 9789944886253, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Üç Silahşör - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Alexandre Dumas" - }, - { - "Barkod": 9786059702300, - "Dil": "Türkçe", - "Fiyat": 21.75, - "Kitap_Adi": "Vadideki Zambak-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "Honore de Balzac" - }, - { - "Barkod": 9786059702317, - "Dil": "Türkçe", - "Fiyat": 28.5, - "Kitap_Adi": "Uğultulu Tepeler-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "Emily Bronte" - }, - { - "Barkod": 9786059127486, - "Dil": "Türkçe", - "Fiyat": 3.9, - "Kitap_Adi": "Beyaz Geceler", - "Yayinevi": "Panama Yayıncılık", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789754589030, - "Dil": "Türkçe", - "Fiyat": 45.5, - "Kitap_Adi": "Suç ve Ceza - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789755390895, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Zen ve Motosiklet Bakım Sanatı - Değerlerin Sorgulanması", - "Yayinevi": "Ayrıntı Yayınları", - "Yazar": "Robert M. Pirsig" - }, - { - "Barkod": 9786057906687, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Yarın Ola Hayrola", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Nebi Yıldız" - }, - { - "Barkod": 9786257671033, - "Dil": "Türkçe", - "Fiyat": 33.0, - "Kitap_Adi": "Asel", - "Yayinevi": "İndigo Kitap", - "Yazar": "Sena Nur Işık" - }, - { - "Barkod": 9786254051401, - "Dil": "Türkçe", - "Fiyat": 4.55, - "Kitap_Adi": "Karabibik - Türk Edebiyatı Klasikleri 49", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Nabizade Nazım" - }, - { - "Barkod": 9786257999267, - "Dil": "Türkçe", - "Fiyat": 4.55, - "Kitap_Adi": "Kürk Mantolu Madonna-Türk Edebiyat Klasikleri 29", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786050917703, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Koşmasaydım Yazamazdım", - "Yayinevi": "Doğan Kitap", - "Yazar": "Haruki Murakami" - }, - { - "Barkod": 9786053325079, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Kötülük Çiçekleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Charles Baudelaire" - }, - { - "Barkod": 9786059702232, - "Dil": "Türkçe", - "Fiyat": 28.5, - "Kitap_Adi": "Aşk ve Gurur-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık - Yayınevi Genel Dizisi", - "Yazar": "Jane Austen" - }, - { - "Barkod": 9789750845871, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "Sokağın Zulası", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9789753631488, - "Dil": "Türkçe", - "Fiyat": 39.0, - "Kitap_Adi": "Ulysses", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "James Joyce" - }, - { - "Barkod": 9789755708836, - "Dil": "Icerik Yok", - "Fiyat": 35.0, - "Kitap_Adi": "Cennetin Doğusu", - "Yayinevi": "Sel Yayıncılık", - "Yazar": "John Steinbeck" - }, - { - "Barkod": 9786059144964, - "Dil": "Icerik Yok", - "Fiyat": 6.6, - "Kitap_Adi": "Genç Werther'in Acıları", - "Yayinevi": "İndigo Kitap", - "Yazar": "Johann Wolfgang Von Goethe" - }, - { - "Barkod": 9789750740244, - "Dil": "Icerik Yok", - "Fiyat": 21.7, - "Kitap_Adi": "Sarıyaz", - "Yayinevi": "Can Yayınları", - "Yazar": "Mahir Ünsal Eriş" - }, - { - "Barkod": 9789751038678, - "Dil": "Türkçe", - "Fiyat": 14.3, - "Kitap_Adi": "Dahi Diktatör", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "A. M. Celal Şengör" - }, - { - "Barkod": 9786257314442, - "Dil": "Türkçe", - "Fiyat": 25.6, - "Kitap_Adi": "Okuma Günlüğü - Motifli Kapak", - "Yayinevi": "DeliDolu", - "Yazar": "Kolektif" - }, - { - "Barkod": 9789750721762, - "Dil": "Türkçe", - "Fiyat": 16.8, - "Kitap_Adi": "Aziz Bey Hadisesi", - "Yayinevi": "Can Yayınları - Türk Edebiyatı Dizisi", - "Yazar": "Ayfer Tunç" - }, - { - "Barkod": 9789753636032, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Guermantes Tarafı-Kayıp Zamanın İzi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Marcel Proust" - }, - { - "Barkod": 9789752894402, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Veda - Esir Şehirde Bir Konak", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9786254491016, - "Dil": "Türkçe", - "Fiyat": 20.3, - "Kitap_Adi": "Gizli Ajans", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Alper Canıgüz" - }, - { - "Barkod": 9786257217392, - "Dil": "Türkçe", - "Fiyat": 17.65, - "Kitap_Adi": "Bizim Zamanımız", - "Yayinevi": "Karakarga", - "Yazar": "Sinem Sal" - }, - { - "Barkod": 9789750504402, - "Dil": "Türkçe", - "Fiyat": 28.6, - "Kitap_Adi": "Her Temas İz Bırakır", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Türkçe Edebiyat Dizisi", - "Yazar": "Emrah Serbes" - }, - { - "Barkod": 9789752892637, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Köprü", - "Yayinevi": "Everest Yayınları - Roman Dizisi", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9789753420037, - "Dil": "Türkçe", - "Fiyat": 16.1, - "Kitap_Adi": "Yaz Geçer", - "Yayinevi": "Metis Yayıncılık - Yayınevi Genel Dizisi", - "Yazar": "Murathan Mungan" - }, - { - "Barkod": 9786050987157, - "Dil": "Türkçe", - "Fiyat": 40.6, - "Kitap_Adi": "Karabasan", - "Yayinevi": "DEX", - "Yazar": "George R. R. Martin" - }, - { - "Barkod": 9789753637480, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Sodom ve Gomorra - Kayıp Zamanın İzinde 4. Kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Marcel Proust" - }, - { - "Barkod": 9786052691748, - "Dil": "Türkçe", - "Fiyat": 22.05, - "Kitap_Adi": "Yalnızım Çünkü Sen Varsın", - "Yayinevi": "Yediveren Yayınları", - "Yazar": "Kahraman Tazeoğlu" - }, - { - "Barkod": 9786050984149, - "Dil": "Türkçe", - "Fiyat": 53.85, - "Kitap_Adi": "Kan ve Külden", - "Yayinevi": "DEX", - "Yazar": "Jennifer L. Armentrout" - }, - { - "Barkod": 9786055058463, - "Dil": "Türkçe", - "Fiyat": 28.6, - "Kitap_Adi": "Mehmet Teoman", - "Yayinevi": "Anason İşleri Kitapları", - "Yazar": "Metin Solmaz" - }, - { - "Barkod": 9789750511158, - "Dil": "Türkçe", - "Fiyat": 34.45, - "Kitap_Adi": "Maus - Hayatta Kalanın Öyküsü", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Art Spiegelman" - }, - { - "Barkod": 2789788615054, - "Dil": "Icerik Yok", - "Fiyat": 201.6, - "Kitap_Adi": "Dan Brown-Set-Robert Langdon Serisi-5 Kitap Takım", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Dan Brown" - }, - { - "Barkod": 9789754584486, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Piramit", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "William Golding" - }, - { - "Barkod": 9786254413988, - "Dil": "Türkçe", - "Fiyat": 22.8, - "Kitap_Adi": "İçindeki Dağı Aş", - "Yayinevi": "Destek Yayınları", - "Yazar": "Sadettin Saran" - }, - { - "Barkod": 9789752895676, - "Dil": "Türkçe", - "Fiyat": 38.5, - "Kitap_Adi": "Bir Türk Ailesinin Öyküsü", - "Yayinevi": "Everest Yayınları - Anı Dizisi", - "Yazar": "İrfan Orga" - }, - { - "Barkod": 9789752448773, - "Dil": "Icerik Yok", - "Fiyat": 24.5, - "Kitap_Adi": "İtiraf", - "Yayinevi": "Kapı Yayınları", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9786257359580, - "Dil": "Türkçe", - "Fiyat": 38.35, - "Kitap_Adi": "6. Yaramaz Çocuk", - "Yayinevi": "Nemesis Kitap", - "Yazar": "J. D. Barker" - }, - { - "Barkod": 9789754706482, - "Dil": "Türkçe", - "Fiyat": 31.2, - "Kitap_Adi": "Efrasiyab'ın Hikayeleri", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Türkçe Edebiyat Dizisi", - "Yazar": "İhsan Oktay Anar" - }, - { - "Barkod": 9789757904045, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "Kazancı Yokuşu", - "Yayinevi": "Ferhan Şensoy Yayınları", - "Yazar": "Ferhan Şensoy" - }, - { - "Barkod": 9786257077613, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yeşilin Kızı Anne - 5", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Lucy Maud Montgomery" - }, - { - "Barkod": 9789750743795, - "Dil": "Türkçe", - "Fiyat": 10.85, - "Kitap_Adi": "Kendine Ait Bir Oda", - "Yayinevi": "Can Yayınları", - "Yazar": "Virginia Woolf" - }, - { - "Barkod": 9789753625579, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Yusuf ile Züleyha", - "Yayinevi": "Timaş Yayınları - Aşk Klasikleri Dizisi", - "Yazar": "Nazan Bekiroğlu" - }, - { - "Barkod": 9786254140211, - "Dil": "Türkçe", - "Fiyat": 32.5, - "Kitap_Adi": "Jim Carrey ve Dana Vachon Anılar ve Yanılsamalar", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Jim Carrey, Dana Vachon" - }, - { - "Barkod": 9786051030388, - "Dil": "Türkçe", - "Fiyat": 31.2, - "Kitap_Adi": "Onca Yoksulluk Varken", - "Yayinevi": "Agora Kitaplığı", - "Yazar": "Romain Gary (Emile Ajar)" - }, - { - "Barkod": 9786257026185, - "Dil": "Türkçe", - "Fiyat": 60.5, - "Kitap_Adi": "Viking Tek Cilt", - "Yayinevi": "Ren Kitap", - "Yazar": "Tim Severin" - }, - { - "Barkod": 9786059702249, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Kurt Gölü", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "John Verdon" - }, - { - "Barkod": 9772636892007, - "Dil": "Türkçe", - "Fiyat": 25.0, - "Kitap_Adi": "Kafa Özel Sayı - Kasım 2021", - "Yayinevi": "Kafa Grup Reklam", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9789750525896, - "Dil": "Icerik Yok", - "Fiyat": 27.95, - "Kitap_Adi": "Aşıklar Bayramı", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Kemal Varol" - }, - { - "Barkod": 9789750828928, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Yalnızlık Paylaşılmaz", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Özdemir Asaf" - }, - { - "Barkod": 9789754059830, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Kujo", - "Yayinevi": "Altın Kitaplar - Roman Dizisi", - "Yazar": "Stephen King" - }, - { - "Barkod": 9789750734199, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Denizi Yitiren Denizci", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Yukio Mişima" - }, - { - "Barkod": 9786054927203, - "Dil": "Türkçe", - "Fiyat": 25.8, - "Kitap_Adi": "Kopyalanmış Adam", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Jose Saramago" - }, - { - "Barkod": 9786051856735, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Şiir Hikayeleri", - "Yayinevi": "Everest Yayınları", - "Yazar": "Haluk Oral" - }, - { - "Barkod": 9789750740237, - "Dil": "Icerik Yok", - "Fiyat": 22.4, - "Kitap_Adi": "Kara Yarısı", - "Yayinevi": "Can Yayınları", - "Yazar": "Mahir Ünsal Eriş" - }, - { - "Barkod": 9786057103505, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "Sana Yöneldim", - "Yayinevi": "Sofa Yayınları", - "Yazar": "İkbal Gürpınar" - }, - { - "Barkod": 9786257359290, - "Dil": "Türkçe", - "Fiyat": 31.85, - "Kitap_Adi": "Nişancı", - "Yayinevi": "Nemesis Kitap", - "Yazar": "Monica McCarty" - }, - { - "Barkod": 9786052955826, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "Günümüz Türkçesiyle Felatun Bey ile Rakım Efendi", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Ahmed Midhat Efendi" - }, - { - "Barkod": 9786055107352, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Mihmandar", - "Yayinevi": "Kapı Yayınları - Roman Dizisi", - "Yazar": "İskender Pala" - }, - { - "Barkod": 9786257697408, - "Dil": "Türkçe", - "Fiyat": 42.25, - "Kitap_Adi": "Harici bir Hariciyecinin Not Defteri", - "Yayinevi": "Kaynak Yayınları", - "Yazar": "Müfit Özdeş" - }, - { - "Barkod": 9786057083708, - "Dil": "Türkçe", - "Fiyat": 31.85, - "Kitap_Adi": "Bugün", - "Yayinevi": "Theseus Yayınevi", - "Yazar": "Blanka Lipinska" - }, - { - "Barkod": 9786058188648, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Yedi Yıl", - "Yayinevi": "Nebula Kitap", - "Yazar": "Peter Stamm" - }, - { - "Barkod": 9786052060025, - "Dil": "Icerik Yok", - "Fiyat": 11.0, - "Kitap_Adi": "Freud-Mutluluğun Mimarı", - "Yayinevi": "Zeplin Kitap", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789752126718, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Cinayet Ustası", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Andrew Wilson" - }, - { - "Barkod": 9786055257101, - "Dil": "Türkçe", - "Fiyat": 22.4, - "Kitap_Adi": "Arasokakların Tarihi Hatıralar ve Hatıratlar", - "Yayinevi": "Kapı Yayınları - Edebiyat Dizisi", - "Yazar": "Dücane Cündioğlu" - }, - { - "Barkod": 9789752126398, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Kramponlu Ceset - Özel Baskı", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Celil Oker" - }, - { - "Barkod": 9789755703053, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Mutluluğun Mimarisi", - "Yayinevi": "Sel Yayıncılık - Alain de Botton Kitaplığı Dizisi", - "Yazar": "Alain De Botton" - }, - { - "Barkod": 9786051063058, - "Dil": "Icerik Yok", - "Fiyat": 34.3, - "Kitap_Adi": "Piruze-Şam'da Bir Türk Gelin", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Sinan Akyüz" - }, - { - "Barkod": 9786057572523, - "Dil": "Türkçe", - "Fiyat": 11.25, - "Kitap_Adi": "İnsan Ne İle Yaşar?-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık - Yayınevi Genel Dizisi", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9786057906212, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Nasip Niyete Vurgundur", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Ethem Emin Nemutlu" - }, - { - "Barkod": 9786056955617, - "Dil": "Türkçe", - "Fiyat": 27.0, - "Kitap_Adi": "Her Kalp Kendi Şarkısını Söyler", - "Yayinevi": "Arkadya Yayınları", - "Yazar": "Jan-Philipp Sendker" - }, - { - "Barkod": 9786050955378, - "Dil": "Türkçe", - "Fiyat": 41.3, - "Kitap_Adi": "Tekvin", - "Yayinevi": "Doğan Kitap", - "Yazar": "Arif Ergin" - }, - { - "Barkod": 9786053322528, - "Dil": "Türkçe", - "Fiyat": 12.35, - "Kitap_Adi": "Şato", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Franz Kafka" - }, - { - "Barkod": 9786059702782, - "Dil": "Türkçe", - "Fiyat": 28.5, - "Kitap_Adi": "Suç ve Ceza-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786257344142, - "Dil": "Türkçe", - "Fiyat": 29.75, - "Kitap_Adi": "Ölmeden Önce Mümkünse Yaşamanız Gereken 1 Hayat", - "Yayinevi": "Okuyan Us Yayınları", - "Yazar": "Cem Mumcu" - }, - { - "Barkod": 9789750803376, - "Dil": "Türkçe", - "Fiyat": 32.5, - "Kitap_Adi": "Büyük Saat", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Turgut Uyar" - }, - { - "Barkod": 9786051718194, - "Dil": "Icerik Yok", - "Fiyat": 31.5, - "Kitap_Adi": "Hakkari'de Bir Mevsim", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Ferit Edgü" - }, - { - "Barkod": 9786051920849, - "Dil": "Icerik Yok", - "Fiyat": 27.1, - "Kitap_Adi": "Unutma Beni Apartmanı", - "Yayinevi": "Hep Kitap", - "Yazar": "Nermin Yıldırım" - }, - { - "Barkod": 9786050911992, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Sevdalım Hayat", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789752893795, - "Dil": "Türkçe", - "Fiyat": 45.5, - "Kitap_Adi": "Murtaza", - "Yayinevi": "Everest Yayınları - Roman Dizisi", - "Yazar": "Orhan Kemal" - }, - { - "Barkod": 9789750725616, - "Dil": "Türkçe", - "Fiyat": 16.1, - "Kitap_Adi": "Albaya Mektup Yok", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Gabriel Garcia Marquez" - }, - { - "Barkod": 9786053326168, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Gömülü Şamdan", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786053161233, - "Dil": "Icerik Yok", - "Fiyat": 21.0, - "Kitap_Adi": "Lao Tzu: Tao Te Ching", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "Ursula K. Le Guin" - }, - { - "Barkod": 9789750754043, - "Dil": "Türkçe", - "Fiyat": 10.85, - "Kitap_Adi": "Yaratma Tehlikesi", - "Yayinevi": "Can Yayınları", - "Yazar": "Albert Camus" - }, - { - "Barkod": 9772687647007, - "Dil": "Türkçe", - "Fiyat": 19.0, - "Kitap_Adi": "Minik Kafa - Eylül/Ekim 2021", - "Yayinevi": "Kafa Grup Reklam", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 9786057011275, - "Dil": "Türkçe", - "Fiyat": 29.9, - "Kitap_Adi": "Menümüzde Aşk Var", - "Yayinevi": "Pika", - "Yazar": "Melekber Deniz" - }, - { - "Barkod": 9786257027144, - "Dil": "Türkçe", - "Fiyat": 11.35, - "Kitap_Adi": "Emanet Çocuk", - "Yayinevi": "Jaguar Kitap", - "Yazar": "Claire Keegan" - }, - { - "Barkod": 9786057035752, - "Dil": "Türkçe", - "Fiyat": 10.2, - "Kitap_Adi": "Denizden Gelen Hediye - Dünyanın Tüm Kadınlarına", - "Yayinevi": "Teras Kitap", - "Yazar": "Anne Morrow Lindbergh" - }, - { - "Barkod": 9786051853413, - "Dil": "Icerik Yok", - "Fiyat": 10.45, - "Kitap_Adi": "Sevdalinka-Midi Boy", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9789752894532, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Nefes Nefese", - "Yayinevi": "Everest Yayınları - Roman Dizisi", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9786056501937, - "Dil": "Türkçe", - "Fiyat": 14.5, - "Kitap_Adi": "Hızlandıkça Azalıyorum", - "Yayinevi": "Jaguar Kitap", - "Yazar": "Kjersti Skomsvold" - }, - { - "Barkod": 9789750728266, - "Dil": "Türkçe", - "Fiyat": 32.9, - "Kitap_Adi": "Elif", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Paulo Coelho" - }, - { - "Barkod": 9786257099585, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Esmerim - Lal", - "Yayinevi": "Müptela Yayınları", - "Yazar": "Aslıhan Güngör" - }, - { - "Barkod": 9786059908405, - "Dil": "Türkçe", - "Fiyat": 28.8, - "Kitap_Adi": "Günlükler - Bir Edebiyat Olayı", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Sylvia Plath" - }, - { - "Barkod": 9786050977417, - "Dil": "Icerik Yok", - "Fiyat": 32.9, - "Kitap_Adi": "Cerrah", - "Yayinevi": "Doğan Kitap", - "Yazar": "Tess Gerritsen" - }, - { - "Barkod": 9786257550611, - "Dil": "Türkçe", - "Fiyat": 34.8, - "Kitap_Adi": "Şafağı Ör", - "Yayinevi": "Yabancı", - "Yazar": "Elizabeth Lim" - }, - { - "Barkod": 9786052959817, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "David Copperfield-Hasan Ali Yücel Klasikler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Charles Dickens" - }, - { - "Barkod": 9789752892514, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Füreya", - "Yayinevi": "Everest Yayınları - Roman Dizisi", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9789750530432, - "Dil": "Türkçe", - "Fiyat": 26.65, - "Kitap_Adi": "Taş ve Gölge", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "Burhan Sönmez" - }, - { - "Barkod": 9786057948335, - "Dil": "Türkçe", - "Fiyat": 21.0, - "Kitap_Adi": "Deccalin Askerleri", - "Yayinevi": "Lopus", - "Yazar": "Ömer Faruk İspir" - }, - { - "Barkod": 9789752126381, - "Dil": "Türkçe", - "Fiyat": 11.05, - "Kitap_Adi": "Çıplak Ceset - Özel Baskı", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Celil Oker" - }, - { - "Barkod": 9786053033745, - "Dil": "Türkçe", - "Fiyat": 25.6, - "Kitap_Adi": "Kavgam - Tam Metin", - "Yayinevi": "Anonim Yayınları", - "Yazar": "Adolf Hitler" - }, - { - "Barkod": 9786257940597, - "Dil": "Türkçe", - "Fiyat": 22.35, - "Kitap_Adi": "Demirdağlı", - "Yayinevi": "Edebiyatist", - "Yazar": "Emre İlgüntok" - }, - { - "Barkod": 9789750531200, - "Dil": "Türkçe", - "Fiyat": 32.5, - "Kitap_Adi": "Cennetin Doğusu", - "Yayinevi": "İletişim Yayıncılık", - "Yazar": "John Steinbeck" - }, - { - "Barkod": 9786052986752, - "Dil": "Türkçe", - "Fiyat": 6.0, - "Kitap_Adi": "Estetik - Genel Sanat Üzerine Dersler - Kırmızı Kedi Klasikler", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Georg Wilhelm Friedrich Hegel" - }, - { - "Barkod": 9789750738944, - "Dil": "Icerik Yok", - "Fiyat": 12.6, - "Kitap_Adi": "Vadideki Zambak", - "Yayinevi": "Can Yayınları", - "Yazar": "Honore de Balzac" - }, - { - "Barkod": 9786052988183, - "Dil": "Türkçe", - "Fiyat": 6.6, - "Kitap_Adi": "Genç Wertherin Acıları - Kırmızı Kedi Klasikler", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Johann Wolfgang Von Goethe" - }, - { - "Barkod": 9786254080975, - "Dil": "Türkçe", - "Fiyat": 36.9, - "Kitap_Adi": "Ruh Adam", - "Yayinevi": "Ötüken Neşriyat - Tarihi Romanlar Dizisi", - "Yazar": "Hüseyin Nihal Atsız" - }, - { - "Barkod": 9772148782803, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Kafa Dergisi - Aralık 2021", - "Yayinevi": "Kafa Grup Reklam", - "Yazar": "Icerik Yok" - }, - { - "Barkod": 3786257031691, - "Dil": "Türkçe", - "Fiyat": 30.0, - "Kitap_Adi": "George Orwell Seti - 4 Kitap Takım", - "Yayinevi": "Parola Yayınları", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786051980942, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Talebe", - "Yayinevi": "Domingo Yayınevi", - "Yazar": "Tara Westover" - }, - { - "Barkod": 9786059318778, - "Dil": "Türkçe", - "Fiyat": 55.3, - "Kitap_Adi": "Kaygının Anlamı", - "Yayinevi": "Okuyan Us Yayınları", - "Yazar": "Rollo May" - }, - { - "Barkod": 9786059441292, - "Dil": "Türkçe", - "Fiyat": 30.85, - "Kitap_Adi": "Sahildeki Kulübe", - "Yayinevi": "Pena Yayınları", - "Yazar": "Sarah Jio" - }, - { - "Barkod": 9786053757702, - "Dil": "Icerik Yok", - "Fiyat": 20.4, - "Kitap_Adi": "Disparöni ya da Yaşama Korkusu", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Nihan Kaya" - }, - { - "Barkod": 9786052241240, - "Dil": "Türkçe", - "Fiyat": 23.95, - "Kitap_Adi": "Karanlık Oda", - "Yayinevi": "Karakarga", - "Yazar": "Osman Balcıgil" - }, - { - "Barkod": 9789752114074, - "Dil": "Türkçe", - "Fiyat": 74.75, - "Kitap_Adi": "Mahşer", - "Yayinevi": "Altın Kitaplar - Polisiye - Gerilim Dizisi", - "Yazar": "Stephen King" - }, - { - "Barkod": 9789750830884, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Kafamda Bir Tuhaflık", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Orhan Pamuk" - }, - { - "Barkod": 9786257671224, - "Dil": "Türkçe", - "Fiyat": 12.0, - "Kitap_Adi": "Bana Seni Seviyorum Deme Hissettir", - "Yayinevi": "İndigo Kitap", - "Yazar": "Miraç Çağrı Aktaş" - }, - { - "Barkod": 9789750739187, - "Dil": "Icerik Yok", - "Fiyat": 16.8, - "Kitap_Adi": "Emma", - "Yayinevi": "Can Yayınları", - "Yazar": "Jane Austen" - }, - { - "Barkod": 9786057471598, - "Dil": "Türkçe", - "Fiyat": 20.2, - "Kitap_Adi": "Çocukluğum ve Çocuğum", - "Yayinevi": "Küsurat", - "Yazar": "Aslı Kocaeli" - }, - { - "Barkod": 9786053604587, - "Dil": "Türkçe", - "Fiyat": 16.9, - "Kitap_Adi": "Kendi Hayatının Şiirini Yazanlar", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789750517167, - "Dil": "Türkçe", - "Fiyat": 21.8, - "Kitap_Adi": "İstanbul İstanbul", - "Yayinevi": "İletişim Yayıncılık - Türkçe Edebiyat Dizisi", - "Yazar": "Burhan Sönmez" - }, - { - "Barkod": 9786051423876, - "Dil": "Türkçe", - "Fiyat": 15.4, - "Kitap_Adi": "Gördüğüme Sevindim", - "Yayinevi": "Artemis Yayınları - Edebiyat Dizisi", - "Yazar": "İclal Aydın" - }, - { - "Barkod": 9786051853840, - "Dil": "Icerik Yok", - "Fiyat": 23.1, - "Kitap_Adi": "Kul", - "Yayinevi": "Everest Yayınları", - "Yazar": "Seray Şahiner" - }, - { - "Barkod": 9789750748752, - "Dil": "Türkçe", - "Fiyat": 39.2, - "Kitap_Adi": "Başkaldıran İnsan", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Albert Camus" - }, - { - "Barkod": 9786254140419, - "Dil": "Türkçe", - "Fiyat": 35.45, - "Kitap_Adi": "Bir Arzunun Güncesi", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Paula Quinn" - }, - { - "Barkod": 9786254056666, - "Dil": "Türkçe", - "Fiyat": 11.7, - "Kitap_Adi": "Sürgün Günlükleri - Modern Klasikler 184", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Yannis Ritsos" - }, - { - "Barkod": 9789750851254, - "Dil": "Türkçe", - "Fiyat": 32.5, - "Kitap_Adi": "Sis ve Gece: 25 Yaşında - Numaralı Özel Baskı", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9786051414898, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "Ağır Roman", - "Yayinevi": "Everest Yayınları - Roman Dizisi", - "Yazar": "Metin Kaçan" - }, - { - "Barkod": 9786057408006, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Yakut Orman", - "Yayinevi": "Umami Kitap", - "Yazar": "Rita Mae Brown" - }, - { - "Barkod": 9786254491061, - "Dil": "Türkçe", - "Fiyat": 20.3, - "Kitap_Adi": "Kan ve Gül Bir Kara Dejavu", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Alper Canıgüz" - }, - { - "Barkod": 9786254081637, - "Dil": "Türkçe", - "Fiyat": 44.3, - "Kitap_Adi": "Bozkurtlar", - "Yayinevi": "Ötüken Neşriyat - Tarihi Romanlar Dizisi", - "Yazar": "Hüseyin Nihal Atsız" - }, - { - "Barkod": 9789752104556, - "Dil": "Türkçe", - "Fiyat": 44.2, - "Kitap_Adi": "Melekler ve Şeytanlar", - "Yayinevi": "Altın Kitaplar - Meşhur Romanlar Dizisi", - "Yazar": "Dan Brown" - }, - { - "Barkod": 9786057572721, - "Dil": "Türkçe", - "Fiyat": 24.0, - "Kitap_Adi": "Yeşilin Kızı Anne-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Lucy Maud Montgomery" - }, - { - "Barkod": 9789750733437, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Dünün Dünyası", - "Yayinevi": "Can Yayınları - Dünya Klasikleri Dizisi", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786052398272, - "Dil": "Icerik Yok", - "Fiyat": 76.7, - "Kitap_Adi": "Ayçöreği-Elmalı Turta Set", - "Yayinevi": "Ren Kitap", - "Yazar": "Zeynep Sahra" - }, - { - "Barkod": 9786050975550, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Bizi Sürükleyen Nehir - Hayat Üstüne Düşünceler", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9789944881265, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Dillerin Kökeni Üstüne Deneme - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Jean - Jacques Rousseau" - }, - { - "Barkod": 9786057639615, - "Dil": "Türkçe", - "Fiyat": 32.0, - "Kitap_Adi": "Pardayanlar 3 - Fausta", - "Yayinevi": "Dedalus", - "Yazar": "Michel Zevaco" - }, - { - "Barkod": 9786057583970, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "00:00 Biri Sizi Düşünüyor", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "N.G. Kabal" - }, - { - "Barkod": 9786053162360, - "Dil": "Türkçe", - "Fiyat": 28.0, - "Kitap_Adi": "Devam Ağacı", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "Murathan Mungan" - }, - { - "Barkod": 9786257674355, - "Dil": "Türkçe", - "Fiyat": 21.0, - "Kitap_Adi": "Topraktan Yükselen", - "Yayinevi": "Muhit Kitap", - "Yazar": "İbrahim Tenekeci" - }, - { - "Barkod": 9786053160076, - "Dil": "Türkçe", - "Fiyat": 22.4, - "Kitap_Adi": "Kaçırdıklarımız", - "Yayinevi": "Metis Yayıncılık", - "Yazar": "Adam Philips" - }, - { - "Barkod": 9789750747991, - "Dil": "Türkçe", - "Fiyat": 28.7, - "Kitap_Adi": "Benden Selam Söyle Anadolu'ya", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Dido Sotiriyu" - }, - { - "Barkod": 9786052959435, - "Dil": "Türkçe", - "Fiyat": 10.4, - "Kitap_Adi": "İnsanlığın Yıldızının Yükseldiği Anlar", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786055147709, - "Dil": "Türkçe", - "Fiyat": 23.8, - "Kitap_Adi": "Şems Tebrizi - Aşkın Gözyaşları 1", - "Yayinevi": "Kapı Yayınları - Yayınevi Genel Dizisi", - "Yazar": "Sinan Yağmur" - }, - { - "Barkod": 9786057583536, - "Dil": "Türkçe", - "Fiyat": 88.2, - "Kitap_Adi": "Düşman Okullar Seti-3 Kitap Takım", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Dilara Keskin" - }, - { - "Barkod": 9789753710008, - "Dil": "Türkçe", - "Fiyat": 23.4, - "Kitap_Adi": "Kilit", - "Yayinevi": "İrfan Yayıncılık - Dünkü Türkiye Dizisi", - "Yazar": "Mustafa Necati Sepetçioğlu" - }, - { - "Barkod": 9786053117612, - "Dil": "Icerik Yok", - "Fiyat": 11.0, - "Kitap_Adi": "Fil Saati", - "Yayinevi": "Destek Yayınları", - "Yazar": "Tuğba Sarıünal" - }, - { - "Barkod": 9786051716183, - "Dil": "Icerik Yok", - "Fiyat": 10.45, - "Kitap_Adi": "İncir Kuşları-Midi Boy", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Sinan Akyüz" - }, - { - "Barkod": 9786051417493, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Fikrimin İnce Gülü", - "Yayinevi": "Everest Yayınları - Roman Dizisi", - "Yazar": "Adalet Ağaoğlu" - }, - { - "Barkod": 9789753635257, - "Dil": "Türkçe", - "Fiyat": 24.7, - "Kitap_Adi": "Çiçek Açmış Genç Kızların Gölgesinde - Kayıp Zamanın İzinde (ikinci kitap)", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Marcel Proust" - }, - { - "Barkod": 9789750823053, - "Dil": "Türkçe", - "Fiyat": 31.2, - "Kitap_Adi": "Sen Bana Bakma Ben Senin Baktığın Yönde Olurum", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Özdemir Asaf" - }, - { - "Barkod": 9789750807244, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Çakırcalı Efe", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786257303897, - "Dil": "Türkçe", - "Fiyat": 12.25, - "Kitap_Adi": "Toprak Ana", - "Yayinevi": "Ketebe", - "Yazar": "Cengiz Aytmatov" - }, - { - "Barkod": 9786050820416, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Mücella", - "Yayinevi": "Timaş Yayınları", - "Yazar": "Nazan Bekiroğlu" - }, - { - "Barkod": 9786053047117, - "Dil": "Türkçe", - "Fiyat": 24.5, - "Kitap_Adi": "Hayat Bir Gün Bitecek", - "Yayinevi": "Artemis Yayınları", - "Yazar": "Hilal Aydın Özcan" - }, - { - "Barkod": 9786052987872, - "Dil": "Türkçe", - "Fiyat": 15.6, - "Kitap_Adi": "Bütün Şiirleri 4", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Şükrü Erbaş" - }, - { - "Barkod": 9786257550659, - "Dil": "Türkçe", - "Fiyat": 32.4, - "Kitap_Adi": "Birimiz Ölmek Üzere", - "Yayinevi": "Yabancı", - "Yazar": "Karen M. McManus" - }, - { - "Barkod": 9786059840811, - "Dil": "Icerik Yok", - "Fiyat": 55.0, - "Kitap_Adi": "Sherlock Holmes Bütün Romanlar Tek Cilt Özel Basım", - "Yayinevi": "Ren Kitap", - "Yazar": "Sir Arthur Conan Doyle" - }, - { - "Barkod": 9786059702621, - "Dil": "Icerik Yok", - "Fiyat": 12.0, - "Kitap_Adi": "İdealist Öğretmen", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Grigory Petrov" - }, - { - "Barkod": 9786052954102, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "Dostluk Üzerine", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Cicero" - }, - { - "Barkod": 9789755336831, - "Dil": "Türkçe", - "Fiyat": 5.4, - "Kitap_Adi": "Alyoşa - Aliye Berger'in Öyküsü", - "Yayinevi": "İmge Kitabevi", - "Yazar": "Hayati Çitaklar" - }, - { - "Barkod": 9786057085504, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Gülümseyen Adam - Kurt Wallander Serisi 4", - "Yayinevi": "Ayrıksı Kitap", - "Yazar": "Henning Mankell" - }, - { - "Barkod": 9786057755063, - "Dil": "Türkçe", - "Fiyat": 9.0, - "Kitap_Adi": "Bir İdam Mahkumunun Son Günü", - "Yayinevi": "Mahzen", - "Yazar": "Victor Hugo" - }, - { - "Barkod": 9789752105737, - "Dil": "Türkçe", - "Fiyat": 41.6, - "Kitap_Adi": "İhanet Noktası", - "Yayinevi": "Altın Kitaplar - Roman Dizisi", - "Yazar": "Dan Brown" - }, - { - "Barkod": 9786056842689, - "Dil": "Icerik Yok", - "Fiyat": 22.5, - "Kitap_Adi": "Antika Titanik", - "Yayinevi": "April Yayıncılık", - "Yazar": "Murat Menteş" - }, - { - "Barkod": 9786254140358, - "Dil": "Türkçe", - "Fiyat": 96.2, - "Kitap_Adi": "Tekinsiz Kadınlar", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "George R. R. Martin, Gardner Dozois" - }, - { - "Barkod": 9789754370799, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Osmancık", - "Yayinevi": "Ötüken Neşriyat - Edebiyat Dizisi", - "Yazar": "Tarık Buğra" - }, - { - "Barkod": 9789750723353, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Demian", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Hermann Hesse" - }, - { - "Barkod": 9789754735413, - "Dil": "Türkçe", - "Fiyat": 18.4, - "Kitap_Adi": "Yedi Güzel Adam", - "Yayinevi": "Beyan Yayınları - Şiir Dizisi", - "Yazar": "Cahit Zarifoğlu" - }, - { - "Barkod": 9786257587976, - "Dil": "Türkçe", - "Fiyat": 37.4, - "Kitap_Adi": "Nasıl ve Neden Okumalıyız?", - "Yayinevi": "Ketebe", - "Yazar": "Harold Bloom" - }, - { - "Barkod": 9786254051821, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Bir Noel Şarkısı - Hasan Ali Yücel Klasikler", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Charles Dickens" - }, - { - "Barkod": 9789752124165, - "Dil": "Icerik Yok", - "Fiyat": 19.5, - "Kitap_Adi": "Örümcek Ağı", - "Yayinevi": "Altın Kitaplar", - "Yazar": "Agatha Christie" - }, - { - "Barkod": 9789755701752, - "Dil": "Türkçe", - "Fiyat": 21.0, - "Kitap_Adi": "Seyahat Sanatı", - "Yayinevi": "Sel Yayıncılık - Alain de Botton Kitaplığı Dizisi", - "Yazar": "Alain De Botton" - }, - { - "Barkod": 9789752209060, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "İki Şehrin Hikayesi", - "Yayinevi": "Bilgi Yayınevi", - "Yazar": "Charles Dickens" - }, - { - "Barkod": 9786254054068, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Lüzumsuz Adam - Modern Türk Edebiyatı Klasikleri 12", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Sait Faik Abasıyanık" - }, - { - "Barkod": 9789754701760, - "Dil": "Türkçe", - "Fiyat": 39.65, - "Kitap_Adi": "Ses Sese Karşı", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Aldous Huxley" - }, - { - "Barkod": 9786257335041, - "Dil": "Türkçe", - "Fiyat": 42.25, - "Kitap_Adi": "Ayrılış - Bir Gökçeada Hikayesi", - "Yayinevi": "Cinius", - "Yazar": "Dursun Turan" - }, - { - "Barkod": 9786059609586, - "Dil": "Icerik Yok", - "Fiyat": 25.85, - "Kitap_Adi": "Son 48 Saat", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Simon Kernick" - }, - { - "Barkod": 9786052214466, - "Dil": "Icerik Yok", - "Fiyat": 22.75, - "Kitap_Adi": "Başlarım Senin Aşkına", - "Yayinevi": "Hayykitap", - "Yazar": "Mehmet Yıldız" - }, - { - "Barkod": 9789750741159, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Ahraz", - "Yayinevi": "Can Yayınları", - "Yazar": "Deniz Gezgin" - }, - { - "Barkod": 9786257458047, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Devrimin Arabaları Vardı", - "Yayinevi": "Elpis Yayınları", - "Yazar": "Metin Leblebicioğlu" - }, - { - "Barkod": 9786051068435, - "Dil": "Türkçe", - "Fiyat": 34.3, - "Kitap_Adi": "Piruze ve Oğulları", - "Yayinevi": "Alfa Yayıncılık", - "Yazar": "Sinan Akyüz" - }, - { - "Barkod": 9786257310772, - "Dil": "Türkçe", - "Fiyat": 60.5, - "Kitap_Adi": "George Orwell Seçme Eserler", - "Yayinevi": "Ren Kitap", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786052349878, - "Dil": "Türkçe", - "Fiyat": 44.0, - "Kitap_Adi": "Kim Bu", - "Yayinevi": "DeliDolu", - "Yazar": "Joan Kim Erkan" - }, - { - "Barkod": 9786057572547, - "Dil": "Türkçe", - "Fiyat": 12.75, - "Kitap_Adi": "Bir İdam Mahkumunun Son Günü-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Victor Hugo" - }, - { - "Barkod": 9789750807060, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Bir Ada Hikayesi 1- Fırat Suyu Kan Akıyor Baksana", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786057572752, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "İnsancıklar-Bez Ciltli", - "Yayinevi": "Koridor Yayıncılık", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786257737753, - "Dil": "Türkçe", - "Fiyat": 13.2, - "Kitap_Adi": "1984 - Bilimkurgu Klasikleri", - "Yayinevi": "İthaki Yayınları", - "Yazar": "George Orwell" - }, - { - "Barkod": 9786257077767, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Uluslararası Bir Aşk Hikayesi", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Mehtap Fırat" - }, - { - "Barkod": 9786050951073, - "Dil": "Icerik Yok", - "Fiyat": 31.5, - "Kitap_Adi": "Çırak", - "Yayinevi": "Doğan Kitap", - "Yazar": "Tess Gerritsen" - }, - { - "Barkod": 9786257647632, - "Dil": "Türkçe", - "Fiyat": 21.85, - "Kitap_Adi": "Anılarla Öykülerle ve Fıkralarla Anadolu", - "Yayinevi": "Sarmal Kitabevi", - "Yazar": "Ali Demirsoy" - }, - { - "Barkod": 9786054629848, - "Dil": "Türkçe", - "Fiyat": 24.75, - "Kitap_Adi": "Obsesif", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "Chevy Stevens" - }, - { - "Barkod": 9786055340223, - "Dil": "Icerik Yok", - "Fiyat": 21.0, - "Kitap_Adi": "Bütün İsimler", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Jose Saramago" - }, - { - "Barkod": 9789750511189, - "Dil": "Türkçe", - "Fiyat": 19.5, - "Kitap_Adi": "Hikayem Paramparça", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Türkçe Edebiyat Dizisi", - "Yazar": "Emrah Serbes" - }, - { - "Barkod": 9789752893429, - "Dil": "Icerik Yok", - "Fiyat": 41.3, - "Kitap_Adi": "Başucumda Müzik", - "Yayinevi": "Everest Yayınları", - "Yazar": "Kürşat Başar" - }, - { - "Barkod": 9789754700541, - "Dil": "Türkçe", - "Fiyat": 29.25, - "Kitap_Adi": "Türk Romanına Eleştirel Bir Bakış 1", - "Yayinevi": "İletişim Yayıncılık - Araştırma-İnceleme Dizisi", - "Yazar": "Berna Moran" - }, - { - "Barkod": 9789754370263, - "Dil": "Türkçe", - "Fiyat": 16.4, - "Kitap_Adi": "Bir Tereddüdün Romanı", - "Yayinevi": "Ötüken Neşriyat - Edebiyat Dizisi", - "Yazar": "Peyami Safa" - }, - { - "Barkod": 9786257917094, - "Dil": "Türkçe", - "Fiyat": 57.15, - "Kitap_Adi": "Bloomsday Kitabı - Adım Adım Ulysses", - "Yayinevi": "Norgunk Yayıncılık", - "Yazar": "Harry Blamires" - }, - { - "Barkod": 9789754588101, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Dedektif Auguste Dupin Öyküleri - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Edgar Allan Poe" - }, - { - "Barkod": 9786055162085, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Cehennem Çiçeği", - "Yayinevi": "April Yayıncılık", - "Yazar": "Alper Canıgüz" - }, - { - "Barkod": 9786050929997, - "Dil": "Türkçe", - "Fiyat": 32.76, - "Kitap_Adi": "Açlık Oyunları 1", - "Yayinevi": "DEX", - "Yazar": "Suzanne Collins" - }, - { - "Barkod": 9786057639622, - "Dil": "Türkçe", - "Fiyat": 32.0, - "Kitap_Adi": "Pardayanlar 4 - Fausta'nın Yenilgisi", - "Yayinevi": "Dedalus", - "Yazar": "Michel Zevaco" - }, - { - "Barkod": 9786052957110, - "Dil": "Icerik Yok", - "Fiyat": 3.9, - "Kitap_Adi": "Dolaptan Temaşa-Türk Edebiyatı Klasikleri 14", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Ahmet Mithat Efendi" - }, - { - "Barkod": 9789750816062, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Dağ Uykusu - Seçme Şiirler", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Fazıl Hüsnü Dağlarca" - }, - { - "Barkod": 9789754703887, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Okuyucu", - "Yayinevi": "İletişim Yayıncılık - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Bernhard Schlink" - }, - { - "Barkod": 9786052398111, - "Dil": "Icerik Yok", - "Fiyat": 38.35, - "Kitap_Adi": "Elmalı Turta", - "Yayinevi": "Ren Kitap", - "Yazar": "Zeynep Sahra" - }, - { - "Barkod": 9789753420723, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Ekmek Arası", - "Yayinevi": "Metis Yayıncılık - Edebiyat Dizisi", - "Yazar": "Charles Bukowski" - }, - { - "Barkod": 9786051737140, - "Dil": "Türkçe", - "Fiyat": 32.2, - "Kitap_Adi": "Hacker", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Murat Ekşi" - }, - { - "Barkod": 9786052060964, - "Dil": "Icerik Yok", - "Fiyat": 8.0, - "Kitap_Adi": "Daha İyisi Nasıl Yapılır?", - "Yayinevi": "Zeplin Kitap", - "Yazar": "Elon Musk" - }, - { - "Barkod": 9786057906120, - "Dil": "Icerik Yok", - "Fiyat": 20.4, - "Kitap_Adi": "Kaktüsler de Çiçek Açar", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Songül Ünsal" - }, - { - "Barkod": 9789750734205, - "Dil": "Türkçe", - "Fiyat": 26.95, - "Kitap_Adi": "Bir Maskenin İtirafları", - "Yayinevi": "Can Yayınları - Roman Dizisi", - "Yazar": "Yukio Mişima" - }, - { - "Barkod": 9786257325066, - "Dil": "Türkçe", - "Fiyat": 48.0, - "Kitap_Adi": "Shera - Hücremdeki Günce", - "Yayinevi": "Demos Yayınları", - "Yazar": "Rezan Çakmaz" - }, - { - "Barkod": 9786257077774, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yeşilin Kızı Anne - 6", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Lucy Maud Montgomery" - }, - { - "Barkod": 9786053328674, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Katip Bartleby", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Herman Melville" - }, - { - "Barkod": 9786254056130, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Ölmüş Bir Kadının Evrak-ı Metrukesi - Günümüz Türkçesiyle", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Güzide Sabri" - }, - { - "Barkod": 9786257077897, - "Dil": "Türkçe", - "Fiyat": 29.4, - "Kitap_Adi": "Yeşilin Kızı Anne - 7", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Lucy Maud Montgomery" - }, - { - "Barkod": 9786059311298, - "Dil": "Icerik Yok", - "Fiyat": 31.2, - "Kitap_Adi": "On Dokuz-Atatürk Geleceği Biliyordu", - "Yayinevi": "Selis Kitaplar", - "Yazar": "Haluk Özdil" - }, - { - "Barkod": 9786257583657, - "Dil": "Türkçe", - "Fiyat": 32.5, - "Kitap_Adi": "Meczup", - "Yayinevi": "İkinci Adam Yayınları", - "Yazar": "Demet Demirkaya" - }, - { - "Barkod": 9786051557397, - "Dil": "Icerik Yok", - "Fiyat": 6.6, - "Kitap_Adi": "Kızıl Elma-Oğulla Buluşma", - "Yayinevi": "Ötüken Neşriyat", - "Yazar": "Cengiz Aytmatov" - }, - { - "Barkod": 9786051922454, - "Dil": "Türkçe", - "Fiyat": 25.2, - "Kitap_Adi": "Misafir", - "Yayinevi": "Hep Kitap", - "Yazar": "Nermin Yıldırım" - }, - { - "Barkod": 9786053110514, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Korkma Kalbim", - "Yayinevi": "Destek Yayınları", - "Yazar": "Ahmet Batman" - }, - { - "Barkod": 9786055156169, - "Dil": "Icerik Yok", - "Fiyat": 18.85, - "Kitap_Adi": "Kelebek ve Dalgıç", - "Yayinevi": "Nemesis Kitap", - "Yazar": "Dominique Bauby" - }, - { - "Barkod": 9786054771769, - "Dil": "Türkçe", - "Fiyat": 15.0, - "Kitap_Adi": "Sabah Uykum", - "Yayinevi": "Destek Yayınları", - "Yazar": "Ahmet Batman" - }, - { - "Barkod": 9789757076278, - "Dil": "Türkçe", - "Fiyat": 12.9, - "Kitap_Adi": "Bağdat''ta Ölüm-Hallac-ı Mansur", - "Yayinevi": "Yurt Kitap Yayın - Tarihi Romanlar Dizisi", - "Yazar": "Wolfgang Günter Lerch" - }, - { - "Barkod": 9789758441792, - "Dil": "Türkçe", - "Fiyat": 35.9, - "Kitap_Adi": "Kadınlar", - "Yayinevi": "Parantez Gazetecilik ve Yayıncılık - Edebiyat Dizisi", - "Yazar": "Charles Bukowski" - }, - { - "Barkod": 9789752104679, - "Dil": "Türkçe", - "Fiyat": 28.6, - "Kitap_Adi": "16.50 Treni", - "Yayinevi": "Altın Kitaplar - Roman Dizisi", - "Yazar": "Agatha Christie" - }, - { - "Barkod": 9789753639859, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Mahpus - Kayıp Zamanın İzinde 5. kitap", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Marcel Proust" - }, - { - "Barkod": 9789752477292, - "Dil": "Icerik Yok", - "Fiyat": 20.8, - "Kitap_Adi": "Güzel Kaybettik", - "Yayinevi": "Hayykitap", - "Yazar": "Caner Yaman" - }, - { - "Barkod": 9789753422796, - "Dil": "Türkçe", - "Fiyat": 17.5, - "Kitap_Adi": "Uyuyan Adam", - "Yayinevi": "Metis Yayıncılık - Edebiyat Dizisi", - "Yazar": "Georges Perec" - }, - { - "Barkod": 9786257999304, - "Dil": "Türkçe", - "Fiyat": 4.55, - "Kitap_Adi": "Levayih-i Hayat-Hayatttan Sahneler-Günümüz Türkçesiyle", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Fatma Aliye" - }, - { - "Barkod": 9786051882215, - "Dil": "Icerik Yok", - "Fiyat": 33.75, - "Kitap_Adi": "Issız Kar Taneleri", - "Yayinevi": "Arkadya Yayınları", - "Yazar": "Kimberley Freeman" - }, - { - "Barkod": 9786050946871, - "Dil": "Icerik Yok", - "Fiyat": 53.85, - "Kitap_Adi": "Cam Şato", - "Yayinevi": "DEX", - "Yazar": "Sarah J. Maas" - }, - { - "Barkod": 9789752112698, - "Dil": "Türkçe", - "Fiyat": 22.75, - "Kitap_Adi": "Ölüm Adası", - "Yayinevi": "Altın Kitaplar - Polisiye Roman Dizisi", - "Yazar": "Agatha Christie" - }, - { - "Barkod": 9786254055935, - "Dil": "Türkçe", - "Fiyat": 22.1, - "Kitap_Adi": "Kont Belisarios - Modern Klasikler 178", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Robert Graves" - }, - { - "Barkod": 9786054629640, - "Dil": "Türkçe", - "Fiyat": 31.5, - "Kitap_Adi": "Peter Pan Ölmeli", - "Yayinevi": "Koridor Yayıncılık - Roman Dizisi", - "Yazar": "John Verdon" - }, - { - "Barkod": 9789750807367, - "Dil": "Türkçe", - "Fiyat": 37.7, - "Kitap_Adi": "Demirciler Çarşısı Cinayeti - Akçasazın Ağaları 1", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Yaşar Kemal" - }, - { - "Barkod": 9786257077422, - "Dil": "Türkçe", - "Fiyat": 35.4, - "Kitap_Adi": "03:03 Dolunay'da Açan Çiçek", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "N.G. Kabal" - }, - { - "Barkod": 9786051739076, - "Dil": "Türkçe", - "Fiyat": 30.9, - "Kitap_Adi": "Nefret Mektupları", - "Yayinevi": "Epsilon Yayınevi", - "Yazar": "Penelope Ward, Vi Keeland" - }, - { - "Barkod": 9786258475265, - "Dil": "Türkçe", - "Fiyat": 43.2, - "Kitap_Adi": "Zaman Çarkı 11 - Düş Hançeri", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Robert Jordan" - }, - { - "Barkod": 9786258475159, - "Dil": "Türkçe", - "Fiyat": 9.0, - "Kitap_Adi": "Karanlıkta Anlatılacak Bambaşka Korkunç Öyküler - Korkunç Öyküler 2", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Alvin Schwartz" - }, - { - "Barkod": 9786254053214, - "Dil": "Türkçe", - "Fiyat": 9.1, - "Kitap_Adi": "Aziyade - Modern Klasikler 169", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Pierre Loti" - }, - { - "Barkod": 9786257674393, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Kendilik Cesareti", - "Yayinevi": "Muhit Kitap", - "Yazar": "Zeynep Merdan" - }, - { - "Barkod": 9786257382281, - "Dil": "Türkçe", - "Fiyat": 88.2, - "Kitap_Adi": "Emily Kutulu Set - 3 Kitap Takım Bez Çanta ve Poster Hediyeli", - "Yayinevi": "Ephesus Yayınları", - "Yazar": "Lucy Maud Montgomery" - }, - { - "Barkod": 9786052958223, - "Dil": "Icerik Yok", - "Fiyat": 6.5, - "Kitap_Adi": "Günümüz Türkçesiyle Falaka-Türk Edebiyatı Klasikleri 17", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Ahmet Rasim" - }, - { - "Barkod": 9786053325161, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Ölümcül Yumurtalar", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Mihayl Afanasyeviç Bulgakov" - }, - { - "Barkod": 9786051869360, - "Dil": "Icerik Yok", - "Fiyat": 29.25, - "Kitap_Adi": "Kargalar Meclisi", - "Yayinevi": "Martı Yayınları", - "Yazar": "Leigh Bardugo" - }, - { - "Barkod": 9789752473218, - "Dil": "Türkçe", - "Fiyat": 20.8, - "Kitap_Adi": "Sol Ayağım", - "Yayinevi": "Nora", - "Yazar": "Christy Brown" - }, - { - "Barkod": 9786053325017, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Korku", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786053757818, - "Dil": "Türkçe", - "Fiyat": 19.25, - "Kitap_Adi": "Fahrenheit 451", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Ray Bradbury" - }, - { - "Barkod": 9789754587029, - "Dil": "Türkçe", - "Fiyat": 13.0, - "Kitap_Adi": "Gurur ve Önyargı - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Jane Austen" - }, - { - "Barkod": 9786257070782, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Kızıl Veba-Modern Klasikler Dizisi 152", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Jack London" - }, - { - "Barkod": 9786052951606, - "Dil": "Icerik Yok", - "Fiyat": 3.9, - "Kitap_Adi": "Mecburiyet", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786053329053, - "Dil": "Türkçe", - "Fiyat": 4.55, - "Kitap_Adi": "Amok Koşucusu", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789753638036, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "İçimizdeki Şeytan", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786050838091, - "Dil": "Türkçe", - "Fiyat": 47.25, - "Kitap_Adi": "Kehribar Geçidi", - "Yayinevi": "Timaş Yayınları", - "Yazar": "Nazan Bekiroğlu" - }, - { - "Barkod": 9789944884013, - "Dil": "Türkçe", - "Fiyat": 7.8, - "Kitap_Adi": "Yeraltından Notlar - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9789754582901, - "Dil": "Türkçe", - "Fiyat": 13.0, - "Kitap_Adi": "Sineklerin Tanrısı", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "William Golding" - }, - { - "Barkod": 9786052361740, - "Dil": "Türkçe", - "Fiyat": 33.0, - "Kitap_Adi": "Kar Tanesi", - "Yayinevi": "İndigo Kitap", - "Yazar": "Beyza Alkoç" - }, - { - "Barkod": 9786052957929, - "Dil": "Icerik Yok", - "Fiyat": 11.7, - "Kitap_Adi": "Otomatik Portakal", - "Yayinevi": "İş Bankası Kültür Yayınları", - "Yazar": "Anthony Burgess" - }, - { - "Barkod": 9786053609322, - "Dil": "Türkçe", - "Fiyat": 3.9, - "Kitap_Adi": "Dönüşüm", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Franz Kafka" - }, - { - "Barkod": 9786052981320, - "Dil": "Icerik Yok", - "Fiyat": 23.4, - "Kitap_Adi": "Görmek", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Jose Saramago" - }, - { - "Barkod": 9789750826146, - "Dil": "Türkçe", - "Fiyat": 28.6, - "Kitap_Adi": "Masumiyet Müzesi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Orhan Pamuk" - }, - { - "Barkod": 9786053322122, - "Dil": "Türkçe", - "Fiyat": 16.25, - "Kitap_Adi": "Martin Eden", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Jack London" - }, - { - "Barkod": 9786057611031, - "Dil": "Icerik Yok", - "Fiyat": 6.6, - "Kitap_Adi": "Bir Delinin Hatıra Defteri", - "Yayinevi": "İndigo Kitap", - "Yazar": "Nikolay Vasilyeviç Gogol" - }, - { - "Barkod": 9786057906458, - "Dil": "Türkçe", - "Fiyat": 20.4, - "Kitap_Adi": "Alfa Kadını Olmak", - "Yayinevi": "Olimpos Yayınları", - "Yazar": "Hakan Özkan" - }, - { - "Barkod": 9786053608288, - "Dil": "Türkçe", - "Fiyat": 8.45, - "Kitap_Adi": "Kumarbaz - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Fyodor Mihayloviç Dostoyevski" - }, - { - "Barkod": 9786254486388, - "Dil": "Türkçe", - "Fiyat": 61.75, - "Kitap_Adi": "Lordlar ve Varisler - Hepimiz Gökyüzü Olmak İstedik (Özel İmzalı Kutulu)", - "Yayinevi": "Martı Yayınları", - "Yazar": "N.G. Kabal" - }, - { - "Barkod": 9786052989050, - "Dil": "Türkçe", - "Fiyat": 17.4, - "Kitap_Adi": "Bir Masalda İki Kral Olmaz", - "Yayinevi": "Kırmızı Kedi", - "Yazar": "Sacit Aslan" - }, - { - "Barkod": 9789750800016, - "Dil": "Türkçe", - "Fiyat": 5.85, - "Kitap_Adi": "Kuyucaklı Yusuf", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786050900286, - "Dil": "Türkçe", - "Fiyat": 32.2, - "Kitap_Adi": "Serenad", - "Yayinevi": "Doğan Kitap", - "Yazar": "Zülfü Livaneli" - }, - { - "Barkod": 9786053324744, - "Dil": "Türkçe", - "Fiyat": 35.1, - "Kitap_Adi": "Sefiller - 2 Cilt Takım", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Victor Hugo" - }, - { - "Barkod": 9786051856957, - "Dil": "Türkçe", - "Fiyat": 18.9, - "Kitap_Adi": "Taksiii", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ayşe Kulin" - }, - { - "Barkod": 9789756902165, - "Dil": "Türkçe", - "Fiyat": 19.25, - "Kitap_Adi": "Cesur Yeni Dünya", - "Yayinevi": "İthaki Yayınları", - "Yazar": "Aldous Huxley" - }, - { - "Barkod": 9786053606116, - "Dil": "Türkçe", - "Fiyat": 4.55, - "Kitap_Adi": "Satranç", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789753638029, - "Dil": "Türkçe", - "Fiyat": 4.9, - "Kitap_Adi": "Kürk Mantolu Madonna", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Sabahattin Ali" - }, - { - "Barkod": 9786051856872, - "Dil": "Türkçe", - "Fiyat": 22.4, - "Kitap_Adi": "Hayat Hanım", - "Yayinevi": "Everest Yayınları", - "Yazar": "Ahmet Altan" - }, - { - "Barkod": 9789750726439, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Simyacı", - "Yayinevi": "Can Yayınları - Çağdaş Dünya Yazarları Dizisi", - "Yazar": "Paulo Coelho" - }, - { - "Barkod": 9786053329527, - "Dil": "Icerik Yok", - "Fiyat": 3.9, - "Kitap_Adi": "Bir Çöküşün Öyküsü", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786052950722, - "Dil": "Icerik Yok", - "Fiyat": 4.55, - "Kitap_Adi": "Ay Işığı Sokağı", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9786053326090, - "Dil": "Türkçe", - "Fiyat": 5.2, - "Kitap_Adi": "Olağanüstü Bir Gece", - "Yayinevi": "İş Bankası Kültür Yayınları - Modern Klasikler", - "Yazar": "Stefan Zweig" - }, - { - "Barkod": 9789750850417, - "Dil": "Türkçe", - "Fiyat": 27.3, - "Kitap_Adi": "Kayıp Tanrılar Ülkesi", - "Yayinevi": "Yapı Kredi Yayınları", - "Yazar": "Ahmet Ümit" - }, - { - "Barkod": 9789755705859, - "Dil": "Türkçe", - "Fiyat": 14.0, - "Kitap_Adi": "Fareler ve İnsanlar", - "Yayinevi": "Sel Yayıncılık - Dünya Edebiyatı - Roman Dizisi", - "Yazar": "John Steinbeck" - }, - { - "Barkod": 9786051981833, - "Dil": "Türkçe", - "Fiyat": 33.6, - "Kitap_Adi": "Gece Yarısı Kütüphanesi", - "Yayinevi": "Domingo Yayınevi", - "Yazar": "Matt Haig" - }, - { - "Barkod": 9786254414046, - "Dil": "Türkçe", - "Fiyat": 16.8, - "Kitap_Adi": "Ne İçin Varsan Onun İçin Yaşa - Bir Arayışın Romanı", - "Yayinevi": "Destek Yayınları", - "Yazar": "Hikmet Anıl Öztekin" - }, - { - "Barkod": 9789750738609, - "Dil": "Türkçe", - "Fiyat": 26.25, - "Kitap_Adi": "Şeker Portakalı", - "Yayinevi": "Can Çocuk Yayınları - Çağdaş Dünya Edebiyatı Dizisi", - "Yazar": "Jose Mauro De Vasconcelos" - }, - { - "Barkod": 9786053607038, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "İnsan Neyle Yaşar? - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Hasan Ali Yücel Klasikler Dizisi", - "Yazar": "Lev Nikolayeviç Tolstoy" - }, - { - "Barkod": 9786053609902, - "Dil": "Türkçe", - "Fiyat": 6.5, - "Kitap_Adi": "Bir İdam Mahkumunun Son Günü - Hasan Ali Yücel Klasikleri", - "Yayinevi": "İş Bankası Kültür Yayınları - Edebiyat Dizisi", - "Yazar": "Victor Hugo" - }, - { - "Barkod": 9786257671293, - "Dil": "Türkçe", - "Fiyat": 18.0, - "Kitap_Adi": "Hayat Kaybettiğin Yerden Başlar", - "Yayinevi": "İndigo Kitap", - "Yazar": "Miraç Çağrı Aktaş" - }, - { - "Barkod": 9789751042125, - "Dil": "Türkçe", - "Fiyat": 18.2, - "Kitap_Adi": "Balıkçı ve Oğlu", - "Yayinevi": "İnkılap Kitabevi", - "Yazar": "Zülfü Livaneli" - }, - { - "Kitap_Adi": "Bostan", - "Yazar": "Selami Sahin", - "Yayinevi": "Cagdas", - "Barkod": "999999999999" - } -] \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..d1ada45 --- /dev/null +++ b/main.py @@ -0,0 +1,18 @@ +def display_main_menu(): + """Display the main menu options""" + pass + +def get_user_choice(): + """Get and validate user input for menu selection""" + pass + +def route_to_operation(choice): + """Route user to appropriate module based on choice""" + pass + +def handle_errors(): + """Centralized error handling for the application""" + pass + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/member_transactions.py b/member_transactions.py new file mode 100644 index 0000000..0a75e5c --- /dev/null +++ b/member_transactions.py @@ -0,0 +1,49 @@ +import time_operations +import book_operations +import os +import json + +def add_member(name, phone, address): + """Register a new library member""" + pass + +def delete_member(member_id): + """Remove a member from the system""" + pass + +def search_member(search_term): + """Search members by various criteria""" + pass + +def get_all_members(): + """Retrieve list of all members""" + pass + +def update_member(member_id, field, new_value): + """Update member information""" + pass + +def member_exists(member_id): + """Check if a member exists in the system""" + pass + + +def lend_book(member_id, book_barcode, loan_date, return_date): + """Process book loan to a member""" + pass + +def return_book(member_id, book_barcode): + """Process book return from a member""" + pass + +def get_loan_history(member_id=None): + """Retrieve loan history (all or for specific member)""" + pass + +def get_overdue_loans(): + """Identify books that are overdue""" + pass + +def update_loan_status(loan_id, status): + """Update the status of a loan""" + pass \ No newline at end of file diff --git a/time_utils.py b/time_utils.py new file mode 100644 index 0000000..69b03dc --- /dev/null +++ b/time_utils.py @@ -0,0 +1,19 @@ +def get_current_datetime(): + """Get current date and time in standard format""" + pass + +def calculate_due_date(loan_date): + """Calculate due date (2 weeks from loan date)""" + pass + +def format_date_for_display(date_obj): + """Format date for user-friendly display""" + pass + +def is_date_overdue(due_date): + """Check if a due date has passed""" + pass + +def parse_date_string(date_str): + """Convert date string to date object""" + pass \ No newline at end of file From e3550c9d81361ada2e39b7f8eecd372bf617892b Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Tue, 6 May 2025 13:28:09 +0200 Subject: [PATCH 02/57] =?UTF-8?q?Main=20menu=20tamamland=C4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/book_transactions.cpython-313.pyc | Bin 0 -> 1137 bytes __pycache__/main.cpython-313.pyc | Bin 0 -> 1742 bytes .../member_transactions.cpython-313.pyc | Bin 0 -> 2355 bytes __pycache__/time_utils.cpython-313.pyc | Bin 0 -> 1294 bytes book_transactions.py | 8 ++- core/__pycache__/menu.cpython-313.pyc | Bin 0 -> 1933 bytes core/__pycache__/routing.cpython-313.pyc | Bin 0 -> 1684 bytes core/__pycache__/utils.cpython-313.pyc | Bin 0 -> 1015 bytes core/menu.py | 46 +++++++++++++++ core/routing.py | 39 +++++++++++++ core/utils.py | 16 +++++ data/books.json | 15 ++--- data/members.json | 4 +- data/tracking.json | 2 +- main.py | 55 +++++++++++++----- member_transactions.py | 13 ++++- time_utils.py | 15 +++-- 17 files changed, 180 insertions(+), 33 deletions(-) create mode 100644 __pycache__/book_transactions.cpython-313.pyc create mode 100644 __pycache__/main.cpython-313.pyc create mode 100644 __pycache__/member_transactions.cpython-313.pyc create mode 100644 __pycache__/time_utils.cpython-313.pyc create mode 100644 core/__pycache__/menu.cpython-313.pyc create mode 100644 core/__pycache__/routing.cpython-313.pyc create mode 100644 core/__pycache__/utils.cpython-313.pyc create mode 100644 core/menu.py create mode 100644 core/routing.py create mode 100644 core/utils.py diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..facec21edd08370e8f4460b454faec83f5b91f61 GIT binary patch literal 1137 zcmah|&2AGh5cY2V6ACItDg*&Oz##|V(i1|J5El@ls=EAKBCWjHN#kZWuEyS=aN;HU z5Pc5b!nq)E;)a?RVC+rW6e2N_Kd;B5neUtNF1EJXj4b(nZ8KbE1>w{Nm$_1am7oI3J=0gT=yYkDls`TKgAzzPO~-IGhjd zbqpq^Xs=%59lF?Ymsj%L!&%v;;=3PDQ(?*?Tuz1xbK$1CR9*4?wzZ*zEVV6qZ}C)Q z1!$L-9?o(Gg-=q>;4a+Q*4w`= zwJ#iBb_}}|a-Y@}g7%Q6n^9N&)QxmapIE1`RS%A1Q(G~sVyS>2?>y@kfg{>L9(UQ#-41pv3Jev zZbf=RLP(X$p_f7=kPuv|9CPQEa4(8c(}@pAoWd!IIUu<3W^88z^u&R;nwhunz1f-f zz3**1lSu)J@$2a7cTs>}#7j>iU8T)Xc>qNyk~v^Rt`VllHOgYRM&{x#M|2SpnM<5# zs?^k?l80M_C5zEKuv9UIbGjJESu1CXiP;YUOckK4or5dg19h;7MGDCS@xD+XoLs1o zu1_p6914#1ZJZv!BtE4Re@S?xEWwqowYQ#!DJWr@9Z7(B2EZYuM9;EBdXYMu#dI9< z7Fkp~>k3(c*OjxdLgrrqD3FChlq6-qcez|;o-CuPbW8SR>HA7g9%jLRh zJ2Q=S-fvOg2t3M+%BpKuDAVv$NgN(t2tI+mRNrAlNlvtK!(YcXtgrfZbJLHs>EB!Z zBW)mP*G4y{9&6)2YU6(%DrorQC;{nyZvc0HIy4MlrmiaArY|X5v8zf2Z6_iSm3ZGk zMc^Hx9hNM_y=QY^2`M8BjCHV}B9^c2j-sD2?c}F&h3~G*}-ViBJsopjdX@wbMZ4IzR|> z2m{OFuG0u)1OhTf=0AdNF;3^7Z>r-@%YS_1W>Y;c^Jh8S^Yr|`K+k_-0~RRcLXRyv zEDj)FB9broQwqB>j6lC4{mA^1V7`=MH0)Xn=C2`mv4sP{g#$q<$*f=uHS9Hunf0pa z=-Ur>w$^sGYCBu&E}NN|Da3fT2e;_AkakQEhY93(tiiD1{{?hZY+#cZF@?i>8>cS6 zMw{x`Kk#j7V?SvVdzqp8AKfcqM}EHebBA~>E&FKjVpDqw8F+LCnJ1Cws$t0c7zGks z#4o?M{k^|J9o?ea4=JnJ`m)V*`-g98w5~fr-DIY>v!z=$-qgM`s~7rs%D3y(2zjMZOBwjcns#Etk9;jqF_9k)bc%xaT zkUkx6e1U$5`#wA%_XP=F5HG0V12D5*o1|xSx6+Px*SkBvnfcA^ve#={*q;7%cXHIQ ztlw!;w3-<#Qyg4b+~W4v7UW+WY(1|*jn{T9sPj5XhdU@6yn(XGn(;6 zvd!BlJG_Ik%eyFhe4F=ntuq@o`6kY{_!i3Tu|4SjNf3^Mxv9{#0a**+eEH+wj8>gi?xbVvJ>9grA;1 zee{Gq26-kZRZ($`8^=ChEa#k+tzkFaHNF z-iqF|mL#58zd5ZX4y=H%7p=;U{Sz^j7Xq!wFJdE*QTaD8$e~@lpT>T=)=7jC#d}3wGf{BBw^|k z2~Aw;u!-lh#wZeTn7Nn@-i05}MZt8#l)1j9V9Gr_LXKE*R_PF2t^#uZ%ZUiiS%k4E zz=$8wNs2|u3ycM_c8w#3zxff^!{2YM>&IEys`MWyANi4+p;#&z=3{UkCF2KYN+xU+ z#iE)iJvvC)t9QdbYIz6ylB(TLCQVAsIH*$oK`i~S)W|R*zDdocVDhRn|g2a^g9=uO=L;}O4VQMCVXcPs8y#vFR+f3c2NNJauOW;FP z{1NsQI0Y2?R>9eS6pAE`MhhJ-r0c{_nGb?tv4?Q}KTPeDYO_N_P(W@t!oH&WWwE$t zDu#YVQa{B~P6btSrienep)HKUtf};twP4&a#X|4N{{uPTlQkd%`*_gL`kHI2Z(~-I zDsw0)^|J`{DgiwTx@eZM%;Xj;y1Z(7EH$|Wmd@qU z3kw@dOW9m5tLu~6VSjQfovfyl)<$wEo6KdCx)$PLxW*4T?tvc@9xr0eW75LA{fw2( zzj?jE*0{TC=il1)9!s;C{94`HaUCP)TD6LStHw+oj~O+uToDiV>;6#5_KY@MqeCRW z0X3sA#656Fhvj1Lo8{Wo;NFnS_S#DYA`TJJ!S{cgJ4DOR$0Y09l5S))Q`vw zjyGzG-wQNzPqxEv!jixn8RIH^{DDHJvH_KYq}#B8Er@;Dp; z;PUYr?)I+0Vr_^c!RwIN42X^PDLx1}*iZ}U1)Sm7|A88x-?0mOtXyQ~6`eb#VEd*J zw$+8E%}6(zTV)X-ao^hpb>ySwsI;U}b|Gs> zDP$YL1BpGW;{Rel=i`u!orx5@pGbHMiu&!{)#E|$tAeBbS;czrQdfS B9MJ#( literal 0 HcmV?d00001 diff --git a/book_transactions.py b/book_transactions.py index 620afbc..f547228 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -1,4 +1,10 @@ -def add_book(barcode, title, publisher, author, language, price): +import time_utils +import member_transactions +import os +import json + + +def add_book(barcode, title, publisher, author): """Add a new book to the library""" pass diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..adccfea655d148e3baf7b402cf831b27471dd9e8 GIT binary patch literal 1933 zcmb`HO-vg{6vt=w!`O=<0a6kmlK7-LrkGjmtIYlv!SOB9uc17@4;-6ISL(bLtd|vIgImW&^Yap2^sQM)x-ot z?15ErG7T&K+v3!adf@-cJ8`8Ub1R@N`)e|udD|VL`C=~Zap`CG>pJH8-W(W6AL8HK zmpbNdq&3kECYQ|xmavk{G&8Qe!cv)>>r0xMoXIr74W!MCoyaVtO;_Q=Pg9GzB@0ui zsyn>+#{BHWj5^7(cg^_^P4k}GqYlnbuI84qnM5?ZXfG$wn;4u=W|=vU8LqFay7fHO zlDV*GGS&#W5SSGKvqlc2^Pk5Kq`>-18%j}W-;+8@ldDCg^PAP*x_XOUy^ivD>W9WB zU86;1^ru&g%KJYXMP+hNnmXOLFLfM4K9a0x0TVwwT)Qt}P_5lZ!jPx2O5(JIjK4xi zMy%0M{9ly>LpY-nt<@*mO-Mbd(MgO8wN(K+NipVwuVPqV3=2XNIT{u~2UfZ!xpFR* zTQ=Rg>`E?`%~-C?<#2u898LkqqN=O`25xXMWvwhPtR|2)dk$Qf${GcOn9psia+Yvn) z(WeWJeG#Jl5Dgccnb2fS>}fs3Zs5)b6XA*7Z5!V^9*Tt3aDHnhzco1?is{jU^NFsG zf3UlKOOK2doEXd>QBDHRbs)Wv%5XLoo=y*1Qw3T%%Gx1{KWw#vStCb+)Z|;6I0+KD z>6fOF$8G!4yUz%S-$s=xKoEj@EC0}#(WmVuh#-s#Dm@(0?I3suJg*v>4)JA!)ys^6 z6X7I>!0VCBKOD<%#qtl-Sx9^yQVgHQ3QlNDw_CtDa_XE3!OnLI4ns-!M^-+gS}}GB z!hjaeclx%;&cMA;fy?7osWLlZ6K<^V4Yc^y!Y8eqZ}$!q-0(BvE88d`@-2aggr+Ad zfKlSAYU6nEZbG~sHw28!5U}S$yd^5nL%?%ZGf}(s*lZ{U5^7~Uf!o>ay)$r{%WyF2 zp-~|xTt%m7e7y7;IhsD_^?m7WjwYtjLwrAU{n+_j1uxv|b}qGSm97!2EMCeCc{3Hv zBf>YAZVUfgX}qt^o9qgN@I+WIg85sdlpc^vCz3=jp9Cd(@hDhF$LLXWkd7Q*_S2g@ F$G?ygt0@2g literal 0 HcmV?d00001 diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7873d0bbfea49bb0c62e71f9bdb1d2e8809e3bbf GIT binary patch literal 1684 zcmd5+OK;Oa5MDcp>&6L9XhG%Gx;$$nDh{m>v=j*;o}xkxEr>?4TxUrFj$Q30pmNHA zOAe@9Dskh8_#KEF2P%YsrQ!mYhzpSZ0A@B$>d-&HNS@u9Z#|yf@AJ0O=_CQ0{JF36 zEk?+93_7NUlh$dNtdktcDL2R&)x?>4Lt&~MV=SJF?I$dei-Xs43GjVI)zX^yx}^x^ z)qd|LNlvQ8G1c?HwGwm_!BtgkMp<00tige<6s$y6Adq)3*qp0u3Oc?a{B zI#@MIex@6O>wqxF28u~wt0&M4`}`lr4P+h=4AfXYPAIGZw7^$XJgi$%)0@j zc^1^FWxqJFvML5}PVH`WWs16g4-Y`^pkBDQ%njrNK__t}+$wHzeNDn|Mr3%r^0Wnz-X;0v+zI*$0jx zY9)nQ+15g38KfeTPN4w8z(Axqb(mY~h6UjRCc{${d)s>HqM<0+D1dlWd>&k# z{4mmM7aA8fVL0D755p(pz=m-kI$4`(%pgA7n3d^~4P)f9G4MOvzgw$c-x?x`?9;i; z_~7%)ALAz&lGLLz>{6=i9ZddLl}V*&pp-N;DJ`Ouflh9xQZ$BV$#4bBphKmx-RPt~ zbfGR+MH=~ZJWsOAg^mJgvmVN$9fabLLAK2065Dy?ls#wJqwEk?#lOBoy^bq)5I@u= zKEyh-;~j_v_(gD%_Ab$D(~aqEe!Db}ZWyCTbGk31)vs=4qBI|qG+Vkz;x#n^mz2lF zV5qe!bA0Z&cm;B{2Rxg literal 0 HcmV?d00001 diff --git a/core/__pycache__/utils.cpython-313.pyc b/core/__pycache__/utils.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b5b017059a99a9dadd6e78d7f533c43ebcdea491 GIT binary patch literal 1015 zcmZWo&ubGw6rTOnq-heZBE=%I)@t2@QD|zVlpaJWqK4wORY)LAHe<5w{s=R>mi5$w z2ah5aFM{6MqM*Hb@YZ_sP{AThdy#taCgvaT%_dEwKA1Oe-uvEUzHeWenM?|SHTF-| zKT8Phi^GA*?Vx!cf)!*UQ@Vv{YnP~G%7ci?rUG6uRq$#}GPIwfsbIBR<4pyxz-m^& zt)OC@6z=Z9FLW{p4RzN==Ramj6Za9qJqVfd7`#~6Ffx_H*iZ{x_5!Y04&$2T5KIk) z%Rb{hEMft1x$0q;tfQvr<>S?f()`U?eTMoAq;!vvMg5|lFU>?j-S^6O{A%cwMYfzT zSw1DDFt8n#YeYOb>0q}~#Zxo`_lT#mQ{a}-bNV8B7QG#MH?ltRe)i3!*C)OXOn+Dc zNBaO^wOd8H1Xuy7;{fZv6MlLX zgcCZ*nzEVgu>gA(;i-A-gyaULKIK{iZV3#DYebxx;H6V|H{zK(_Nopkw+i$)1LT`b$_YcF3EAu7bhVk4rLnm8 E4=S?R%K!iX literal 0 HcmV?d00001 diff --git a/core/menu.py b/core/menu.py new file mode 100644 index 0000000..84eab70 --- /dev/null +++ b/core/menu.py @@ -0,0 +1,46 @@ +from core.utils import * + +def menu_header(menu_name, menu_width=30): + clear_screen() + print('-' * menu_width) + print('|' + f"\033[1;33m"+ menu_name.center(menu_width - 2)+f"\033[0m" + '|') + print('-' * menu_width) + +def display_menu(title, options, width=50): + menu_header(title, width) + for option in options: + print('|' + option.center(width - 2) + '|') + print('-' * width) + +def display_main_menu(): + main_menu = [ + "1 - ÜYELİK İŞLEMLERİ", + "2 - KİTAP İŞLEMLERİ", + "0 - ÇIKIŞ" + ] + + display_menu("HALK KÜTÜPHANEMİZE HOŞGELDİNİZ", main_menu) + +def display_members_menu(): + member_menu = [ + "1 - ÜYELERİ GÖSTER", + "2 - ÜYELİK EKLE", + "3 - ÜYE ARA", + "4 - ÜYELİK SİL", + "5 - KİTAP ÖDÜNÇ VER", + "6 - KİTAP İADE", + "7 - KİTAP TAKİBİ", + "0 - ÇIKIŞ" + ] + + display_menu("ÜYELİK İŞLEMLERİ", member_menu) + +def display_books_menu(): + book_menu = [ + "1 - KİTAPLARI GÖSTER", + "2 - KİTAP EKLE", + "3 - KİTAP ARA", + "4 - KİTAP SİL", + "0 - ÇIKIŞ" + ] + display_menu("KİTAP İŞLEMLERİ (ENVANTER)", book_menu) diff --git a/core/routing.py b/core/routing.py new file mode 100644 index 0000000..376d96f --- /dev/null +++ b/core/routing.py @@ -0,0 +1,39 @@ +from core.utils import * +import member_transactions as mt +import book_transactions as bt + +# ortak fonksiyon +def route_operation(choice, operation_map): + func = operation_map.get(choice) + if func: + func() + else: + show_message("Geçersiz işlem!") + +# üye menüsü yönlendirme +def route_member_operation(choice): + member_ops = { + 1: mt.show_members, + 2: mt.add_member, + 3: mt.search_member, + 4: mt.delete_member, + 5: mt.lend_book, + 6: mt.return_book, + 7: mt.get_loan_history, + 0: None + } + clear_screen() + route_operation(choice, member_ops) + +# Kitap menüsü yönlendirme +def route_book_operation(choice): + book_ops = { + 1: bt.get_all_books, + 2: bt.add_book, + 3: bt.search_book, + 4: bt.delete_book, + 5: bt.is_book_available, # isteğe bağlı + 0: None + } + clear_screen() + route_operation(choice, book_ops) \ No newline at end of file diff --git a/core/utils.py b/core/utils.py new file mode 100644 index 0000000..261c594 --- /dev/null +++ b/core/utils.py @@ -0,0 +1,16 @@ +import os +import json + +clear_screen = lambda: os.system('cls' if os.name == 'nt' else 'clear') + +# Merkezi hata kontrol rutini +def handle_errors(error): + if isinstance(error, ValueError): + print("Lütfen geçerli bir sayı giriniz!") + else: + print(f"Beklenmeyen bir hata oluştu: {error}") + +# Süreclerle ilgili durum bildirimi +def show_message(message): + print(message) + input("\nDevam etmek için bir tuşa basın...") \ No newline at end of file diff --git a/data/books.json b/data/books.json index aca5fa5..0f10eda 100644 --- a/data/books.json +++ b/data/books.json @@ -1,26 +1,23 @@ [ { "barcode": 9786053114772, - "language": "Türkçe", - "price": 20.4, "title": "Süt Lekesi", "publisher": "Destek Yayınları", - "author": "Esra Ezmeci" + "author": "Esra Ezmeci", + "status": "available" }, { "barcode": 9786057906465, - "language": "Türkçe", - "price": 20.4, "title": "Yanlış Hayat Doğru Yaşanmaz", "publisher": "Olimpos Yayınları", - "author": "Ethem Emin Nemutlu" + "author": "Ethem Emin Nemutlu", + "status": "available" }, { "barcode": 9786051856322, - "language": "Türkçe", - "price": 27.3, "title": "Hazan", "publisher": "Everest Yayınları", - "author": "Ayşe Kulin" + "author": "Ayşe Kulin", + "status": "available" } ] diff --git a/data/members.json b/data/members.json index a1a4f26..b9e79bb 100644 --- a/data/members.json +++ b/data/members.json @@ -1,12 +1,12 @@ [ { - "id": 27, + "member_id": 27, "name": "Naim Ucan", "phone": "545-345-6786", "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000" }, { - "id": 28, + "member_id": 28, "name": "Naime Ucan", "phone": "545-345-6786", "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000" diff --git a/data/tracking.json b/data/tracking.json index aac5e7f..04a3107 100644 --- a/data/tracking.json +++ b/data/tracking.json @@ -1,7 +1,7 @@ [ { "loan_id": "L001", - "id": 27, + "member_id": 27, "member_name": "Naim Ucar", "phone": "545-345-6786", "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000", diff --git a/main.py b/main.py index d1ada45..7b551fd 100644 --- a/main.py +++ b/main.py @@ -1,18 +1,47 @@ -def display_main_menu(): - """Display the main menu options""" - pass +import time_utils as tu +import book_transactions as bt +import member_transactions as mt +from core.utils import * +from core.menu import * +from core.routing import * -def get_user_choice(): - """Get and validate user input for menu selection""" - pass +# Geçerli bir sayısal giriş yapılmasını sağlar. +def get_user_choice(message="Lütfen geçerli bir işlem numarası giriniz: "): + while True: + try: + return int(input(message)) + except Exception as e: + handle_errors(e) -def route_to_operation(choice): - """Route user to appropriate module based on choice""" - pass +def run_member_menu(): + while True: + display_members_menu() + choice = get_user_choice() + if choice == 0: + break + route_member_operation(choice) -def handle_errors(): - """Centralized error handling for the application""" - pass +def run_book_menu(): + while True: + display_books_menu() + choice = get_user_choice() + if choice == 0: + break + route_book_operation(choice) + + +def main(): + while True: + display_main_menu() + choice = get_user_choice() + if choice == 1: + run_member_menu() + elif choice == 2: + run_book_menu() + + if choice == 0: + print("Programdan çıkılıyor...") + break if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/member_transactions.py b/member_transactions.py index 0a75e5c..77a1b01 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -1,5 +1,4 @@ -import time_operations -import book_operations +import book_transactions import os import json @@ -19,6 +18,10 @@ def get_all_members(): """Retrieve list of all members""" pass +def show_members(): + """Show list of all members""" + pass + def update_member(member_id, field, new_value): """Update member information""" pass @@ -28,6 +31,12 @@ def member_exists(member_id): pass +def save_tracking(): + """save updates to tracking.json file""" + +def get_tracking(): + """load tracking data from tracking.json file""" + def lend_book(member_id, book_barcode, loan_date, return_date): """Process book loan to a member""" pass diff --git a/time_utils.py b/time_utils.py index 69b03dc..c06d1d5 100644 --- a/time_utils.py +++ b/time_utils.py @@ -1,10 +1,15 @@ +from datetime import datetime, timedelta +import os +import json + + def get_current_datetime(): - """Get current date and time in standard format""" - pass + """Get current date and time in standard format ('YYYY-MM-DDTHH:MM:SS')""" + return datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S') -def calculate_due_date(loan_date): +def calculate_due_date(start_date, weeks = 2): """Calculate due date (2 weeks from loan date)""" - pass + return start_date + datetime.timedelta(weeks=weeks) def format_date_for_display(date_obj): """Format date for user-friendly display""" @@ -16,4 +21,4 @@ def is_date_overdue(due_date): def parse_date_string(date_str): """Convert date string to date object""" - pass \ No newline at end of file + pass From 25af92bed4894d6bda38acc399af5fa9c54c48ec Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Tue, 6 May 2025 13:36:19 +0200 Subject: [PATCH 03/57] menu tekrar duzenlendi --- .../member_transactions.cpython-313.pyc | Bin 2355 -> 2303 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1933 -> 1948 bytes core/menu.py | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index 72895e20baa03610b6c97330c6268480defd6cb4..bceeae5777ccee2a8d205358e2d5c1156f1a6d28 100644 GIT binary patch delta 260 zcmdli^k0zoGcPX}0}yC@lFX3a$oqzA@*hSKR*B$@{PM~3nY5&Nih->7+|=Bp)S}`d zF`!COAT9#wncU4>!zu-2NKWQqsb-Y{vScUUXOaS%AUb(Bi#w|vP(*1mJ8M0cB9NsD z#6|LxC$LUoRRc0LCTp_AF)B~)V3TFl0P=N!hUiVc!4|`+1>_k(4HB80&hE*o0~9d< zs@I$Rm_3Zu0LZhLY{%iE2Xamk$OT0p%Zotv6@jcO0$ET5GPMX~SP@8nk-_8*9I}ii Tlh1J&ure`ne&U$S%xM4s=@2(u delta 363 zcmew_xLJtzGcPX}0}zD0mdr5S$oqy#lNrbZ;m=Y)Vk$#4Bai}vU`A6YTY(`RsBSV3 zvy^xhw}MB0CIl$>X)@ko&CDw(Et#ytET26g~>6jQ&`o3OwGxS?0S=x*$k9bfV^UmdIg0d4j^@lyC}7!v?wn=DL+5E zNE0Zc3$#gZ@)EWfR&5~95Nw+pTp1hnU|M~0SJzNmds#a-N@I?#K=5(7L%eYODK~rD+7ZmBS@BkL4hHiL6g<5 zin~Su4qoyAC5qTU1W+Y|CUX%Vh|LKkZn5TMl@^yw{>Ws0~D#s`_c`B<3qx|Gk rtOtQ2J#6Ygku7Wnj7pQAvUv%JgY1$45%M5HX|g@L6r=j&D0X82k}NWu delta 226 zcmbQk-^h# z5gU+Q#10~Wk_?*6MSLJOCx`%R3AP&@8DhebH&xv&PIkLf9;mC%g^L$)=eO!Z% zY$%eLyoA++QFii8)`N`VlV`K3GfGT8%x1u-F!>9cmjFm#krarK1rZ99{n(`#RVQb% G8v_7=);6O6 diff --git a/core/menu.py b/core/menu.py index 84eab70..d62e6ed 100644 --- a/core/menu.py +++ b/core/menu.py @@ -9,7 +9,7 @@ def menu_header(menu_name, menu_width=30): def display_menu(title, options, width=50): menu_header(title, width) for option in options: - print('|' + option.center(width - 2) + '|') + print('|' + ' ' * 10 + option.ljust(width - 12) + '|') print('-' * width) def display_main_menu(): From ead051fb2c7bcd7bcc50018cfaca2b484d764fe2 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Wed, 7 May 2025 13:28:03 +0200 Subject: [PATCH 04/57] update --- __pycache__/book_transactions.cpython-313.pyc | Bin 1137 -> 1146 bytes .../member_transactions.cpython-313.pyc | Bin 2303 -> 2175 bytes book_transactions.py | 3 +- .../__pycache__/book_handlers.cpython-313.pyc | Bin 0 -> 2574 bytes .../member_handlers.cpython-313.pyc | Bin 0 -> 4451 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1684 -> 1748 bytes core/book_handlers.py | 42 +++++++++ core/member_handlers.py | 84 ++++++++++++++++++ core/routing.py | 27 +++--- main.py | 3 - member_transactions.py | 5 +- tracking.py | 0 12 files changed, 141 insertions(+), 23 deletions(-) create mode 100644 core/__pycache__/book_handlers.cpython-313.pyc create mode 100644 core/__pycache__/member_handlers.cpython-313.pyc create mode 100644 core/book_handlers.py create mode 100644 core/member_handlers.py create mode 100644 tracking.py diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index facec21edd08370e8f4460b454faec83f5b91f61..83ac177ede82831f71e56afde5bb782d68881f12 100644 GIT binary patch delta 362 zcmey!@r#4^GcPX}0}zz_m(0kR$eYK=I@ym=e&TE;M%Ib@l=*J46_+HIlol7W0@Wx? zeCE%}4P>xQwqi_E1nIlQosyc9T9O){l%JnnBmfivi5BsI2;RvD857kYs)|z+i;^=S zs)T`(d*tAfw9UOlDmpexO(}Bal#l7%rGu3^q4Du`Dq&Cow4}wMZH$D}|)>1hb(9 x$g^Ny6@eTLc0&=!3b5iL77z>JU=Ewy{FKt1RJ$UD$%ZU)j4YD_SY%m1@&FmcPf!2= delta 353 zcmeyx@sWe~GcPX}0}vz~mdr?+$eYK=GC7b*e&TE;MwW^Dlv#^efN~Sx`?G=+u}^kp zOjG0pvTkvwq~@fSq{b)Z=Vur314X!jxCl(}O!i||nf#8?7OJv1HL)l;1ENw0s0ySS zrqYKgRF?~&0n3DrmTU;apln_QJ2C|ZwL5`dJmdOEXc4>i8u0=7#f(5g0b+w-W--|C_{6fr%$&reoYW#IpsX~Kwu{V$79h`peN_ZTZlX-=wLk^E#U7CAj)Jlq7#Jj}$`|V-asKuM|TOUoan#fw)L^at!MfRuv#qWpX3C-ehGq17(mzF-X0FLJD_HsQ%{nG_})vwN~?0c8w;rnHFb0a+$MTmQIvFXk|qe1k(B E00G)OV*mgE delta 314 zcmW-c%}T>i5QTGNCJnXu!@o8f;}2?5LI~1@zJZ&%x#B`lK`9nX5hp^I-MDh2?W`2s zy7zJ1_z?O4b;b*4I3HZjoS6l)(ED}Wy1_5~Y4ulO;x*O7WbZ6#L}#KAaHF#D^Q~*ryS)KT-M<^rtJz*?RO~K?z2Q|4D_rKtCHgWSA!65>+6BGLbzzMm zre~(WI)ZhkEjqWxi<|6rSeVF|=W%V(y_t{?1K4FuX$%)?o4z52lsTW;Ptayla@q)T zb{+mw&|&R#rDQr_ptKuA;nNSp>#p1fU+HB3raLfEJ`Alq@1|kVXIix L38hX++R6U_6$(3< diff --git a/book_transactions.py b/book_transactions.py index f547228..d3a009a 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -3,8 +3,7 @@ import os import json - -def add_book(barcode, title, publisher, author): +def add_book(barcode, title, publisher, author, status): """Add a new book to the library""" pass diff --git a/core/__pycache__/book_handlers.cpython-313.pyc b/core/__pycache__/book_handlers.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4b29e43f85db6327dc0952e693bcf50634231052 GIT binary patch literal 2574 zcmc(hO>7%Q6vt=n^|!sXoradQO(#to<3L>?NvoOw>PK2ytD&kfv`Qpv9S`y1_1c=< zElN&SCDaH(YXlV$0)<<}jodi&7ISy7TceG8DHReYN&*t%#GCbJ3oRUw7|CyDXWqP- z+4u8*cFX5;BPbhaAhT>k=m+-DE|ykfYZ4kaP#nd%7@{21mYC(Nm0B_Dv&Q(dHfn=5 zKY*w`ZUgIx+rc{H4zR9yF6{h?g_;g?h9^f9J((e5noxN3s+s(|$sAEtah}Yz)-x;E z46?#+YYEH^G{c#_VB*|FtBui2dyD7--yZMQ`_M$|K|u-Bhh7UHq;NBiwnyBO-~=>g z>Bc+PhmZ$BTvx}(+8v!oVSZZQ149p1KK=~H)^2HQw+b0iA!(A8a7@y~f-KTMEC=y# zBjDveNiK^yOtc)yVrlKBq~Mf9v8I2!BI1;&mRFTXBoek!c22{R(hT1`(UPJpCsX-+ zRyAw|Dk+*_lazw4g)N4y+0C03J37Y3tLf_MDapRU?H3BhY+Enwc;o(`^u%y?-?dridE+wu=8yjeox3 z73$vI-+6aey@SQ64S)X<-*Ea$meP1>WGQ>cIq-`W1)jRkyDILn+x++z%tj9-mA!g1 zspF8s$0n6|m?hpx%>}ldM@l!jGu;`TbUkqf*E54}C-{joEIl)9|7wOcZddpjdwbIt zob6V(-iI!77l#x4MC)__o~Jz;cQ82P&auvkFaiKw)B1LBF#)_plooY(Dl3yk=W&r{ z^XVwoz2IWvh>xYqtI)y1UJ@68IC5Ev;zh?LaZ#jEY`DbBq9ltcndoe*?t7oVheP@f zXodh$0F{b;!0UW!=`FfDo}Pb!zrfICbyLR6~i{ekrL@#K1~dp zCTTJ;Tm?NPOKOHt!!GK8C)BDYYPzbj^J7-1z(Q?nA=!yI0KM!?Y7tBe$dMW!x-ayV z&Q^uJb>YCeaG)xLil-aiKq*r74%NM(b#JKZ4Hu^x{{B*~>fc}YkFNVitN!PTXBxg> z>1frrr|uhG_YGHl2a2b@_w6j6`qhqXj;paNv6ACU*Vl(@e6+#)OGlO`mP3`Hqm@AP zHvba!!zLcWnr+|2`gdsjhgkmuJPFhWQQ;EYGq5%*;xOvPs0W_}*U~^s4`zJA^7k6} zx~IphgFGPG{j=HI>zimgrgfIR2P>a^*wjLNjEedwbU~dHK>}5cq^0tTq)3Z6%hd7^ zLrgBOW)CeidDM4;yBk7WW0P|tj^`D9?Ix%yU`*Nj&<}&T_r(Wn9M~?e0Mq4Fh({%j zP!KhO^@Vv|X)b_Mx~wY@2wWqS$xko86yzSRDKLgdB|vMY2{5}7!`4n8#LXEFN>p9e zRO*94mA!)wuEDl~_Jr6A4o@>r0;WYQuJJ>S;Eu}9lhxon&d5lB|zFFVyCh`6w?b$Tg@E6FD73 zZ4g|UUNx1jSFKb@mY7;SF4<`!6OHt!6-WCan94pZS{l?&YOm`)7-suZ$HBCcI$Y!T zH-x^*_Q|U7a$PvFE}WC%xJzY8>^5_sV@|Du_ru-gcjx3ESjm)&GwvGLm_Um+HYbWQ zF3F_IlThr#2)0EmpXb&5TzRfSg2K3F&;{ZEUBY^StkOc+yG%sF(q8PBAdr9h} zZIodsu$L0x;U(|6m!!^*|8uT(y1L>VY=8dG{-qgc{f(aZTfl4VOhDr%Cvg&gjw3uA z1Lp$Y50W6_q+l;c1W5oJl0sm^QW$JRihzwuQLr&71~$IPr{jO86HcdjCsDw0dtd^Q7&jyM{mo-PH|m|}+$`74y|SC*bbc=4 zdq{yB| z?Ak~T*M#(zn5v8Dj)-irzdU(w&;FJ0RIk5+oQ5&q9@^c5_aPaFdmZwHDPcowYQSDQ~mYS@Mdb* zP8}&vZ6#8b19qaXo*3Lr4BCmI@|msV?u|W%?c{Jhnb}Nc?BwzC*)6fVGG&W>b#ZW0 z9JIxu^5g>{{PXi~p0A{TGg=c)Y%!2)!id`dqRB3}c@Fl*)=;X?;Lm zIFSqTReI3noD4c>sD+~lA6qUOri?D*lFazDXjJ1c>{saQ?W%@vSF!HWhshYBzpb?w z%>7^g!ku=((k#G7R@PU)${^VTt}cOH29`-~sSU!Q6UpP!l_F7`2q0%^ra>4`^b>24 z*W>G9+XPR63w=~$5sU}l!J5zy2yOJ7w8iJ^;^|HCv@O0|o@64~cSr2Ib;TABmnT1o zh#-<1V!9SRa&O;LE8hbaD-)H=m8HtDyGisg$UV{buP_%AH^f7==uijN=!4RI=eJ<~ zAFQ>hR0~}#D%DU^!~qwfX{I{c)py_e#~-gZbVX7%Yd^dL9913XAZ<~_(jik$ojGi% zAVmkEH~uIoGUzZx?M#3IN@wCW0(jB`(;BpZ@N~wHcDpkI2dag}%V4}{AF2sMAT=BN zp0!ga>ZuntQ!m)5G0++zTo-!o2tAdHHQ{L%yi84arb843n3P5F-_ZC5qe$muo79L* z$Bf25K0l3m6_y^D4Ky?czL^$vXo>g#q8d-Y6K_{<+(hS8Q(i`E?1!XL*DxV8 zzg^wsc1*}559JJyL7#(>;dZp9sI@1<;tH0!hrUaygpBXb2iglJb}!TO*ry( zDU1rsA;?K}@#v;_)D|<4oW#_1?V5J$MRxXAPgY+1I6C%#>dVPm^!abG^V4GIWR-#d z0Cw+sV66Y1u0SYnRv#F4im;+;Oq(7!IIJdh zS$CZ^*)M=5!1Ml3{zUWVgoV~VaucPTH`Pl`A(JU>>s45e=9!SPLa6|iQr@J+66vUK z36sdVe3lB8;TG(k!iCr+M^H^%XlKq(oKzIEY`Cf~5-M)5z-}mD9#f+y#p~18ra{b- zhstL^i6mK#^lUA9;$F}G6xI4y|4=JH2p?&G!WiMVSEr literal 0 HcmV?d00001 diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc index 7873d0bbfea49bb0c62e71f9bdb1d2e8809e3bbf..9b51f3cbf10d2ef0d2f176a9fb0a2385c3a2cbe0 100644 GIT binary patch delta 735 zcmZ8f%We}f6tz8%v~k@$S|k!FuS!rtrFMltY+wUIjl?D_5M7KWiN!=sGm>X2Rw!BU z0ic0BUr>o3;2%Z;fvj}L2SCD#4O}};V6f!lB- z9oW1>UDU-Lbel94BOQE9gk`vW> z3%`Fl96wKn){_U%z||CeqwEW9rL;9uq><8wCVMH}%aVFZ>so21w7EV?epv^37cyBe z7Z=Hq{W5t^oQgBXCln+-Zke@-PFV7hR40zu21yhY6cv;d5P)`0l3uXxjc%AKJ(7ig z+Lf^zEt{3mOskY8YAUy?rAo7t>Qu2 zgO^1x%IewwK=A+Y5>S+F=&3g^+V}_fW_OJ`@V@tb^B%+d-h3u+37HV0BRDs{&-YK> zkooKDAl@MhS$GHClp2CbJD5pXmYHJ73y7(f0;pLkVCmzd4^lTu%e)^xwFh+IQpQu= z>GcYc5>6e~?N4Qo`ZS_{QzQ?1GJxkup_uKbi zyd!jKkl}W`J%-ed+mOB*iz8$4UozZ^w?w@Yce3l+$fzZ^lx4jHFUSy+Psu=eo~%no z@=&TC3dgHjfcFU0va?a-2HKk~D0+Z5q?|XLmz%8z5W7)ckNW z-u&x%YP~)(>femnpQL1JM|XdjNUgls9V^w>cfKfBSUI0k?}m)79z>qc(`x>UcEp^3 zJKe|&1I{i$Us`dO;G_O8EJ1-80_p;q$xCfvZ3QTX;9}GtGRAm}E*_)CF{+(uD!z7R NmT_}Z)A7}8fZs5`w_pGO diff --git a/core/book_handlers.py b/core/book_handlers.py new file mode 100644 index 0000000..2e433b2 --- /dev/null +++ b/core/book_handlers.py @@ -0,0 +1,42 @@ +import book_transactions as bt +from core.menu import menu_header +from core.utils import show_message + +def handle_show_books(): + menu_header("📚 Kütüphanedeki Kitaplar") + books = bt.get_all_books() + for book in books: + print(f"- {book}") + input("\nDevam etmek için bir tuşa basın...") + +def handle_add_book(): + menu_header("📚 Yeni Kitap Ekle") + + barcode = input("Barkod: ").strip() + title = input("Kitap Adı: ").strip() + publisher = input("Yayınevi: ").strip() + author = input("Yazar: ").strip() + status = "available" + + # book_transactions içindeki fonksiyonu çağır + bt.add_book(barcode, title, publisher, author, status) + show_message(f"\n✅ '{title}' başarıyla eklendi.\n") + +def handle_search_book(): + menu_header("🔍 Kitap Ara") + search_term = input("Aramak istediğiniz kitap/başlık/yazar: ").strip() + results = bt.search_book(search_term) + + if results: + print("\n🔎 Arama Sonuçları:") + for book in results: + print(f"- {book}") + else: + print("❌ Aradığınız kriterlere uygun kitap bulunamadı.") + input("\nDevam etmek için bir tuşa basın...") + +def handle_delete_book(): + menu_header("🗑️ Kitap Sil") + barcode = input("Silmek istediğiniz kitabın barkodu: ").strip() + bt.delete_book(barcode) + show_message("✅ Kitap başarıyla silindi.") \ No newline at end of file diff --git a/core/member_handlers.py b/core/member_handlers.py new file mode 100644 index 0000000..415b506 --- /dev/null +++ b/core/member_handlers.py @@ -0,0 +1,84 @@ +import member_transactions as mt +from core.menu import menu_header +from core.utils import show_message +import time_utils as tu +import member_transactions as mt + +def handle_show_members(): + menu_header("👥 Kayıtlı Üyeler") + members = mt.get_all_members() + for member in members: + print(f"- {member}") + input("\nDevam etmek için bir tuşa basın...") + + +def handle_add_member(): + menu_header("🆕 Yeni Üyelik") + member_id = input("Üye ID: ").strip() + name = input("Ad Soyad: ").strip() + phone = input("Telefon Numarası: ").strip() + address = input("Adres: ").strip() + + mt.add_member(member_id, name, phone, address) + show_message("\n✅ Üyelik başarıyla oluşturuldu.") + + +def handle_search_member(): + menu_header("🔍 Üye Arama") + keyword = input("Aranacak isim, e-posta veya ID: ").strip() + results = mt.search_member(keyword) + + if results: + print("\n🔎 Eşleşen Üyeler:") + for member in results: + print(f"- {member}") + else: + print("❌ Üye bulunamadı.") + input("\nDevam etmek için bir tuşa basın...") + + +def handle_delete_member(): + menu_header("🗑️ Üyelik Sil") + member_id = input("Silinecek Üyenin ID'si: ").strip() + mt.delete_member(member_id) + show_message("\n✅ Üyelik başarıyla silindi.") + + +def handle_loan_book(): + menu_header("📕 Kitap Ödünç Ver") + member_id = input("Üye ID: ").strip() + barcode = input("Kitap Barkodu: ").strip() + + success = mt.loan_book(member_id, barcode) + if success: + print("\n✅ Kitap başarıyla ödünç verildi.") + else: + print("❌ Kitap şu anda ödünç verilemez.") + input("\nDevam etmek için bir tuşa basın...") + + +def handle_return_book(): + menu_header("📗 Kitap İade") + member_id = input("Üye ID: ").strip() + barcode = input("İade edilecek Kitap Barkodu: ").strip() + + success = mt.return_book(member_id, barcode) + if success: + print("\n✅ Kitap iadesi başarıyla yapıldı.") + else: + print("❌ İade işlemi başarısız.") + input("\nDevam etmek için bir tuşa basın...") + + +def handle_book_tracking(): + menu_header("📊 Kitap Takibi") + member_id = input("Üye ID: ").strip() + loans = mt.track_loans(member_id) + + if loans: + print("\n📚 Ödünç Alınan Kitaplar:") + for item in loans: + print(f"- {item}") + else: + print("ℹ️ Bu üyenin aktif ödünç aldığı kitap bulunmamaktadır.") + input("\nDevam etmek için bir tuşa basın...") diff --git a/core/routing.py b/core/routing.py index 376d96f..1b10279 100644 --- a/core/routing.py +++ b/core/routing.py @@ -1,6 +1,6 @@ from core.utils import * -import member_transactions as mt -import book_transactions as bt +import core.member_handlers as mh +import core.book_handlers as bh # ortak fonksiyon def route_operation(choice, operation_map): @@ -13,13 +13,13 @@ def route_operation(choice, operation_map): # üye menüsü yönlendirme def route_member_operation(choice): member_ops = { - 1: mt.show_members, - 2: mt.add_member, - 3: mt.search_member, - 4: mt.delete_member, - 5: mt.lend_book, - 6: mt.return_book, - 7: mt.get_loan_history, + 1: mh.handle_show_members, + 2: mh.handle_add_member, + 3: mh.handle_search_member, + 4: mh.handle_delete_member, + 5: mh.handle_loan_book, + 6: mh.handle_return_book, + 7: mh.handle_book_tracking, 0: None } clear_screen() @@ -28,11 +28,10 @@ def route_member_operation(choice): # Kitap menüsü yönlendirme def route_book_operation(choice): book_ops = { - 1: bt.get_all_books, - 2: bt.add_book, - 3: bt.search_book, - 4: bt.delete_book, - 5: bt.is_book_available, # isteğe bağlı + 1: bh.handle_show_books, + 2: bh.handle_add_book, + 3: bh.handle_search_book, + 4: bh.handle_delete_book, 0: None } clear_screen() diff --git a/main.py b/main.py index 7b551fd..c8ec77a 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,3 @@ -import time_utils as tu -import book_transactions as bt -import member_transactions as mt from core.utils import * from core.menu import * from core.routing import * diff --git a/member_transactions.py b/member_transactions.py index 77a1b01..5a3810f 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -1,6 +1,7 @@ import book_transactions import os import json +import time_utils def add_member(name, phone, address): """Register a new library member""" @@ -18,10 +19,6 @@ def get_all_members(): """Retrieve list of all members""" pass -def show_members(): - """Show list of all members""" - pass - def update_member(member_id, field, new_value): """Update member information""" pass diff --git a/tracking.py b/tracking.py new file mode 100644 index 0000000..e69de29 From 2bd66405b8bd4b6ee28796b73adc2adadc8d7a32 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Wed, 7 May 2025 13:51:50 +0200 Subject: [PATCH 05/57] update --- Project.md | 459 +++------------------------- core/data_io.py | 0 time_utils.py => core/time_utils.py | 0 3 files changed, 41 insertions(+), 418 deletions(-) create mode 100644 core/data_io.py rename time_utils.py => core/time_utils.py (100%) diff --git a/Project.md b/Project.md index edaa76d..2a40353 100644 --- a/Project.md +++ b/Project.md @@ -1,445 +1,68 @@ -**Veri Dosyaları:** +✅ Kürşad (Takım Lideri) +Sorumlu Olduğun Dosyalar: -* **`book.json`**: Kitapları (ID, başlık, yazar, yayın yılı, durum vb.) liste halinde saklar. -* **`member.json`**: Üyeleri (ID, isim, vb.) liste halinde saklar. -* **`tracking.json`**: Hangi üyenin hangi kitabı ne zaman aldığını ve ne zaman iade etmesi gerektiğini takip eden kayıtları liste halinde saklar. + main.py + core/menu.py + core/routing.py + core/book_handlers.py + core/member_handlers.py ---- +🧭 Proje akışı, yönlendirme, handler mantığı ve kullanıcı arayüzünün (CLI) temelinden sorumlu. -## Görev Dağılımı +👤 Furkan – Kitap İşlemleri +Dosyalar: -### Kürşad (Takım Lideri) + book_transactions.py + data/books.json -* **Sorumlu Olduğu Modüller:** `main.py`, `time_utils.py` -* **Genel Görevler:** Projenin genel akışını yönetmek, modüller arası entegrasyonu sağlamak, kullanıcı arayüzünü oluşturmak, zaman hesaplamalarını yapmak. +Görevler: -* **`main.py` Görevleri:** - * Kullanıcıya ana menüyü sunmak (Kitap Ekle/Sil/Ara, Üye Ekle/Sil/Ara, Kitap Ödünç Ver/Al vb.). - * Kullanıcıdan girdi almak ve ilgili modüldeki fonksiyonları çağırmak. - * Gerekli modülleri (`book_transactions`, `member_transactions`, `time_utils`) import etmek. - * Uygulama başlangıcında gerekli JSON dosyalarının varlığını kontrol etmek (os modülü ile), yoksa boş listelerle oluşturmak. - * Fonksiyon çağrılarından dönen sonuçları kullanıcıya göstermek. - * Hata yönetimini (örn. geçersiz kullanıcı girdisi) temel düzeyde yönetmek. +- Kitap ekleme, silme, güncelleme, arama, listeleme -* **`time_utils.py` Görevleri:** - * **Gerekli İmportlar:** `datetime` - * **Fonksiyonlar:** - * `get_current_timestamp()`: - * **Açıklama:** Mevcut anın tarih ve saat bilgisini döndürür. - * **Parametreler:** Yok. - * **Döndürdüğü Değer:** `datetime` objesi veya formatlanmış string (örn. 'YYYY-MM-DDTHH:MM:SS'). - * ```python - import datetime +- Kitap verileriyle ilgili book_transactions.py fonksiyonlarını yazmak - def get_current_timestamp(): - """Returns the current date and time.""" - # Örnek: return datetime.datetime.now() - pass - ``` - * `calculate_due_date(start_date, weeks=2)`: - * **Açıklama:** Verilen başlangıç tarihinden itibaren belirli bir hafta sonrası tarihi hesaplar. - * **Parametreler:** `start_date` (datetime objesi veya uyumlu string), `weeks` (int, varsayılan 2). - * **Döndürdüğü Değer:** `datetime` objesi veya formatlanmış string (örn. 'YYYY-MM-DDTHH:MM:SS'). - * ```python - import datetime +- JSON veri dosyasıyla etkileşim için data_io.py’ye veri çağrısı yapmak - def calculate_due_date(start_date, weeks=2): - """Calculates the date two weeks after the start_date.""" - # Örnek: return start_date + datetime.timedelta(weeks=weeks) - pass - ``` +👤 Mustafa – Üye (Member) İşlemleri +Dosyalar: ---- + member_transactions.py + data/members.json -### Furkan +Görevler: -* **Sorumlu Olduğu Modül:** `book_transactions.py` (Kısmen) -* **Genel Görevler:** Kitap ekleme, silme, arama ve JSON dosyasını okuma/yazma işlemlerinin temelini oluşturmak. Mehmet Lütfi ile koordineli çalışacak. +- Üye ekleme, silme, arama, listeleme -* **`book_transactions.py` Görevleri:** - * **Gerekli İmportlar:** `json`, `os` - * **Fonksiyonlar:** - * `_load_books(filepath='book.json')`: - * **Açıklama:** Kitap verilerini JSON dosyasından yükler. Dosya yoksa veya boşsa boş liste döndürür. (Bu fonksiyon modül içinde private olabilir `_` ile) - * **Parametreler:** `filepath` (string, dosya yolu). - * **Döndürdüğü Değer:** Kitap listesi (`list`). - * ```python - import json - import os +- Kitap ödünç verme / iade işlemlerini member_transactions.py içinde gerçekleştirmek - def _load_books(filepath='book.json'): - """Loads books from the JSON file.""" - if not os.path.exists(filepath): - return [] - try: - with open(filepath, 'r', encoding='utf-8') as f: - data = json.load(f) - return data - except (json.JSONDecodeError, FileNotFoundError): - return [] # Return empty list on error or empty file - pass # Placeholder - Implement file reading - ``` - * `_save_books(books, filepath='book.json')`: - * **Açıklama:** Güncel kitap listesini JSON dosyasına kaydeder. (Bu fonksiyon modül içinde private olabilir `_` ile) - * **Parametreler:** `books` (list, kaydedilecek kitap listesi), `filepath` (string, dosya yolu). - * **Döndürdüğü Değer:** Yok (`None`). - * ```python - import json +- Üye bilgilerini işlemek için data_io.py ile veri alışverişi yapmak - def _save_books(books, filepath='book.json'): - """Saves the books list to the JSON file.""" - try: - with open(filepath, 'w', encoding='utf-8') as f: - json.dump(books, f, indent=4, ensure_ascii=False) - except IOError: - print(f"Error: Could not write to file {filepath}") - pass # Placeholder - Implement file writing - ``` - * `add_book(title, author, publication_year, book_id)`: - * **Açıklama:** Yeni bir kitabı listeye ekler ve dosyayı günceller. ID'nin benzersizliğini kontrol edebilir. - * **Parametreler:** `title` (str), `author` (str), `publication_year` (int), `book_id` (str, örn. ISBN). - * **Döndürdüğü Değer:** Başarılı ise `True`, kitap zaten varsa veya hata oluşursa `False`. - * ```python - def add_book(title, author, publication_year, book_id): - """Adds a new book to the library.""" - # books = _load_books() - # Check if book_id already exists - # If not, create new book dict {'book_id': ..., 'status': 'available', ...} - # append to books list - # _save_books(books) - pass - ``` - * `delete_book(book_id)`: - * **Açıklama:** Verilen ID'ye sahip kitabı listeden siler ve dosyayı günceller. Kitabın ödünçte olup olmadığını kontrol etmek gerekebilir (Ali'nin fonksiyonlarıyla entegrasyon). - * **Parametreler:** `book_id` (str). - * **Döndürdüğü Değer:** Başarılı ise `True`, kitap bulunamazsa veya silinemezse `False`. - * ```python - def delete_book(book_id): - """Deletes a book from the library by its ID.""" - # books = _load_books() - # Find book by book_id - # Ensure book is 'available' before deleting (or handle borrowed case) - # Remove from list - # _save_books(books) - pass - ``` - * `search_book(query, search_by='title')`: - * **Açıklama:** Başlık, yazar veya ID'ye göre kitap arar. - * **Parametreler:** `query` (str, aranan değer), `search_by` (str, 'title', 'author', veya 'book_id'). - * **Döndürdüğü Değer:** Eşleşen kitapların listesi (`list`). Eşleşme yoksa boş liste. - * ```python - def search_book(query, search_by='title'): - """Searches for books by title, author, or ID.""" - # books = _load_books() - # Filter books based on query and search_by field - # Return list of matching books - pass - ``` +👤 Ali – Takip Sistemi ve Zaman İşlemleri +Dosyalar: ---- + tracking.py + data/tracking.json + core/time_utils.py -### Mehmet Lütfi +Görevler: -* **Sorumlu Olduğu Modül:** `book_transactions.py` (Kısmen) -* **Genel Görevler:** Kitap güncelleme, listeleme ve varlık kontrolü fonksiyonlarını yazmak. Furkan ile koordineli çalışacak. +- Ödünç alınan kitapların izlenmesi (kim aldı, ne zaman, vs.) -* **`book_transactions.py` Görevleri:** - * **Gerekli İmportlar:** `json`, `os` (Furkan'ın yazdığı `_load_books` ve `_save_books` fonksiyonlarını kullanacak) - * **Fonksiyonlar:** - * `update_book(book_id, new_data)`: - * **Açıklama:** Verilen ID'ye sahip kitabın bilgilerini günceller. - * **Parametreler:** `book_id` (str), `new_data` (dict, güncellenecek alanları içerir, örn. `{'title': 'Yeni Başlık', 'status': 'borrowed'}`). - * **Döndürdüğü Değer:** Başarılı ise `True`, kitap bulunamazsa `False`. - * ```python - # Requires _load_books and _save_books from Furkan - def update_book(book_id, new_data): - """Updates information for a specific book.""" - # books = _load_books() - # Find the book by book_id - # Update the book's dictionary with new_data - # _save_books(books) - pass - ``` - * `list_all_books()`: - * **Açıklama:** Kütüphanedeki tüm kitapları listeler. - * **Parametreler:** Yok. - * **Döndürdüğü Değer:** Tüm kitapların listesi (`list`). - * ```python - # Requires _load_books from Furkan - def list_all_books(): - """Returns a list of all books in the library.""" - # return _load_books() - pass - ``` - * `check_book_availability(book_id)`: - * **Açıklama:** Verilen ID'ye sahip kitabın ödünç alınıp alınamayacağını kontrol eder ('available' durumunda mı?). - * **Parametreler:** `book_id` (str). - * **Döndürdüğü Değer:** Kitap mevcut ve 'available' ise `True`, değilse `False`. - * ```python - # Requires _load_books from Furkan - def check_book_availability(book_id): - """Checks if a book exists and is available for borrowing.""" - # books = _load_books() - # Find book by book_id - # Return True if book exists and book['status'] == 'available', else False - pass - ``` - * `get_book_details(book_id)`: - * **Açıklama:** Verilen ID'ye sahip kitabın tüm detaylarını getirir. - * **Parametreler:** `book_id` (str). - * **Döndürdüğü Değer:** Kitap bulunduysa kitap sözlüğü (`dict`), bulunamadıysa `None`. - * ```python - # Requires _load_books from Furkan - def get_book_details(book_id): - """Gets the details of a specific book by its ID.""" - # books = _load_books() - # Find book by book_id - # Return the book dictionary if found, else return None - pass - ``` +- Geciken kitapların takibi ve listeleme +- Tarih ve zaman hesaplamaları (geç kaldı mı? kaç gün kaldı?) ---- +- time_utils.py içinde gerekli tarih fonksiyonlarını yazmak -### Mustafa +👤 Mehmet Lütfi – Ortak JSON Veri Yönetimi +Dosyalar: -* **Sorumlu Olduğu Modül:** `member_transactions.py` (Kısmen) -* **Genel Görevler:** Üye ekleme, silme, arama, güncelleme, listeleme ve üye JSON dosyasını okuma/yazma işlemlerini yapmak. Ali ile koordineli çalışacak. + core/data_io.py -* **`member_transactions.py` Görevleri:** - * **Gerekli İmportlar:** `json`, `os`, `datetime` (veya Kürşad'ın `time_utils` modülü) - * **Fonksiyonlar:** - * `_load_members(filepath='member.json')`: - * **Açıklama:** Üye verilerini JSON dosyasından yükler. Dosya yoksa veya boşsa boş liste döndürür. (Private olabilir) - * **Parametreler:** `filepath` (string). - * **Döndürdüğü Değer:** Üye listesi (`list`). - * ```python - import json - import os +Görevler: - def _load_members(filepath='member.json'): - """Loads members from the JSON file.""" - if not os.path.exists(filepath): - return [] - try: - with open(filepath, 'r', encoding='utf-8') as f: - data = json.load(f) - return data - except (json.JSONDecodeError, FileNotFoundError): - return [] - pass # Implement - ``` - * `_save_members(members, filepath='member.json')`: - * **Açıklama:** Güncel üye listesini JSON dosyasına kaydeder. (Private olabilir) - * **Parametreler:** `members` (list), `filepath` (string). - * **Döndürdüğü Değer:** Yok (`None`). - * ```python - import json +- Tüm JSON veri dosyalarıyla okuma/yazma işlemleri - def _save_members(members, filepath='member.json'): - """Saves the members list to the JSON file.""" - try: - with open(filepath, 'w', encoding='utf-8') as f: - json.dump(members, f, indent=4, ensure_ascii=False) - except IOError: - print(f"Error: Could not write to file {filepath}") - pass # Implement - ``` - * `add_member(name, member_id)`: - * **Açıklama:** Yeni üye ekler. ID'nin benzersizliğini kontrol etmeli. Katılım tarihini otomatik eklemeli. - * **Parametreler:** `name` (str), `member_id` (str, örn. 'M003'). - * **Döndürdüğü Değer:** Başarılı ise `True`, üye zaten varsa veya hata oluşursa `False`. - * ```python - # May need: import datetime or from time_utils import get_current_timestamp - def add_member(name, member_id): - """Adds a new member.""" - # members = _load_members() - # Check if member_id exists - # Get current date for join_date - # Create member dict {'member_id': ..., 'name': ..., 'join_date': ..., 'borrowed_books_count': 0} - # append to members list - # _save_members(members) - pass - ``` - * `delete_member(member_id)`: - * **Açıklama:** Verilen ID'ye sahip üyeyi siler. Üyenin ödünç kitabı olup olmadığını kontrol etmek gerekebilir (Ali'nin fonksiyonlarıyla entegrasyon). - * **Parametreler:** `member_id` (str). - * **Döndürdüğü Değer:** Başarılı ise `True`, üye bulunamazsa veya kitabı varsa `False`. - * ```python - def delete_member(member_id): - """Deletes a member by ID.""" - # members = _load_members() - # Check if member has borrowed books (needs integration with tracking data) - # Find member by member_id - # Remove from list - # _save_members(members) - pass - ``` - * `search_member(query, search_by='name')`: - * **Açıklama:** İsim veya ID'ye göre üye arar. - * **Parametreler:** `query` (str), `search_by` (str, 'name' veya 'member_id'). - * **Döndürdüğü Değer:** Eşleşen üyelerin listesi (`list`). - * ```python - def search_member(query, search_by='name'): - """Searches for members by name or ID.""" - # members = _load_members() - # Filter members based on query and search_by - # Return list of matching members - pass - ``` - * `update_member(member_id, new_data)`: - * **Açıklama:** Verilen ID'ye sahip üyenin bilgilerini günceller (örn. isim değişikliği). `borrowed_books_count` alanı Ali tarafından güncellenecek. - * **Parametreler:** `member_id` (str), `new_data` (dict, örn. `{'name': 'Yeni İsim'}`). - * **Döndürdüğü Değer:** Başarılı ise `True`, üye bulunamazsa `False`. - * ```python - def update_member(member_id, new_data): - """Updates member information (e.g., name).""" - # members = _load_members() - # Find member by member_id - # Update member's dictionary (excluding borrowed_books_count maybe) - # _save_members(members) - pass - ``` - * `list_all_members()`: - * **Açıklama:** Tüm üyeleri listeler. - * **Parametreler:** Yok. - * **Döndürdüğü Değer:** Tüm üyelerin listesi (`list`). - * ```python - def list_all_members(): - """Returns a list of all members.""" - # return _load_members() - pass - ``` - * `check_member_exists(member_id)`: - * **Açıklama:** Verilen ID'ye sahip bir üyenin olup olmadığını kontrol eder. - * **Parametreler:** `member_id` (str). - * **Döndürdüğü Değer:** Üye varsa `True`, yoksa `False`. - * ```python - def check_member_exists(member_id): - """Checks if a member exists by ID.""" - # members = _load_members() - # Check if any member in the list has the given member_id - pass - ``` +- book_transactions, member_transactions, tracking gibi modüllerin ihtiyaç duyduğu genel veri erişim fonksiyonlarını yazmak ---- - -### Ali - -* **Sorumlu Olduğu Modül:** `member_transactions.py` (Kısmen) -* **Genel Görevler:** Kitap ödünç verme ve iade alma mekanizmalarını kurmak, `tracking.json` dosyasını yönetmek. Mustafa, Kürşad, Furkan ve Mehmet Lütfi ile koordineli çalışacak. - -* **`member_transactions.py` Görevleri:** - * **Gerekli İmportlar:** `json`, `os`, `uuid` (tracking_id için), `datetime` (veya `time_utils` modülü), `book_transactions` modülünden ilgili fonksiyonlar (örn. `update_book`, `check_book_availability`, `get_book_details`). - * **Fonksiyonlar:** - * `_load_tracking_data(filepath='tracking.json')`: - * **Açıklama:** Ödünç alma takip verilerini JSON dosyasından yükler. (Private olabilir) - * **Parametreler:** `filepath` (string). - * **Döndürdüğü Değer:** Takip kayıtları listesi (`list`). - * ```python - import json - import os - - def _load_tracking_data(filepath='tracking.json'): - """Loads borrowing tracking data from the JSON file.""" - if not os.path.exists(filepath): - return [] - try: - with open(filepath, 'r', encoding='utf-8') as f: - data = json.load(f) - return data - except (json.JSONDecodeError, FileNotFoundError): - return [] - pass # Implement - ``` - * `_save_tracking_data(tracking_data, filepath='tracking.json')`: - * **Açıklama:** Güncel takip verilerini JSON dosyasına kaydeder. (Private olabilir) - * **Parametreler:** `tracking_data` (list), `filepath` (string). - * **Döndürdüğü Değer:** Yok (`None`). - * ```python - import json - - def _save_tracking_data(tracking_data, filepath='tracking.json'): - """Saves the tracking data list to the JSON file.""" - try: - with open(filepath, 'w', encoding='utf-8') as f: - json.dump(tracking_data, f, indent=4, ensure_ascii=False) - except IOError: - print(f"Error: Could not write to file {filepath}") - pass # Implement - ``` - * `lend_book_to_member(member_id, book_id)`: - * **Açıklama:** Bir üyeye kitap ödünç verir. Üye ve kitabın varlığını/uygunluğunu kontrol eder. `tracking.json`'a kayıt ekler. `book.json`'daki kitabın durumunu günceller (veya kitabı siler - proje tanımına göre). Üyenin ödünç aldığı kitap sayısını artırır (`member.json`). - * **Gerekenler:** `check_member_exists` (Mustafa), `check_book_availability` (Mehmet Lütfi), `update_book` (Mehmet Lütfi), `get_current_timestamp` (Kürşad), `calculate_due_date` (Kürşad), `update_member` (Mustafa - dolaylı olarak count güncellemesi için veya ayrı fonksiyon). - * **Parametreler:** `member_id` (str), `book_id` (str). - * **Döndürdüğü Değer:** Başarılı ise `True`, hata durumunda (üye yok, kitap yok/ödünçte) `False`. - * ```python - import uuid - # import book_transactions - # import time_utils (veya import datetime) - # from member_transactions import check_member_exists, update_member (veya _load/_save) - - def lend_book_to_member(member_id, book_id): - """Lends a book to a member and updates records.""" - # 1. Check if member exists (use check_member_exists) - # 2. Check if book exists and is available (use check_book_availability) - # 3. If both checks pass: - # a. Get current time (use get_current_timestamp) - # b. Calculate due date (use calculate_due_date) - # c. Create a unique tracking_id (e.g., using uuid.uuid4()) - # d. Create tracking record dict - # e. Load tracking data, append record, save tracking data - # f. Update book status to 'borrowed' in book.json (use update_book) OR remove book from book.json (per project spec) - # g. Update member's borrowed_books_count in member.json (load members, find member, update count, save members) - # h. Return True - # 4. If checks fail, return False - pass - ``` - * `return_book_from_member(tracking_id)`: - * **Açıklama:** Üyenin iade ettiği kitabı sisteme geri alır. `tracking.json`'dan ilgili kaydı siler (veya durumunu 'returned' yapar). `book.json`'a kitabı geri ekler veya durumunu 'available' yapar. Üyenin ödünç aldığı kitap sayısını azaltır. - * **Gerekenler:** `add_book` (Furkan) veya `update_book` (Mehmet Lütfi), `update_member` (Mustafa - dolaylı olarak count güncellemesi için). - * **Parametreler:** `tracking_id` (str) - Ödünç verme sırasında oluşturulan benzersiz ID. Alternatif olarak `member_id` ve `book_id` de kullanılabilir ancak `tracking_id` daha nettir. - * **Döndürdüğü Değer:** Başarılı ise `True`, kayıt bulunamazsa `False`. - * ```python - # import book_transactions - # from member_transactions import update_member (veya _load/_save) - - def return_book_from_member(tracking_id): - """Processes a returned book.""" - # 1. Load tracking data - # 2. Find the tracking record by tracking_id - # 3. If found: - # a. Get member_id and book_id from the record - # b. Remove the record from tracking data, save tracking data - # c. Update book status to 'available' in book.json (use update_book) OR add book back to book.json if it was deleted (use add_book - might need book details) - # d. Update member's borrowed_books_count in member.json (load members, find member, decrease count, save members) - # e. Return True - # 4. If record not found, return False - pass - ``` - * `list_borrowed_books(member_id=None)`: - * **Açıklama:** Belirli bir üyenin veya tüm üyelerin ödünç aldığı kitapları (ve iade tarihlerini) listeler. - * **Parametreler:** `member_id` (str, opsiyonel). Belirtilmezse tüm ödünçteki kitaplar listelenir. - * **Döndürdüğü Değer:** İlgili takip kayıtlarının listesi (`list`). - * ```python - def list_borrowed_books(member_id=None): - """Lists all borrowed books, optionally filtered by member.""" - # tracking_data = _load_tracking_data() - # if member_id: - # Filter tracking_data for the given member_id - # Return the filtered (or full) list - pass - ``` - ---- - -**Genel Notlar ve Talimatlar:** - -1. **JSON Kullanımı:** Tüm veriler (`books.json`, `members.json`, `tracking.json`) JSON formatında saklanacaktır. Veri okuma (`json.load`) ve yazma (`json.dump`) işlemleri için Python'ın `json` modülünü kullanın. Yazarken `indent=4` ve `ensure_ascii=False` parametrelerini kullanmak okunabilirliği artırır. -2. **Dosya Kontrolü:** `os` modülünü kullanarak (`os.path.exists`), bir JSON dosyasını okumadan önce var olup olmadığını kontrol edin. Dosya yoksa veya boşsa, hata almak yerine boş bir liste (`[]`) ile başlayın. -3. **Hata Yönetimi:** `try...except` bloklarını kullanarak olası hataları (örn. `FileNotFoundError`, `json.JSONDecodeError`, `IOError`) yakalayın ve kullanıcıya anlamlı mesajlar verin veya programın çökmesini engelleyin. -4. **İngilizce Fonksiyon İsimleri:** Fonksiyon isimleri, parametreler ve değişkenler için anlaşılır İngilizce terimler kullanın (istendiği gibi). -5. **Fonksiyon İmplementasyonu:** Herkes kendi fonksiyonlarının içini doldururken, sadece `pass` yerine fonksiyonun ne yapması gerektiğini açıklayan yorumlar ve temel mantık adımlarını ekleyebilir. Tam kodu yazmak bir sonraki aşamadır. -6. **İşbirliği:** Özellikle `member_transactions.py` üzerinde çalışan Ali ve Mustafa'nın, ayrıca `book_transactions.py` üzerinde çalışan Furkan ve Mehmet Lütfi'nin sık sık iletişimde olması ve fonksiyonların birbirleriyle nasıl etkileşeceğini planlaması önemlidir. Örneğin, Ali'nin `lend_book_to_member` fonksiyonu, Mehmet Lütfi'nin `update_book` fonksiyonunu çağıracaktır. -7. **Benzersiz ID'ler:** Kitaplar (`book_id`, örn. ISBN) ve Üyeler (`member_id`) için benzersiz ID'ler kullanın. Yeni eklemelerde bu ID'lerin zaten var olup olmadığını kontrol edin. `tracking.json` için `uuid` modülü ile (`uuid.uuid4()`) otomatik benzersiz ID üretebilirsiniz. -8. **Kod Standardı:** Mümkün olduğunca PEP 8 Python kodlama standartlarına uymaya çalışın (girintileme, isimlendirme vb.). \ No newline at end of file +- Gerekirse yedekleme veya ilk veri oluşturma (örneğin kitap_backup.json) diff --git a/core/data_io.py b/core/data_io.py new file mode 100644 index 0000000..e69de29 diff --git a/time_utils.py b/core/time_utils.py similarity index 100% rename from time_utils.py rename to core/time_utils.py From 0911caba3ceec8672e5dffe85c02ee0673e6096c Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Wed, 7 May 2025 17:08:46 +0200 Subject: [PATCH 06/57] update --- __pycache__/book_transactions.cpython-313.pyc | Bin 1146 -> 1091 bytes .../member_transactions.cpython-313.pyc | Bin 2175 -> 1447 bytes book_transactions.py | 2 -- .../member_handlers.cpython-313.pyc | Bin 4451 -> 4486 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 0 -> 1299 bytes core/member_handlers.py | 2 +- member_transactions.py | 22 +----------------- tracking.py | 21 +++++++++++++++++ 8 files changed, 23 insertions(+), 24 deletions(-) create mode 100644 core/__pycache__/time_utils.cpython-313.pyc diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index 83ac177ede82831f71e56afde5bb782d68881f12..3097549d139e7ba92bf71339a3f952bf933fff91 100644 GIT binary patch delta 161 zcmeyxahQYmGcPX}0}#CMmCmr7$SY}O0pv_&2xbUo^kyi6(2PZl!Aw#NMNGlWK$1C_ z1xT_4vjR!hU^XDh7R(ML*(VlUVq}@@%vi(7G5G*vBO}jbC#D)kfyw)sS{OxuB6^dH qm_r04faVwRfCye7p~*4%JF}CJ9FWNf#KoFG;sY}yBje;i7EJ)5OCT8l delta 216 zcmX@i@r#4^GcPX}0}zz_m(0kR$SdjP0pv_&2xbUo^kyi6(2PZlU_Mh36PRW$Vh(1K zVklw>W(Jb1!7MY4gv{KS0WT@SqdA3s_%OxAkaH}G z$56tI(ngk5qpz#-zRAu@n(f!~yV=>Ip5IoD|2NBeK`wsFBAbz|NFM1$;x-xvutl-Q hBXCt?=1T#p+9txU*7ecU|ZRU%cN)Df3QE5e005?q9CUs$l3MK|B8+3Sm=L(E!5e; z2F>KV^U>SG?p`u*-;$l=o7?p6Vckx?k}f|u6dEFdrt!R(P9mixoYOX+PN@VMVpFGL z7=_W0&ctjWpwkD}C1yS^*|=1U>_A8qwns;?blhRxKmK2xt=R3L&`JPxuK4o7PI4{QCi5C zC=(}L`@50fN^UWqhc3=P!3O4c0w2*K{Z2jIG&W6|vEoA=$=Fw^Emi88TTGf>>y5cF zFe!t{7EGYo_hyze-8?0undeh_Hj|_IR6K_R95cbGSBPH@A!K1S7FKy-`Aavs^tRi} a3L%e{1wx)K3pOb)ONieFS#M=}ncF|WWzAv$ diff --git a/book_transactions.py b/book_transactions.py index d3a009a..d5beb4c 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -1,5 +1,3 @@ -import time_utils -import member_transactions import os import json diff --git a/core/__pycache__/member_handlers.cpython-313.pyc b/core/__pycache__/member_handlers.cpython-313.pyc index 3e1917edd4c983fbc017ec30ae9f2d77d9771015..b1b7ee0e4a59fde1b9f42e8484dac6f60c1a4254 100644 GIT binary patch delta 1079 zcmaJiQm5>-$v|==~ktk_Od($>_T5@Kp#>B95 zsWCT3{Rza4gq<7x2fD$;F(f9g+>!DJJZAtcCNjyKd*-{}obSATjy)SU_f1om@Oig1 zSY3W;4s5LA$1BN|T$Y!B;Tg-va&d@f35)0DoB~SZv%H$qAaUpuSI$U~bQQF^tD-er z4Q-d3Kx?{5w3e%*O;wm<{36xc4hs#BH(G@%FP1qt%nG~wYV%RSl&VLXy7-~?Pnr~$63k|^5GBxin80!N2vRcQthPRAqgTTB&qIIHyZ>Cg z*IrQNvRF>6to$#HGOzQ1AEhDVpALgQJbZ@cpDd1(N0D%zn6sikd4;+#vm?)97ak<9 zGPMV9o}|REd0KqX7pG2WMY7&3HVUiF<{Hq7ZN{NbTsB6SCGHq$qCiva@tU!RR!7=piu#J5~x5R=GnlverwmV z3g+8ctp)p5n0?1sL{;nZ&dTs-t*nj{=&fA##r+CcPwL%1a@py)>fk z>4-*|xyBD-z3sA=8H!r7P!WD0U~PSw@lIUONaEa0f{GnbrY#;dV15x&G&cMoD1;&`3IJU$Y9q{&E81xzi;ErDq9u7b z(=WekH@o!r#@LoN{#m2J2W=ee^-H|Ura6W+Pa%ALwd}lo`A|5;X0=)KLqB-8mj6#4 zx-hgYZbia}Qe|KNXEJ*sR;6Se#{mobR(Hj(1yxZv9NmXYS$Q$Fc*e$23ESRByQ%HI zmUsCBIhM|nJMz4$Cu3u{ypx_Q9-CPps-hwGGD9+#K{s|0Iea9s!@&*)3{vD(sq3R; zTYgI$K4{y9*~g@B^s*E3u@UBvUeE!D^lII&6^ixx0_aG&szSHSnP+=rUo!uE*^eRF zy!6a6v)4DwQHBD)I+iAn5imhCns7h@1}JrMFZN%qSXu7kY*N0lh<31Zm}u|YF5~j4 zJu`9~c?0~?LV@y&;{098|F@lU4&5squMmgM*UFGbu^Vzc6F#APbzlK=n! diff --git a/core/__pycache__/time_utils.cpython-313.pyc b/core/__pycache__/time_utils.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1685947b0d3c914eda6de29d8bf44400413290ac GIT binary patch literal 1299 zcma)5Ur!T35Z}EPXgN{AKOiw?gEn$tjWH0kA&P-0LP`jS8e)^n(c40?y(6<%2|V#7 zc=HSJV*Cz%0V)q9$Ac#N!keLf0B81Esl4bUJ3F&GJNuj8>^6FOx*5vq=Ns!E4aUBc z(-QQxG@j$M$82Wvc{ay@&2iv@d}H1KL(d6F*oi>~NjqgH2iXRP4!Z;WPP-Fzm)(Ur zwPsl96H2*nL@Cb=WmvAtC{5avmC#)%(q>B%XwYaBQ0=j|t#!8a$2v2XDDs?)H~poK za~tT|e4NLtcbH}D%)F4HDAoX^9|}SyT;CG}Oq6}0LiAklL@9u(8;aq(D=67~K07nB zJUg4q=X17w*V^gLtYkCQY{py8%;qxrT*kH%ki=`Egdc20DHTGAa_+MR-5pJOxx(w0 z%VH6N4Ow_2UVH5och%ub6< zxPXZ}aj4saVaT8%a%wlwb# z(AZ>Uqga$7_KMs5G0&o{xg4E#E5%xcNc3tr$QXVowy+Q-N)S{KKET1M23TtleKfs44L=td#H#3|}4wlX`IIS#sv8&rZCK())hnb$s~js`})42*ob zRv(zCn-d4giMYsS!!eFAvUQQvo;|k4@eyR6$L-aKvDKocBxFlamcCcn7G7CxR^06c zNaGO%u3xYdtZpbu)`Zv}KM{@1LECAbf-4w91vQ9X#F$3PxluN=rqjTL= zV$)ShdTnT$jI^VqiaLX-%W9 zLg&z}&}GCABsE#3Pa~heEexj0)G(@_3C{UfHhj#|$ILwKH25?AD`oIUr>N3eHOSJL FeghON9@_u_ literal 0 HcmV?d00001 diff --git a/core/member_handlers.py b/core/member_handlers.py index 415b506..5f6a7f1 100644 --- a/core/member_handlers.py +++ b/core/member_handlers.py @@ -1,7 +1,7 @@ import member_transactions as mt from core.menu import menu_header from core.utils import show_message -import time_utils as tu +import core.time_utils as tu import member_transactions as mt def handle_show_members(): diff --git a/member_transactions.py b/member_transactions.py index 5a3810f..6a8fac5 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -1,7 +1,6 @@ -import book_transactions import os import json -import time_utils +import core.time_utils as tu def add_member(name, phone, address): """Register a new library member""" @@ -27,29 +26,10 @@ def member_exists(member_id): """Check if a member exists in the system""" pass - -def save_tracking(): - """save updates to tracking.json file""" - -def get_tracking(): - """load tracking data from tracking.json file""" - def lend_book(member_id, book_barcode, loan_date, return_date): """Process book loan to a member""" pass def return_book(member_id, book_barcode): """Process book return from a member""" - pass - -def get_loan_history(member_id=None): - """Retrieve loan history (all or for specific member)""" - pass - -def get_overdue_loans(): - """Identify books that are overdue""" - pass - -def update_loan_status(loan_id, status): - """Update the status of a loan""" pass \ No newline at end of file diff --git a/tracking.py b/tracking.py index e69de29..52b5d02 100644 --- a/tracking.py +++ b/tracking.py @@ -0,0 +1,21 @@ +import os +import json +import datetime + +def save_tracking(): + """save updates to tracking.json file""" + +def get_tracking(): + """load tracking data from tracking.json file""" + +def get_loan_history(member_id=None): + """Retrieve loan history (all or for specific member)""" + pass + +def get_overdue_loans(): + """Identify books that are overdue""" + pass + +def update_loan_status(loan_id, status): + """Update the status of a loan""" + pass \ No newline at end of file From 85cd1d37ecc55c5a7e549d1c65995e08de14e56d Mon Sep 17 00:00:00 2001 From: MLAcikgoz Date: Wed, 7 May 2025 17:33:05 +0200 Subject: [PATCH 07/57] Create lutfu --- lutfu | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lutfu diff --git a/lutfu b/lutfu new file mode 100644 index 0000000..ad381b7 --- /dev/null +++ b/lutfu @@ -0,0 +1,27 @@ +#JSON Dosyasından Veri Okuma + +import json +import os + +def read_json(filepath): + if not os.path.exists(filepath): + return {} + with open(filepath, 'r', encoding='utf-8') as f: + try: + return json.load(f) + except json.JSONDecodeError: + return {} + +#JSON Dosyasına Veri Yazma + +def write_json(filepath, data): + with open(filepath, 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=4) + +#İlk Veri Oluşturma veya Yedekleme(Opsiyonel) + +import shutil + +def backup_file(original_path, backup_path): + if os.path.exists(original_path): + shutil.copy(original_path, backup_path) From 5ea301b058c789ab597eb2a1431a2e3fbc5b4692 Mon Sep 17 00:00:00 2001 From: MLAcikgoz Date: Wed, 7 May 2025 17:47:45 +0200 Subject: [PATCH 08/57] Update lutfu --- lutfu | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/lutfu b/lutfu index ad381b7..8b13789 100644 --- a/lutfu +++ b/lutfu @@ -1,27 +1 @@ -#JSON Dosyasından Veri Okuma -import json -import os - -def read_json(filepath): - if not os.path.exists(filepath): - return {} - with open(filepath, 'r', encoding='utf-8') as f: - try: - return json.load(f) - except json.JSONDecodeError: - return {} - -#JSON Dosyasına Veri Yazma - -def write_json(filepath, data): - with open(filepath, 'w', encoding='utf-8') as f: - json.dump(data, f, ensure_ascii=False, indent=4) - -#İlk Veri Oluşturma veya Yedekleme(Opsiyonel) - -import shutil - -def backup_file(original_path, backup_path): - if os.path.exists(original_path): - shutil.copy(original_path, backup_path) From 903816a10ce6cadd0cfd1e998b447ce11a4c0c65 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Wed, 7 May 2025 18:09:56 +0200 Subject: [PATCH 09/57] mustafa 07.05 - 18:09 --- member_transactions.py | 140 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 127 insertions(+), 13 deletions(-) diff --git a/member_transactions.py b/member_transactions.py index 6a8fac5..3d1b595 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -1,30 +1,132 @@ +import book_transactions import os import json import core.time_utils as tu +def load_members(): + if not os.path.exists("members.json"): + return [] + try: + with open("members.json", 'r', encoding='utf-8') as f: + return json.load(f) + except: + return [] + +def save_members(members): + with open("members.json", 'w', encoding='utf-8') as f: + json.dump(members, f, indent=4, ensure_ascii=False) + def add_member(name, phone, address): - """Register a new library member""" - pass + name = input("Üye adı: ") + phone = input("Telefon numarası: ") + address = input("Adres: ") + + members = load_members() + existing_ids = [m['member_id'] for m in members] + next_id = max(existing_ids, default=0) + 1 + new_member = { + "member_id": next_id, + "name": name, + "phone": phone, + "address": address + } + members.append(new_member) + save_members(members) + print(f"\n{new_member['name']} adlı üye başarıyla eklendi. (ID: {new_member['member_id']})") + def delete_member(member_id): - """Remove a member from the system""" - pass + try: + member_id = int(input("Silinecek üyenin ID'sini girin: ")) + except ValueError: + print("Geçersiz ID. Lütfen sayısal bir değer giriniz.") + return + + members = load_members() + member = next((m for m in members if m['member_id'] == member_id), None) + if member: + members.remove(member) + save_members(members) + print(f"{member['name']} adlı üye başarıyla silindi.") + else: + print("Üye Bulunamadı.") def search_member(search_term): - """Search members by various criteria""" - pass + search_term = input("Aranacak kelime(isim, telefon, adres): ").lower() + members = load_members() + + result = [ + m for m in members + if search_term in str(m['name']).lower() + or search_term in str(m['phone']).lower() + or search_term in str(m['address']).lower() + or search_term == str(m["member_id"]) + ] + + if result: + print("\n Arama sonuçları: ") + for m in result: + print(f"[ID {m['member_id']}] {m['name']} | {m['phone']} | {m['address']}") + else: + print("Eşleşen üye bulunamadı.") + def get_all_members(): - """Retrieve list of all members""" - pass + return load_members() + +def show_members(): + members = load_members() + if not members: + print("Kayıtlı üye yok.") + return + print("\n Tüm üyeler: ") + for m in members: + print(f"[ID {m["member_id"]} {m['name']} | {m['phone']} | {m['address']}]") + def update_member(member_id, field, new_value): - """Update member information""" - pass -def member_exists(member_id): - """Check if a member exists in the system""" - pass + try: + member_id = int(input("GÜncellenecek Üyenin ID'sini Giriniz: ")) + except ValueError: + print("Geçersiz ID.") + return + print("\nGüncellenecek alanı seçin:") + print("1 - İsim") + print("2 - Telefon") + print("3 - Adres") + chois = input("Seçiminiz 1/2/3: ") + + field_map = { + "1": "name", + "2": "phone", + "3": "address" + } + + if chois not in field_map: + print("Geçersiz Seçim.") + return + + field = field_map[chois] + new_value = input(f"Yeni {field}: ") + + members = load_members() + for m in members(): + if m[member_id] == member_id: + m[field] = new_value + save_members(members) + print(f"Üye {field} Bilgisi {new_value} olarak Güncellendi.") + return + print("Üye Bulunamadı.") + +def member_exists(member_id): + + +def save_tracking(): + """save updates to tracking.json file""" + +def get_tracking(): + """load tracking data from tracking.json file""" def lend_book(member_id, book_barcode, loan_date, return_date): """Process book loan to a member""" @@ -32,4 +134,16 @@ def lend_book(member_id, book_barcode, loan_date, return_date): def return_book(member_id, book_barcode): """Process book return from a member""" + pass + +def get_loan_history(member_id=None): + """Retrieve loan history (all or for specific member)""" + pass + +def get_overdue_loans(): + """Identify books that are overdue""" + pass + +def update_loan_status(loan_id, status): + """Update the status of a loan""" pass \ No newline at end of file From 2a0200ccf1593f33e870e55405d06d02ccba6658 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Wed, 7 May 2025 18:10:18 +0200 Subject: [PATCH 10/57] mustafa --- __pycache__/time_utils.cpython-313.pyc | Bin 1294 -> 1301 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1948 -> 1955 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1015 -> 1022 bytes member_transactions.py | 55 +++++++++++++++++++++++++ 4 files changed, 55 insertions(+) diff --git a/__pycache__/time_utils.cpython-313.pyc b/__pycache__/time_utils.cpython-313.pyc index 0140393dd65a374553032cc4bd2fdfd8ed587b99..9511b0798f65faa357ab373261837ee03fe47947 100644 GIT binary patch delta 55 zcmeCI;}H8vwZ*5fT6Z delta 48 zcmZ3?KZl?DGcPX}0}velEV+@pf>F#Y#VRJuGejYvC_gJTCOkDYTR~UBWb*<>W;Os& CJq^bI diff --git a/core/__pycache__/utils.cpython-313.pyc b/core/__pycache__/utils.cpython-313.pyc index b5b017059a99a9dadd6e78d7f533c43ebcdea491..0ea5c95e79da794a5ae42c539f0f45a5c604e97d 100644 GIT binary patch delta 54 zcmey){*RseGcPX}0}z~$mzv1^L)I?YDkiizwWv78BOt~lKe;qFHLs*N#yzvdqcmx= IB;!3M0OQ0GZvX%Q delta 47 zcmeyz{+*rsGcPX}0}vEEmYm4_L(DwIDkjV`L?NIkKPxpRJT*02L07?KvjXEiCIDqj B4!r;X diff --git a/member_transactions.py b/member_transactions.py index 3d1b595..8f49625 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -16,6 +16,7 @@ def save_members(members): with open("members.json", 'w', encoding='utf-8') as f: json.dump(members, f, indent=4, ensure_ascii=False) +<<<<<<< Updated upstream def add_member(name, phone, address): name = input("Üye adı: ") phone = input("Telefon numarası: ") @@ -25,6 +26,30 @@ def add_member(name, phone, address): existing_ids = [m['member_id'] for m in members] next_id = max(existing_ids, default=0) + 1 +======= +def load_members(): + if not os.path.exists("members.json"): + return [] + try: + with open("members.json", 'r', encoding='utf-8') as f: + return json.load(f) + except: + return [] + +def save_members(members): + with open("members.json", 'w', encoding='utf-8') as f: + json.dump(members, f, indent=4, ensure_ascii=False) + +def add_member(name, phone, address): + name = input("Üye adı: ") + phone = input("Telefon numarası: ") + address = input("Adres: ") + + members = load_members() + existing_ids = [m['member_id'] for m in members] + next_id = max(existing_ids, default=0) + 1 + +>>>>>>> Stashed changes new_member = { "member_id": next_id, "name": name, @@ -96,6 +121,36 @@ def update_member(member_id, field, new_value): print("2 - Telefon") print("3 - Adres") chois = input("Seçiminiz 1/2/3: ") +<<<<<<< Updated upstream +======= + + field_map = { + "1": "name", + "2": "phone", + "3": "address" + } + + if chois not in field_map: + print("Geçersiz Seçim.") + return + + field = field_map[chois] + new_value = input(f"Yeni {field}: ") + + members = load_members() + for m in members(): + if m[member_id] == member_id: + m[field] = new_value + save_members(members) + print(f"Üye {field} Bilgisi {new_value} olarak Güncellendi.") + return + print("Üye Bulunamadı.") + +def member_exists(member_id): + + + +>>>>>>> Stashed changes field_map = { "1": "name", From e278363e3909a2e2feb9d0cc74e94703239c2171 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Wed, 7 May 2025 18:13:57 +0200 Subject: [PATCH 11/57] mustafa --- member_transactions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/member_transactions.py b/member_transactions.py index 8f49625..4c35ee1 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -200,5 +200,5 @@ def get_overdue_loans(): pass def update_loan_status(loan_id, status): - """Update the status of a loan""" + """Update the status of a loans""" pass \ No newline at end of file From df91f9f1b8acb6fbc58bbe533672c12f1d26ada8 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Wed, 7 May 2025 18:14:31 +0200 Subject: [PATCH 12/57] m --- member_transactions.py | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/member_transactions.py b/member_transactions.py index 4c35ee1..f797b85 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -40,6 +40,31 @@ def save_members(members): with open("members.json", 'w', encoding='utf-8') as f: json.dump(members, f, indent=4, ensure_ascii=False) +<<<<<<< Updated upstream +def add_member(name, phone, address): + name = input("Üye adı: ") + phone = input("Telefon numarası: ") + address = input("Adres: ") + + members = load_members() + existing_ids = [m['member_id'] for m in members] + next_id = max(existing_ids, default=0) + 1 + +>>>>>>> Stashed changes +======= +def load_members(): + if not os.path.exists("members.json"): + return [] + try: + with open("members.json", 'r', encoding='utf-8') as f: + return json.load(f) + except: + return [] + +def save_members(members): + with open("members.json", 'w', encoding='utf-8') as f: + json.dump(members, f, indent=4, ensure_ascii=False) + def add_member(name, phone, address): name = input("Üye adı: ") phone = input("Telefon numarası: ") @@ -122,6 +147,8 @@ def update_member(member_id, field, new_value): print("3 - Adres") chois = input("Seçiminiz 1/2/3: ") <<<<<<< Updated upstream +<<<<<<< Updated upstream +======= ======= field_map = { @@ -150,6 +177,34 @@ def member_exists(member_id): +>>>>>>> Stashed changes + + field_map = { + "1": "name", + "2": "phone", + "3": "address" + } + + if chois not in field_map: + print("Geçersiz Seçim.") + return + + field = field_map[chois] + new_value = input(f"Yeni {field}: ") + + members = load_members() + for m in members(): + if m[member_id] == member_id: + m[field] = new_value + save_members(members) + print(f"Üye {field} Bilgisi {new_value} olarak Güncellendi.") + return + print("Üye Bulunamadı.") + +def member_exists(member_id): + + + >>>>>>> Stashed changes field_map = { From f8e4e22371d9c7fcc818b8b2116527cec3179fc8 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Wed, 7 May 2025 18:20:19 +0200 Subject: [PATCH 13/57] Update member_transactions.py --- member_transactions.py | 251 +++-------------------------------------- 1 file changed, 14 insertions(+), 237 deletions(-) diff --git a/member_transactions.py b/member_transactions.py index f797b85..9694c2d 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -1,242 +1,31 @@ -import book_transactions import os import json import core.time_utils as tu - -def load_members(): - if not os.path.exists("members.json"): - return [] - try: - with open("members.json", 'r', encoding='utf-8') as f: - return json.load(f) - except: - return [] - -def save_members(members): - with open("members.json", 'w', encoding='utf-8') as f: - json.dump(members, f, indent=4, ensure_ascii=False) - -<<<<<<< Updated upstream -def add_member(name, phone, address): - name = input("Üye adı: ") - phone = input("Telefon numarası: ") - address = input("Adres: ") - - members = load_members() - existing_ids = [m['member_id'] for m in members] - next_id = max(existing_ids, default=0) + 1 - -======= -def load_members(): - if not os.path.exists("members.json"): - return [] - try: - with open("members.json", 'r', encoding='utf-8') as f: - return json.load(f) - except: - return [] - -def save_members(members): - with open("members.json", 'w', encoding='utf-8') as f: - json.dump(members, f, indent=4, ensure_ascii=False) - -<<<<<<< Updated upstream -def add_member(name, phone, address): - name = input("Üye adı: ") - phone = input("Telefon numarası: ") - address = input("Adres: ") - - members = load_members() - existing_ids = [m['member_id'] for m in members] - next_id = max(existing_ids, default=0) + 1 - ->>>>>>> Stashed changes -======= -def load_members(): - if not os.path.exists("members.json"): - return [] - try: - with open("members.json", 'r', encoding='utf-8') as f: - return json.load(f) - except: - return [] - -def save_members(members): - with open("members.json", 'w', encoding='utf-8') as f: - json.dump(members, f, indent=4, ensure_ascii=False) +import data_io def add_member(name, phone, address): - name = input("Üye adı: ") - phone = input("Telefon numarası: ") - address = input("Adres: ") - - members = load_members() - existing_ids = [m['member_id'] for m in members] - next_id = max(existing_ids, default=0) + 1 + """Register a new library member""" + pass ->>>>>>> Stashed changes - new_member = { - "member_id": next_id, - "name": name, - "phone": phone, - "address": address - } - members.append(new_member) - save_members(members) - print(f"\n{new_member['name']} adlı üye başarıyla eklendi. (ID: {new_member['member_id']})") - def delete_member(member_id): - try: - member_id = int(input("Silinecek üyenin ID'sini girin: ")) - except ValueError: - print("Geçersiz ID. Lütfen sayısal bir değer giriniz.") - return - - members = load_members() - member = next((m for m in members if m['member_id'] == member_id), None) - if member: - members.remove(member) - save_members(members) - print(f"{member['name']} adlı üye başarıyla silindi.") - else: - print("Üye Bulunamadı.") + """Remove a member from the system""" + pass def search_member(search_term): - search_term = input("Aranacak kelime(isim, telefon, adres): ").lower() - members = load_members() - - result = [ - m for m in members - if search_term in str(m['name']).lower() - or search_term in str(m['phone']).lower() - or search_term in str(m['address']).lower() - or search_term == str(m["member_id"]) - ] - - if result: - print("\n Arama sonuçları: ") - for m in result: - print(f"[ID {m['member_id']}] {m['name']} | {m['phone']} | {m['address']}") - else: - print("Eşleşen üye bulunamadı.") - + """Search members by various criteria""" + pass def get_all_members(): - return load_members() - -def show_members(): - members = load_members() - if not members: - print("Kayıtlı üye yok.") - return - print("\n Tüm üyeler: ") - for m in members: - print(f"[ID {m["member_id"]} {m['name']} | {m['phone']} | {m['address']}]") - + """Retrieve list of all members""" + pass def update_member(member_id, field, new_value): + """Update member information""" + pass - try: - member_id = int(input("GÜncellenecek Üyenin ID'sini Giriniz: ")) - except ValueError: - print("Geçersiz ID.") - return - print("\nGüncellenecek alanı seçin:") - print("1 - İsim") - print("2 - Telefon") - print("3 - Adres") - chois = input("Seçiminiz 1/2/3: ") -<<<<<<< Updated upstream -<<<<<<< Updated upstream -======= -======= - - field_map = { - "1": "name", - "2": "phone", - "3": "address" - } - - if chois not in field_map: - print("Geçersiz Seçim.") - return - - field = field_map[chois] - new_value = input(f"Yeni {field}: ") - - members = load_members() - for m in members(): - if m[member_id] == member_id: - m[field] = new_value - save_members(members) - print(f"Üye {field} Bilgisi {new_value} olarak Güncellendi.") - return - print("Üye Bulunamadı.") - -def member_exists(member_id): - - - ->>>>>>> Stashed changes - - field_map = { - "1": "name", - "2": "phone", - "3": "address" - } - - if chois not in field_map: - print("Geçersiz Seçim.") - return - - field = field_map[chois] - new_value = input(f"Yeni {field}: ") - - members = load_members() - for m in members(): - if m[member_id] == member_id: - m[field] = new_value - save_members(members) - print(f"Üye {field} Bilgisi {new_value} olarak Güncellendi.") - return - print("Üye Bulunamadı.") - -def member_exists(member_id): - - - ->>>>>>> Stashed changes - - field_map = { - "1": "name", - "2": "phone", - "3": "address" - } - - if chois not in field_map: - print("Geçersiz Seçim.") - return - - field = field_map[chois] - new_value = input(f"Yeni {field}: ") - - members = load_members() - for m in members(): - if m[member_id] == member_id: - m[field] = new_value - save_members(members) - print(f"Üye {field} Bilgisi {new_value} olarak Güncellendi.") - return - print("Üye Bulunamadı.") - -def member_exists(member_id): - - -def save_tracking(): - """save updates to tracking.json file""" - -def get_tracking(): - """load tracking data from tracking.json file""" +def member_exists(member_id): + """Check if a member exists in the system""" + pass def lend_book(member_id, book_barcode, loan_date, return_date): """Process book loan to a member""" @@ -245,15 +34,3 @@ def lend_book(member_id, book_barcode, loan_date, return_date): def return_book(member_id, book_barcode): """Process book return from a member""" pass - -def get_loan_history(member_id=None): - """Retrieve loan history (all or for specific member)""" - pass - -def get_overdue_loans(): - """Identify books that are overdue""" - pass - -def update_loan_status(loan_id, status): - """Update the status of a loans""" - pass \ No newline at end of file From d9e431f60c997b4fb9ee6d1a88c4439ace90b8ba Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Thu, 8 May 2025 10:47:26 +0200 Subject: [PATCH 14/57] up --- book_transactions.py | 1 + core/member_handlers.py | 3 +-- core/time_utils.py | 15 +++++---------- lutfu | 1 - tracking.py | 2 ++ 5 files changed, 9 insertions(+), 13 deletions(-) delete mode 100644 lutfu diff --git a/book_transactions.py b/book_transactions.py index d5beb4c..68b420e 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -1,5 +1,6 @@ import os import json +import data_io def add_book(barcode, title, publisher, author, status): """Add a new book to the library""" diff --git a/core/member_handlers.py b/core/member_handlers.py index 5f6a7f1..ca843e8 100644 --- a/core/member_handlers.py +++ b/core/member_handlers.py @@ -14,12 +14,11 @@ def handle_show_members(): def handle_add_member(): menu_header("🆕 Yeni Üyelik") - member_id = input("Üye ID: ").strip() name = input("Ad Soyad: ").strip() phone = input("Telefon Numarası: ").strip() address = input("Adres: ").strip() - mt.add_member(member_id, name, phone, address) + mt.add_member(name, phone, address) show_message("\n✅ Üyelik başarıyla oluşturuldu.") diff --git a/core/time_utils.py b/core/time_utils.py index c06d1d5..0624623 100644 --- a/core/time_utils.py +++ b/core/time_utils.py @@ -2,23 +2,18 @@ import os import json - -def get_current_datetime(): - """Get current date and time in standard format ('YYYY-MM-DDTHH:MM:SS')""" - return datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%S') - def calculate_due_date(start_date, weeks = 2): """Calculate due date (2 weeks from loan date)""" return start_date + datetime.timedelta(weeks=weeks) def format_date_for_display(date_obj): - """Format date for user-friendly display""" - pass + """Format date for user-friendly display like '08 Mayıs 2025, 14:30'.""" + return date_obj.strftime('%Y-%m-%d-%H:%M:%S') def is_date_overdue(due_date): """Check if a due date has passed""" - pass + return due_date < datetime.now() def parse_date_string(date_str): - """Convert date string to date object""" - pass + """Parse a date string like '2025-05-08-14:30:00' into a datetime object.""" + return datetime.strptime(date_str, '%Y-%m-%d-%H:%M:%S') diff --git a/lutfu b/lutfu deleted file mode 100644 index 8b13789..0000000 --- a/lutfu +++ /dev/null @@ -1 +0,0 @@ - diff --git a/tracking.py b/tracking.py index 52b5d02..bc59124 100644 --- a/tracking.py +++ b/tracking.py @@ -1,6 +1,8 @@ import os import json import datetime +import data_io + def save_tracking(): """save updates to tracking.json file""" From 8a0d5986a078753bebebb8aa258c6aecb7557204 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Thu, 8 May 2025 13:21:03 +0200 Subject: [PATCH 15/57] =?UTF-8?q?mustafa=20(kitap=20verme=20ve=20alma=20ha?= =?UTF-8?q?ri=C3=A7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member_transactions.cpython-313.pyc | Bin 1447 -> 4123 bytes .../member_handlers.cpython-313.pyc | Bin 4486 -> 4413 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1748 -> 1755 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1299 -> 1261 bytes member_transactions.py | 70 ++++++++++++++---- 5 files changed, 56 insertions(+), 14 deletions(-) diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index 97b90e95f025b21ea77be31a42c656a31017043f..1c321544a9349a8ae78f2731ab15d43654fcd058 100644 GIT binary patch literal 4123 zcma)9U2qfE6~6nU)vo?*$rOVU%-T@G+8{%X>)IhsL<}}g>;fCbY3-t{rL`@PcAdKt ze^2hTGXc^Wo3>2kBs1_<==1@mFFf=i4CbXzGB&ZhxSh_lFT5GM(*!!x>ACwOBx+{3 z_MW|a?z#7zd(U^yxmphfeF)lrFTXzVXC9${kPo-fPG|ijbgm*9$<%uY+iwa});HbH zU{5Xr!TG zI0d_%uujJPvfoW8f!s9>8cqQI+8t{|Sho@FL1kT_dyE#*b|k{zIC_iOj>f1)=(i$+ z-VV|>NAe6l3*^+?sEUo)DMQyx3P1A{(qnsnbdxf9RZHpVj5aQDCaoJLJE`O+Oin$Q zG4k-GPpX>9TC>=!uB0W(q{a-;j6}0H)ishZVAYYnVxrxc!!xn#J8soK2zK5%zEW5JdFQV?i^qR+@LL9j zx|V{S@c*Axmhwbk&Sl}5K@RVRKfV+FadW(mxhn|Jy<6vtH+t`GV@SWzqC44mGm|3Q zbQ^J-1(plY0kD+Es@zKrm!Wflb*DamH=&Ox*&}nZx6=l7m3zlu!Mzech{?hxbrzFD z!USfI3FnAJn_NaqgAdGrsu=~WCKV%<$w&+i5Xm4AlT8%J$~!(1HKE+-1oyJq5T`7 z{h2||>sR%Am_PWsyeV>UZYxLKGH@ynvfYu;m;_UYK4cA=;J6O;!4~x%nIZvrj2;jW z@&m>-kH!v{*G)iXkeNB+}_QY7tn_xDI-h|hUG_fLD6HEmcblEN8 zl{un6gk&%DEnA?^x3SNq$H7_=9*rGCk}zlr4%#zmOb!?#$D3BiltMQDn1DxO@oVrh zSxw2Qre_j@MK!%jI*nDszzr}|*abvX(%HG&;=MneSH)4~{xt>9-9DdHMD=u5)zX=m zxcg{NmuOOwEO=?XSx>Ih84DUrhbv#y21(O}-LbO7PMByk0r~DRnnI;;{})3= z>PE|*t@F)?zV0bC_dVQw^z+6mjb98swUWs%B2Cn+&_vmxAriGO2@NBYg*=#v6-Xty z_Z0-rp+dF*VWy<#ZpS2#>943a5Ptx6lf!CGKciX!gNbR7HA#5l?-Q~Gh_%y?-831j z+8#at0%R{%&H9euf9q$tsa_~gi{bv+p@ne&La=}8$ltudWxi%QbSX4*W|41L;Wy0; zE%Mt|_~6XuB6p>sR12Vfrxc1mUc-!1Y7A zoI-U-igW^10GqaxmLFAacoh;}kZ=xh9aMa#Gg*M-Fd&l8&=ad#2N{fH+g+y)vweUSS8J`%(0CQ2+ zwZgsMWl62*5-+f%LKFyS=5EPzw+4VEd;rlorfblJk^>b71PI&@-@les?_X0jr{Gk^ z4eQhwBacl_RzIs^J5X5DZ>S1RO(gRw&e;J&@&kz}1FD_D!UriFc8&--!p;SRIFnp1 zjAuZ~h2sf_Hodmaa3RjDi(XWg{hPnqQBo3Mv0^ymSVz~I`Y(r_w?ovcr3^Ws7U-5YH%85#gS5^c`?vJSiQw~F*Eyqu^U+51X`X5D6-{W0ThgsBCQVt`&PrC@9A0?R2$@q zHXYydZX0{|Z4PJ(zRQi=7p#CMcQFX~^1x2GRt!p%Xq3)mFMohnHt;=^D^A3XRS zLddD6Amxi+oK= z$7(E}$*IXgK9e;}UqzqJ7vQp~71m}kQTQT;_=7p} z`%Ue}#1yh=gZOThp(yGR5*{J{U(xH2P-u SwPlT?DPfHVvQCI~oc{w8j8a+v literal 1447 zcmah}&2G~`5MDb@8z&7F2qaosb<3eB2YRYFAcT-O0cus%{9Gbgjy-AI+TLo`DTEU* z(TC_OZH0sc7jCF|0cQMD5)r{jJKo*do%!aQSx>v&wjlYj|6sJ!5aK&8YO$-y^pGYO z!V{kLMqv51&??sU>jpYfc=o!$rq>|7IC{908Zs&xz|6Oiu z9;;06o=r@fT>7OAUGmywjI6$hZ%%7U6A?1@S{CK8bp)w82g;&!B!{R{nU6r~38j}F zASZok8MguvN1FXeY>_tI2olJlMzKnJj0CxS*dg^_01rI~FdS9kwH!?3d4RDRYZ+op z1jj*%p=X(nF3$S2o6e!A_A4&#P~7f33R>OBA{sW1AjcSph=i&t)lddWQe!IP7eo{} zm8q{DL+;b5DtC={DZ*_UGs$zUYgrU_?cG@vyZs0AtZ<@mxlE}E! zY5sYTjG^wLstV)6OnU|M~0SFxGWHOXC^4?;U^+>jg2`x@7Dvt38h;hkJF3nBND=Cg~&n)pM zO`80daW)q#P(3pcfBrH#fYopE2d0$C_c#@KLYYiKqClX)Fj=2Vj3u2xlWp=@X7S0N zn41`xCpWN&vw###p2H#|Ar55l195Q-kZ54I!@_?-K=}%b%H+o^PHZYO%CE4fZ`NjA z&d4Y<`7&E1s|-+;uQ=GForm$2%P) v6vp2M6uQeV3sn1?--6L&vWdV|Zjf7xKrSd!m@Fa~$jZ)W^GRfKmY@s(%>Y#? delta 485 zcmdn1)TYe)nU|M~0SH$6N@qlF*mRp>;skuq1Me&&_w^;HL zb5n1z7G&h-rQTvsOi3w9EiNtw8La>WMSMWUEy0Y$yp){Oc%W=NL}!sCP@Er#i}NRc z;8&X5!{R8Yxxn-ai_skxfeV6GS6Qr!1Sa=0NpAkm(#*&xJh_@Jl2s0~u}Bn1P44DUVpRk(G&XPIs9gEJ>TF)uzTKR>$&6xb`7i$o`1;Id@Y-^|55i;+=i@=~5opd0jgT^VgQm-0>r z3Gwo`$sI;}Hgl@$O{ C)D7GK diff --git a/core/__pycache__/time_utils.cpython-313.pyc b/core/__pycache__/time_utils.cpython-313.pyc index 1685947b0d3c914eda6de29d8bf44400413290ac..c099f5c0a6f014352e0bf4916cd1653ef5b1b8f6 100644 GIT binary patch literal 1261 zcma)5O-~a+7@pZKP}mSfLiAv935q*NNP5JQ4N0>KbAM2$^0%XUi_w!6*DR#Faz z-=Gpb_y@S@!GGWnC~zQI4w~qNo3Wle`M%R7)@Y)WooDCc-F@bHpLZJF-CYFQ{IkK* zdxenCIJsyrm#r}muLGhJovx5&!pSn_l;K=iQMe-CF&@)9^wcfgWBM#jPgE0^C8HW&G&wfsHbs+Mgp5c&H~uvFd5uhoK*?-{Fpq3RkBfykK3 zTRyk*DAA|}jw>cAweX5{aWVr=)+9j#P_gI-*e9Q~zBlpH{_*4f@wa_P{nJO$O! znlvSS$RS;9mij*n9qwQ@x&pG)7uQTK zY?OdS4h}fpR%9MpmP*4jlajvW(& G{^KWN7Z~~g literal 1299 zcma)5Ur!T35Z}EPXgN{AKOiw?gEn$tjWH0kA&P-0LP`jS8e)^n(c40?y(6<%2|V#7 zc=HSJV*Cz%0V)q9$Ac#N!keLf0B81Esl4bUJ3F&GJNuj8>^6FOx*5vq=Ns!E4aUBc z(-QQxG@j$M$82Wvc{ay@&2iv@d}H1KL(d6F*oi>~NjqgH2iXRP4!Z;WPP-Fzm)(Ur zwPsl96H2*nL@Cb=WmvAtC{5avmC#)%(q>B%XwYaBQ0=j|t#!8a$2v2XDDs?)H~poK za~tT|e4NLtcbH}D%)F4HDAoX^9|}SyT;CG}Oq6}0LiAklL@9u(8;aq(D=67~K07nB zJUg4q=X17w*V^gLtYkCQY{py8%;qxrT*kH%ki=`Egdc20DHTGAa_+MR-5pJOxx(w0 z%VH6N4Ow_2UVH5och%ub6< zxPXZ}aj4saVaT8%a%wlwb# z(AZ>Uqga$7_KMs5G0&o{xg4E#E5%xcNc3tr$QXVowy+Q-N)S{KKET1M23TtleKfs44L=td#H#3|}4wlX`IIS#sv8&rZCK())hnb$s~js`})42*ob zRv(zCn-d4giMYsS!!eFAvUQQvo;|k4@eyR6$L-aKvDKocBxFlamcCcn7G7CxR^06c zNaGO%u3xYdtZpbu)`Zv}KM{@1LECAbf-4w91vQ9X#F$3PxluN=rqjTL= zV$)ShdTnT$jI^VqiaLX-%W9 zLg&z}&}GCABsE#3Pa~heEexj0)G(@_3C{UfHhj#|$ILwKH25?AD`oIUr>N3eHOSJL FeghON9@_u_ diff --git a/member_transactions.py b/member_transactions.py index 9694c2d..1a7cb1b 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -3,29 +3,71 @@ import core.time_utils as tu import data_io +def load_members(): + if not os.path.exists("members.json"): + return [] + try: + with open("members.json", "r", encoding= 'udf-8') as f: + return json.load(f) + except: + return [] +def save_members(member): + with open("members.json", 'w', encoding= 'udf-8') as f: + json.dump(member, f, indent=4, ensure_ascii=False) + def add_member(name, phone, address): - """Register a new library member""" - pass + members = load_members() + existing_id = [m['member_id'] for m in members] + next_id = max(existing_id, default=0) + 1 + + new_member = { + 'member_id': next_id, + 'name': name, + 'phone': phone, + 'address': address, + } + + members.append(new_member) + save_members(members) + print(f"{new_member['name']} adlı üye başarıyla eklendi. (ID: {new_member['member_id']})") def delete_member(member_id): - """Remove a member from the system""" - pass + members = load_members() + member = next(m for m in members if m['member_id' == member_id, None]) + if member: + members.remove(member) + save_members(members) + print(f"{member['name']} adlı üye başarıyla silindi.") + else: + print("Üye Bulunamadı.") def search_member(search_term): - """Search members by various criteria""" - pass + members = load_members() -def get_all_members(): - """Retrieve list of all members""" - pass + result = [ + m for m in members + if search_term in str(m['name']).lower() + or search_term in str(m['phone']).lower() + or search_term in str(m['address']).lower() + or search_term in (m['member_id']) + ] -def update_member(member_id, field, new_value): - """Update member information""" - pass + if result: + print("\n Arama Sonuçları: ") + for m in result: + print(f"ID: {m['member_id']}") + print(f"İSİM: {m['name']}") + print(f"Telefon: {m['phone']}") + print(f"adres: {m['address']}") + else: + print("Eşleşen üye bulunamadı.") + +def get_all_members(): + return load_members def member_exists(member_id): - """Check if a member exists in the system""" - pass + members = load_members() + return any(m['member_id'] == member_id for m in members) def lend_book(member_id, book_barcode, loan_date, return_date): """Process book loan to a member""" From 63df3f06f65056898d485726c59c42e9ce0955fa Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Thu, 8 May 2025 13:37:21 +0200 Subject: [PATCH 16/57] x --- __pycache__/book_transactions.cpython-313.pyc | Bin 1091 -> 1122 bytes .../member_transactions.cpython-313.pyc | Bin 4123 -> 4366 bytes book_transactions.py | 2 +- core/__pycache__/data_io.cpython-313.pyc | Bin 0 -> 154 bytes .../member_handlers.cpython-313.pyc | Bin 4413 -> 4406 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1955 -> 1948 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1755 -> 1748 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1261 -> 1254 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1022 -> 1015 bytes member_transactions.py | 2 +- 10 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 core/__pycache__/data_io.cpython-313.pyc diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index 3097549d139e7ba92bf71339a3f952bf933fff91..f118657b4477a219027463d0376016a112ac176b 100644 GIT binary patch delta 208 zcmX@i@rZ->GcPX}0}#Ydm&x#($SdjO0OU+%2xbUo^kyi6(2PZlU_Mh3b1;(>LlH|b zGmvBrW&x6H!K^@%J(vwhas;yjNzRE0ml#8lrWQs~ zpore&B<2u3NuWJNJRpJ>NN951V#+VR#gbK=pLdHVIlm}XFD0=gF+MZ@77K_s`2w?r hv;t5eBM=ws0ErLGjEs!888~kC%vZ!>V-X5gM| H&!P+f;Qu93 diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index 1c321544a9349a8ae78f2731ab15d43654fcd058..ad3ba72b18994dc104755aab95aed92814876285 100644 GIT binary patch delta 730 zcmY+B&1(}u6u@UTn`D#C?xwUhrmea(?IF>|?-oK5w5_$R+FG`ngOwPQHCB^sosCj2 z8W02#L>Y>QUc{3*w)qo!6d_pg5PI;a2M?M{6$IbgP{e`vX(^y$6U&o=3RY6Kh^k6Ke*+(!1^K2T%FYUNAH%Kb-|6lm8SNc24xV$o(JsK$d20g zywdn14ZCQv5edxFg*Z6aC?W`GX+^V|&6P^ovRS@qGMlBrdKSc%0PukvYKkG}L7swT z?}(tdK-%Mc-81och(v|C{{ql?5(7>E(lkPJvPQ0uZZaJp#OgAL8|;fhVw#W#WX-LU zODZ8UL>1|n>lS4r;AT#-M?tgkJ6*3iMYH2@Y3ZGcv*zlueZ6YOlO-#kE7|FIvS?P! z)fJYW!iW0-yWgObrkdK!yu0_Z|JkEA;m=xZGxN*FE}ry+XjE`U*mC764?)M_vSEBJ z0B&%q_Qoban?w^j_a<9Azay)k)YL|1TTN}tsiv4>qx`TsN#lG)oee{C1f`A5*2ou8 z>P%AL$J9goyE>#`hkF^%@q^ldo(o{P2*PF%xT$E6&ud4n1@aa%c18*6h> z7Wt_`jCG-L){W{ciY8bLO|m$eVmjKx5~#tFsM$O}Aj7%xLSbKU5QY3+A?ueL9%TtHMHX9qJzHdS1{07`*vPYW#Dk(!t9=y_uq=NY{V}znOyrFh1Q9#V&P zZle6e6@j2`od#7-#i7%)5?+=$*e7F z16T7Hu&T(&rj=g_>vUcUYq%^T2&J8VQ^11;)QctGKZYD8w$;H^h3YwN$vJy^FJ5s1 zr|A07s}ci>DTVqTSX3-4RCAzO2rGpT`1UpWlIK?%HNFDd^41fCZMt;BR?$PAipsQfAnT5%c9{@X# B4Cw#> delta 54 zcmdm{v{#AiGcPX}0}wdWZREPkDC?1I6%$&VT2vh45fI~&pIn-onpaXB* IFQX+t0M6_ZIsgCw diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc index 94719ec30a421a897d41151d32aea0f5ac08ae5f..04a523a55b38b3196fe77e063d879a4a12e12778 100644 GIT binary patch delta 48 zcmZ3?KZl?DGcPX}0}velEV+@pf>F#Y#VRJuGejYvC_gJTCOkDYTR~UBWb*<>W;Os& CJq^bI delta 55 zcmbQkznGuI;}H8vwZ*5fT6Z diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc index efffb7780226dcc77a6e9ace1063d85350f2b2a5..9b51f3cbf10d2ef0d2f176a9fb0a2385c3a2cbe0 100644 GIT binary patch delta 48 zcmcc3dxe+#GcPX}0}zz_m)yv$$0%l*VignS8KMwSl%JIv6P}uyt)Q!5vN?>gl@$O{ C)D7GK delta 55 zcmcb@dz+X0GcPX}0}%YJmEOp$$0+NNY!wq)oLW>I;}H6 delta 54 zcmaFH`IeLGGcPX}0}wdWZRAp9lyy$FiU}=FEh>)j2#9gXPcF?(%_}L6anCIAC{5bz I$hedl0J^FXO8@`> diff --git a/core/__pycache__/utils.cpython-313.pyc b/core/__pycache__/utils.cpython-313.pyc index 0ea5c95e79da794a5ae42c539f0f45a5c604e97d..b5b017059a99a9dadd6e78d7f533c43ebcdea491 100644 GIT binary patch delta 47 zcmeyz{+*rsGcPX}0}vEEmYm4_L(DwIDkjV`L?NIkKPxpRJT*02L07?KvjXEiCIDqj B4!r;X delta 54 zcmey){*RseGcPX}0}z~$mzv1^L)I?YDkiizwWv78BOt~lKe;qFHLs*N#yzvdqcmx= IB;!3M0OQ0GZvX%Q diff --git a/member_transactions.py b/member_transactions.py index 1a7cb1b..ff4123b 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -1,7 +1,7 @@ import os import json import core.time_utils as tu -import data_io +import core.data_io def load_members(): if not os.path.exists("members.json"): From b1cb4942a822f63d95080567639a42b5b49546bd Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Thu, 8 May 2025 13:42:12 +0200 Subject: [PATCH 17/57] 11 --- member_transactions.py | 80 +++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 43 deletions(-) diff --git a/member_transactions.py b/member_transactions.py index 1a7cb1b..6b2ce2f 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -15,59 +15,53 @@ def save_members(member): with open("members.json", 'w', encoding= 'udf-8') as f: json.dump(member, f, indent=4, ensure_ascii=False) -def add_member(name, phone, address): - members = load_members() - existing_id = [m['member_id'] for m in members] - next_id = max(existing_id, default=0) + 1 - - new_member = { - 'member_id': next_id, - 'name': name, - 'phone': phone, - 'address': address, - } +def load_members(): + if not os.path.exists("members.json"): + return [] + try: + with open("members.json", 'r', encoding='utf-8') as f: + return json.load(f) + except: + return [] + +def save_members(members): + with open("members.json", 'w', encoding='utf-8') as f: + json.dump(members, f, indent=4, ensure_ascii=False) - members.append(new_member) - save_members(members) - print(f"{new_member['name']} adlı üye başarıyla eklendi. (ID: {new_member['member_id']})") +def add_member(name, phone, address): + """Register a new library member""" + pass def delete_member(member_id): - members = load_members() - member = next(m for m in members if m['member_id' == member_id, None]) - if member: - members.remove(member) - save_members(members) - print(f"{member['name']} adlı üye başarıyla silindi.") - else: - print("Üye Bulunamadı.") + """Remove a member from the system""" + pass def search_member(search_term): - members = load_members() + """Search members by various criteria""" + pass - result = [ - m for m in members - if search_term in str(m['name']).lower() - or search_term in str(m['phone']).lower() - or search_term in str(m['address']).lower() - or search_term in (m['member_id']) - ] +def get_all_members(): + """Retrieve list of all members""" + pass - if result: - print("\n Arama Sonuçları: ") - for m in result: - print(f"ID: {m['member_id']}") - print(f"İSİM: {m['name']}") - print(f"Telefon: {m['phone']}") - print(f"adres: {m['address']}") - else: - print("Eşleşen üye bulunamadı.") +def show_members(): + """Show list of all members""" + pass -def get_all_members(): - return load_members +def update_member(member_id, field, new_value): + """Update member information""" + pass def member_exists(member_id): - members = load_members() - return any(m['member_id'] == member_id for m in members) + """Check if a member exists in the system""" + pass + + +def save_tracking(): + """save updates to tracking.json file""" + +def get_tracking(): + """load tracking data from tracking.json file""" def lend_book(member_id, book_barcode, loan_date, return_date): """Process book loan to a member""" From 532b958ac31c7c7b1b4ab946052ecc3fc58651ea Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Thu, 8 May 2025 13:43:48 +0200 Subject: [PATCH 18/57] 22 --- member_transactions.py | 82 ++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/member_transactions.py b/member_transactions.py index 6b2ce2f..7c98973 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -15,53 +15,59 @@ def save_members(member): with open("members.json", 'w', encoding= 'udf-8') as f: json.dump(member, f, indent=4, ensure_ascii=False) -def load_members(): - if not os.path.exists("members.json"): - return [] - try: - with open("members.json", 'r', encoding='utf-8') as f: - return json.load(f) - except: - return [] - -def save_members(members): - with open("members.json", 'w', encoding='utf-8') as f: - json.dump(members, f, indent=4, ensure_ascii=False) - def add_member(name, phone, address): - """Register a new library member""" - pass + members = load_members() + existing_id = [m['member_id'] for m in members] + next_id = max(existing_id, default=0) + 1 + + new_member = { + 'member_id': next_id, + 'name': name, + 'phone': phone, + 'address': address, + } + + members.append(new_member) + save_members(members) + print(f"{new_member['name']} adlı üye başarıyla eklendi. (ID: {new_member['member_id']})") def delete_member(member_id): - """Remove a member from the system""" - pass + members = load_members() + member = next(m for m in members if m['member_id' == member_id, None]) + if member: + members.remove(member) + save_members(members) + print(f"{member['name']} adlı üye başarıyla silindi.") + else: + print("Üye Bulunamadı.") def search_member(search_term): - """Search members by various criteria""" - pass + members = load_members() -def get_all_members(): - """Retrieve list of all members""" - pass + result = [ + m for m in members + if search_term in str(m['name']).lower() + or search_term in str(m['phone']).lower() + or search_term in str(m['address']).lower() + or search_term in (m['member_id']) + ] -def show_members(): - """Show list of all members""" - pass + if result: + print("\n Arama Sonuçları: ") + for m in result: + print(f"ID: {m['member_id']}") + print(f"İSİM: {m['name']}") + print(f"Telefon: {m['phone']}") + print(f"adres: {m['address']}") + else: + print("Eşleşen üye bulunamadı.") -def update_member(member_id, field, new_value): - """Update member information""" - pass +def get_all_members(): + return load_members def member_exists(member_id): - """Check if a member exists in the system""" - pass - - -def save_tracking(): - """save updates to tracking.json file""" - -def get_tracking(): - """load tracking data from tracking.json file""" + members = load_members() + return any(m['member_id'] == member_id for m in members) def lend_book(member_id, book_barcode, loan_date, return_date): """Process book loan to a member""" @@ -69,4 +75,4 @@ def lend_book(member_id, book_barcode, loan_date, return_date): def return_book(member_id, book_barcode): """Process book return from a member""" - pass + pass \ No newline at end of file From 346ea5fd1a09c8d904590f56adc0760254186409 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Thu, 8 May 2025 13:59:28 +0200 Subject: [PATCH 19/57] y --- core/data_io.py | 7 +++++++ core/time_utils.py | 2 +- data/tracking.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/data_io.py b/core/data_io.py index e69de29..298e541 100644 --- a/core/data_io.py +++ b/core/data_io.py @@ -0,0 +1,7 @@ +import json + +def read_json(filepath): + pass + +def write_json(filepath, data): + pass \ No newline at end of file diff --git a/core/time_utils.py b/core/time_utils.py index 0624623..f26f782 100644 --- a/core/time_utils.py +++ b/core/time_utils.py @@ -8,7 +8,7 @@ def calculate_due_date(start_date, weeks = 2): def format_date_for_display(date_obj): """Format date for user-friendly display like '08 Mayıs 2025, 14:30'.""" - return date_obj.strftime('%Y-%m-%d-%H:%M:%S') + return date_obj.strftime('%Y-%m-%d') def is_date_overdue(due_date): """Check if a due date has passed""" diff --git a/data/tracking.json b/data/tracking.json index 04a3107..942a234 100644 --- a/data/tracking.json +++ b/data/tracking.json @@ -9,7 +9,7 @@ "book_title": "Kafamdaki Fillerin Hepsi Mavi", "publisher": "Indigo Kitap", "author": "Murat Güllen", - "registration_date": "2023-09-18-23:12:44", + "registration_date": "2023-09-18", "return_date": "2023-10-02" } ] \ No newline at end of file From b0024e084fd2544fe6697a73e0a4492c63881698 Mon Sep 17 00:00:00 2001 From: FurkanBilal Date: Thu, 8 May 2025 15:02:39 +0200 Subject: [PATCH 20/57] Update book_transactions.py Guncelleme --- book_transactions.py | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/book_transactions.py b/book_transactions.py index 0c669fc..ed0428f 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -1,27 +1,39 @@ import os import json import core.data_io +#kitaplarin kayitli oldugu dosya +books_file = 'data/books.json' +books = [] -def add_book(barcode, title, publisher, author, status): - """Add a new book to the library""" - pass + +def add_book(barcode, title , publisher, author, status): + books = data_io.read_json(books_file) + books.append({ + 'barcode': barcode, + 'title': title, + 'publisher': publisher, + 'author': author, + 'status': status + }) def delete_book(barcode): - """Remove a book from the library""" - pass + books = [book for book in books if book['barcode'] != barcode] def search_book(search_term): - """Search books by various criteria""" - pass + results = [] + for book in books: + if (search_term.lower() in book['title'].lower() or + search_term.lower() in book['author'].lower() or + search_term.lower() in book['publisher'].lower()): + results.append(book) + return results def get_all_books(): - """Retrieve list of all available books""" - pass - -def update_book(barcode, field, new_value): - """Update book information""" - pass + books = data_io.read_json(books_file) + return books def is_book_available(barcode): - """Check if a book is available for loan""" - pass \ No newline at end of file + for book in books: + if book['barcode'] == barcode: + return book['status'] == 'available' + return False \ No newline at end of file From dbd8bf8adb8b7960c16552900ea9b940aae86837 Mon Sep 17 00:00:00 2001 From: FurkanBilal Date: Thu, 8 May 2025 15:05:29 +0200 Subject: [PATCH 21/57] Update book_transactions.py Guncelleme --- book_transactions.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/book_transactions.py b/book_transactions.py index ed0428f..91605b0 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -1,13 +1,13 @@ import os import json -import core.data_io +import core.data_io as di #kitaplarin kayitli oldugu dosya books_file = 'data/books.json' books = [] def add_book(barcode, title , publisher, author, status): - books = data_io.read_json(books_file) + books = di.read_json(books_file) books.append({ 'barcode': barcode, 'title': title, @@ -29,7 +29,7 @@ def search_book(search_term): return results def get_all_books(): - books = data_io.read_json(books_file) + books = di.read_json(books_file) return books def is_book_available(barcode): From 27d46349b6ac66106ba940aa5a30fc358b6234bc Mon Sep 17 00:00:00 2001 From: FurkanBilal Date: Thu, 8 May 2025 15:09:57 +0200 Subject: [PATCH 22/57] Update book_transactions.py Guncelleme --- book_transactions.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/book_transactions.py b/book_transactions.py index 91605b0..5324a31 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -3,7 +3,6 @@ import core.data_io as di #kitaplarin kayitli oldugu dosya books_file = 'data/books.json' -books = [] def add_book(barcode, title , publisher, author, status): @@ -15,11 +14,15 @@ def add_book(barcode, title , publisher, author, status): 'author': author, 'status': status }) + di.write_json(books_file, books) def delete_book(barcode): + books = di.read_json(books_file) books = [book for book in books if book['barcode'] != barcode] + di.write_json(books_file, books) def search_book(search_term): + books = di.read_json(books_file) results = [] for book in books: if (search_term.lower() in book['title'].lower() or @@ -33,6 +36,7 @@ def get_all_books(): return books def is_book_available(barcode): + books = di.read_json(books_file) for book in books: if book['barcode'] == barcode: return book['status'] == 'available' From aa4b477104976e5b3207945c6b2bf7488ce51518 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Thu, 8 May 2025 16:14:44 +0200 Subject: [PATCH 23/57] =?UTF-8?q?member=5Ftransactions=20g=C3=BCncelleme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/book_transactions.cpython-313.pyc | Bin 1122 -> 1129 bytes .../member_transactions.cpython-313.pyc | Bin 4366 -> 7442 bytes .../__pycache__/book_handlers.cpython-313.pyc | Bin 2574 -> 2581 bytes core/__pycache__/data_io.cpython-313.pyc | Bin 154 -> 404 bytes .../member_handlers.cpython-313.pyc | Bin 4406 -> 4413 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1948 -> 1955 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1748 -> 1755 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1254 -> 1265 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1015 -> 1022 bytes member_transactions.py | 73 +++++++++++++++--- 10 files changed, 61 insertions(+), 12 deletions(-) diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index f118657b4477a219027463d0376016a112ac176b..f1e6d3faaa74dac7d3ce4ec5c1a232b5dde546f3 100644 GIT binary patch delta 53 zcmaFF@sfkximL5ucSD}J+s84G-)#v HV*)b($VL%c delta 46 zcmaFK@rZ-#GcPX}0}#YdpUCw{%r3<$Cd@NLA)qKfD>WuOH8op7SHWa6Cu0IL07sY& AdH?_b diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index ad3ba72b18994dc104755aab95aed92814876285..26867cf5965ca37004ff9d837a6547c9ff92e9e8 100644 GIT binary patch delta 3697 zcmb7{Uu+Y}9mi+vwY`qxb?g91Ac2Jt5_80X14@)0X)l+QKuB_z&9-m}F>CJ=Ckbnd{gh=_0 z3AUbH#AV&x#~9+_%Wd9cKEguXwHXn=;09YGFkl0M2W+k21sfE6U^#&W8xs6r>x3Gx z;b|NVJfXvnB&nt4_Vs?;awOR^DH;kfCI{b~>`y1NDMim1lSkCdU^bCo!@byd=T+Aa zF%I4Nqr1a}>+k%-)9J!(`HifEpXD#G3D4J{uhu)Cu?O9r!%*$K(^xx%Up)j>QU}Hi zO)HtWq-pV#l1jixOWY|>KQs*FpKv>Kw40<0 zj8lA2al^ItE_kQ#H8g>pCJ`O9>m9aBu0?2qMq5R|PCJjL(FEi8$GlFhdfx$ghUlE- z(OnaMr%A*IFirjpE4u2@LE9~$gZ3nKx9I+g;hFzycn^&}M*G(p!8;MCOrX+@;OhjZ zz=qI%m+qN>cP*E(O3m>gG#1ML%)dFOdnf3cSY<5Y)T;L#Nc1|h9NSp+J2k=YwCX<5 zBcgFEddC`^*6O_)C;Eh%m`7(tW~|9hXEh8Vk##!c*RROt^)cl-tcXWsoHWBZ2#9W> zwjCPRt>l0HT~KtDe+SD6!&Ei|bijF_0}crxkrnFfdRX*vXup+zIyBuZ(Z~qd5A`o= z66y3gBQ|5C^`yPoXpFTbX~5bTm|olpzq*D*RF4Lm5lV*zMEf4kxq40@B*Ru24#K-* z0aLe7^)^!Pd2|iV{P0$U0(5ZqA@>;^WlV2EN~UGS^cYemYnXoNyrgPULQ_Ua40`#s zo9u;~i4$fmon$;A5gKpM*X8+HdKklq?4vQwnxe~b8kNUveQp$d#%?fQJc09AsEdCz zF#o;9cWzGHI$mu1W2g@^kmeGraXf+K)fX9wEMUDbJo;}0IuvF>d#0- zJ*(=n^3vR8HO7xChNhQZQIhE#kqxSE{As>i%DU~ZY!aeE>ruFjov`P>ppxCV z(6k(AEe2Xw**5=Qa7TfQ&K_B9+P>Vh zyV$gQxhYm`ij|u77MM+|kqyg{_P<5i3mrYB$k&%61I5U|-I-G4t=XZcUbJD$%EqlL zjXPIbx|UnIi!I%M*j#GqUuoF!dB9umg^)Vr30@j~e{_CmDaY`ujQ7&;4~FNv7Q2_2 zJ&!hSo9&-#e1F7o?^*OLF}of!{<-n__76|ZjV>Ji)t17+!D94iq2t(7gokkRN^|?d z;iqmK*!>J)&nx8L$VF*K&*B*{Z|=4=945xRSV3WZff zETRLh|B4_+WL`iJWu{ex3Og(UuIm$^244{XHMb2lO1^be^N1d&O9>QB@QNP6XNj-f zH6Vt*;7f(Rgy^n{w&)tGfUFt{vTkcBsI%?<)>n3j9W{p?i~bktCC9?mv7DMv0S_>- zk|201Kg|jdp+;ncfL*T@z2FJ%udvZ#0yjdaauS#-%1`+=R1XNC;rN4bqTqJt+3 zmjV0NAzhzEx{Eg_Z%r24UU%3A%L8m{#(94;wm7S)l(Xd9;D0ylfQfG#>}ebBX%h%A z9g&k@Our?nRK~M_@AVMLRS0M$K)!!F#%KFzjG9qlCDn_X!mASC#%Tvs+Ei+JkrM)heJAa0D!Po6dk99g8;>h)9w?(hpQ}3QUen(JIY$)K_H(IYYfNHD{?& zz?eSZQykD^&~tIROocKN9LCbkLkws=2bb{x%yXbZSm>v3iV3S3I{v~#R(tz@!kMg4LZht9o6ma1StTgSMW9CkL$gQ$9SAv&=^V;IT z61)2mQ)`R&%i8^z+qBGWD{|YGxz-}rTH@N4xmb~l9W8YAmAE&6CNHY^t%+jv^+HEq zq3`rcATk#%)QeQazk{iYpTL%kMSk>+O_Ufcw-g8J`|L`2 zHK^v0CTi%H6`}u<2>pL#{rxF_FHo#nS+qXjtf9(jW?xIC<*cUkl6N44YNOE)1}28_ hL*##mY61^Y=u_1EDQe0;tlJgh@hfZncmuX4{4bkkENcJ& delta 721 zcmZ9J&2G~`5XW~nwreM`lk(B>5u~Ncp((T{!Xc{CA}FE+A5kv2)?l zo*$^*~pe-_GpL&ir?Gzw>6!nb>xj;OM+>JUcYs zIcJ_c#^`_uB5035F;k#<%x;%Jr!L1#$HqEjJ}lS89g!jqc1YrOy^CH z4%1g=UvHzpxzVB7F6qnYULIYl_GtSmx==@CwJn*rUKqLqIp|A>p^K~6&|(v@N4`~N zKWnp~4y135ne>zWmEKH0IFIz}xO5}^>og6u>1*k#eQH-j_ke8C7JGRC<@z#?c|VG_ zc^G*+Jc+o+i$-^02~%4doX07vsvNiPfgc4jvsAJhc!|s^Ad?{!L9B{%9EEZ#lskc| z4#F+mP&TRS$UX8?Gjqj0J1*+tf1--w{3%3(9hA^C;6)1k)=0tipnV`Y%vFm45`NN6xPY zs#pGId7t75%;iB83`5z4`?yQd;uXZN5~XxZtTCy4Cyg;V`CChWG@3S}*2F~Q75)KC C+p4_) diff --git a/core/__pycache__/book_handlers.cpython-313.pyc b/core/__pycache__/book_handlers.cpython-313.pyc index 4b29e43f85db6327dc0952e693bcf50634231052..c9623ed4d2b14d586755e63758ee717c8896faab 100644 GIT binary patch delta 55 zcmeAZnJU8lnU|M~0SNxqN^j)e&M51aY!wq)oLW>I;}HNmD delta 48 zcmbO#(kH_GnU|M~0SIn0NNwca&M0P|VignS8KMwSl%JIv6P}uyt)Q!5viUxv83zD4 CH4T#h diff --git a/core/__pycache__/data_io.cpython-313.pyc b/core/__pycache__/data_io.cpython-313.pyc index f1d41972d4dc1e9f59b2905fbdc88b06d8950e55..5481b8c51d308f8fdb3f185dda61601b0f70e8a0 100644 GIT binary patch literal 404 zcmZWly-LJD5Z+DJGdT%@m54>!G*(t3Vj*}S9tS~e7DG(dOY|;#%x;kDe2MFPfqNKx ziKUgDm=|y+cW2|ke)G-$%(g+$XDDy4hs7Q0Pck;*tVz3%WWiz<^D71{b`BWu*hO^4 zJQ81&Hq7`sn-p;uUn>w6Y|NH?xMUG;yoYk4W~nU>lx!?8>x|&}(R8pG& delta 126 zcmbQjJc}{pGcPX}0|>ZEXMm{3AOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkl>96swpp z&k%)xqWrAXnDErpYz18flZkUx6*+8j^HWN5QtgUZfeJwe6@wTbnHd=wi* IFQX+t0M6_ZIsgCw delta 47 zcmdn1v`vZYGcPX}0}x2%Z{)hmDCU@A6%*zeq7YD&pOqRDo|>AipsQfAnT5%c9{@X# B4Cw#> diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc index 04a523a55b38b3196fe77e063d879a4a12e12778..94719ec30a421a897d41151d32aea0f5ac08ae5f 100644 GIT binary patch delta 55 zcmbQkznGuI;}H8vwZ*5fT6Z delta 48 zcmZ3?KZl?DGcPX}0}velEV+@pf>F#Y#VRJuGejYvC_gJTCOkDYTR~UBWb*<>W;Os& CJq^bI diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc index 9b51f3cbf10d2ef0d2f176a9fb0a2385c3a2cbe0..efffb7780226dcc77a6e9ace1063d85350f2b2a5 100644 GIT binary patch delta 55 zcmcb@dz+X0GcPX}0}%YJmEOp$$0+NNY!wq)oLW>I;}Hgl@$O{ C)D7GK diff --git a/core/__pycache__/time_utils.cpython-313.pyc b/core/__pycache__/time_utils.cpython-313.pyc index 58f045cbb43e92e716f99e951a15a9eea13544bd..bb121663f9a50e2b286836ac0f520724fea2f76e 100644 GIT binary patch delta 204 zcmaFH`H_?NGcPX}0}z~@Ba^XaBd;8ztaGweOlWaxQE`k%K#WU%a%paAUP*C`duEA8 zY0_jz#&=v*9IBDJs=2zVDU+R;Y!&!{+Bt!^SQtn&Fg)NEzRoRkky~a))Majs3oIIw z7ci}06rSwKyhFH35T;XC)x%2F*Ge^bG8>BxqxfWJ7B4lBK}8@#io}7$N`@kC5F2Fl hEe@O9{FKt1RJ$UX$(vb}1vEc#Ffpor1`;-4RRGUfGz9 Date: Thu, 8 May 2025 22:43:17 +0200 Subject: [PATCH 24/57] =?UTF-8?q?harf=20hatas=C4=B1=20d=C3=BCzeltildi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- member_transactions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/member_transactions.py b/member_transactions.py index aef60f5..63fe059 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -89,7 +89,7 @@ def lend_book(member_id, book_barcode): 'loan_id': loan_id, 'member_id': member_id, 'book_barcode': book_barcode, - 'registration_date': registiration_date.strftime("%Y-%m-%d"), + 'registration_date': registration_date.strftime("%Y-%m-%d"), 'return_date': return_date } From 34d77a9a02e1804d38d70622024fd407cfd12470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ali=20B=C3=BCy=C3=BCkg=C3=BCral?= Date: Fri, 9 May 2025 00:18:47 +0200 Subject: [PATCH 25/57] Ali_4.week --- __pycache__/book_transactions.cpython-313.pyc | Bin 1122 -> 2238 bytes .../member_transactions.cpython-313.pyc | Bin 4366 -> 4372 bytes .../__pycache__/book_handlers.cpython-313.pyc | Bin 2574 -> 2580 bytes core/__pycache__/data_io.cpython-313.pyc | Bin 154 -> 403 bytes .../member_handlers.cpython-313.pyc | Bin 4406 -> 4412 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1948 -> 1954 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1748 -> 1754 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1254 -> 1264 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1015 -> 1021 bytes data/tracking.json | 47 ++++++++++++++++-- tracking.py | 45 +++++++++++------ 11 files changed, 71 insertions(+), 21 deletions(-) diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index f118657b4477a219027463d0376016a112ac176b..9e774080c19f504621e9f9da9aa27ef79965da1a 100644 GIT binary patch literal 2238 zcmbVN&2Jk;6rcU{*XF}@la{CnR-6(Up`?eTA0`A6S{lH%s<;bCv1Dz$+r-q_jb_$F z<$^&%p-3o2qEbMWXm0HZxb@G#wL;9MNJyNxHAyercyHED6N92EPdjgBXJ+5L`TgE| zyVubXCLq5&I`lYqF3FLc@IIk_FHnKMi|F{XmvlKNj3}+$@q;Je*==(01YH?#`Vc1z zBq?T-iWitSXwfk(PjO3b+44fmmHBdsEn3u5jf%VIK+jymtuWXunk6qpEyFC}wY@Nh zpm3uE->Js(vSpiIc!ic+i?1hDikG8^4pmX%ttdL_Dg0B0vvDroc8NZ-J_kCtBxP`s?()zPdJ4z0#0FtLe|vjaXkJ+S}+EXq-3=&rU==p*|z35_r~0 zl)!4{i_CYgu3MY(&>q+z#U?>GCU_}M^Up9i7R`b##K;FC6GsUXV`Qd_5N9wapkbY) zRtPbHtV{>IiPywTl#mFC6I-yw10jX@waFpEg@c4MF%Bo$;tiypQf{(WjycRdFcX8ura-mB{QE$nu1)`7-7z1$yYbnh z;o9)j+V$_P>Xl!$=_j&!0N{UiCDQS>z|fN)wW*l=lM3n(;^-4c{5tS(Jj6$dEh6eO zUlL+VI{Cje8;4_1bjj!9s6DU4J~NGc9kmNAiOA|vd$^_H7qBF~kR^;97b9mD`E3(j zdR{y-tA1SR;t)y7SwB~Knqp`rmA3fsl(Ms8QL5ph>_wOb)nl>XT6D<|mjJa`rR*|# z5_T}8470l#H_hEVZu(&9H17EZRD0YsI=ib^x4V13k{jBoEv>(%_1CqR?~gqQY`n3R zIA2SguO}|nwTo@5!HvnS#D!YoLOpS*u3c(djnoojTZvRHk*X&qHnoX{7F)~S&aRLB zrp0$cB-;BlOte@vOCi-r5!$|B)bYqm!Qfbt2N44J3Ry_4!wHuZIBpC}OB1G!1zCet~;UIZ>}$FM$R^3r`ChtPTrrZ#m+s}&h02jrb@IZM4HTp z3f?j(=Kun~u0S=a+-DF*Rm55pBG#iCVk4>}Hlqe&>n!Lte^RnuQln`V0nSw%MTl_0 z@K)u^qgQFl1)s{#e4zE1Tg~lA@=Ogtz@m4_x;57r2uO4)UCk<+N!Oa?gG`x`1XmZi z9ci466*f19=s1NtPM`NbzIo42K%dM0Cn?ALfFJcw7I=Reztd@+#k3nA^@%vPAf`qn zR_UoZoGn~aq-jhi(8ipUw;=e+zK6{MKUhL`*0Ign<5M}&bBXS}vmxlo4R1hYxD0^O z8cM){y5riZ%%qhi`EA^3;ecI&4#IzVc_gu3BhPC1V8Q1Cl+F!LKv@Y&^gMGnaBbsn z#<)AVp)1wq_roj|wj|+dI@B-`)YX;is;{@J4VBDN*TRPv&qbC? zLwWJxta_09BxMio;Ry-Z5JAN2*e2rX>yb>xT%q%_`^s$iM@>A_VkHS~VW!RU?Mv>NpXyOW{F2> K(&o>M()<7n_7ji* delta 50 zcmbQD)ThMznU|M~0SK(7%Vd1q$a{fN%pt`pCd@NLA)qKfD>WuOH8op7SHWcSPey5e E0CWQnBLDyZ diff --git a/core/__pycache__/book_handlers.cpython-313.pyc b/core/__pycache__/book_handlers.cpython-313.pyc index 4b29e43f85db6327dc0952e693bcf50634231052..1b73753c5a7f860fdd80b2fe8a1a944bfbb84334 100644 GIT binary patch delta 54 zcmeAZnIgjdnU|M~0SJofq&ISJXOwYGwu%WYPAw{q3662ePcF?(%_}L6anCIAC{5aY IgVBrw0J4w~egFUf delta 48 zcmbOt(kH_GnU|M~0SIn0NNwca&M0P|VignS8KMwSl%JIv6P}uyt)Q!5viTmP83zD4 C0S%D= diff --git a/core/__pycache__/data_io.cpython-313.pyc b/core/__pycache__/data_io.cpython-313.pyc index f1d41972d4dc1e9f59b2905fbdc88b06d8950e55..6dcef6c281a6cc5c5485d3710a0688613c863ed8 100644 GIT binary patch literal 403 zcmZWly-LJD5Z+DJGdT%@m54>!G*(t3+6W5bAq25m3^7?R(Yx$1yFsq=CGH`vwDVCU zmR5FRUci~$#m0gC=9~YSZG&LQP+s5mi#ybxWc1>!NxO?=!D1HkO9m`<_89QkMRdkI z5?_=y%J@2)6mb_{D-afJ%$9t#WD#$?hjOB3sVxkpgw1JoByWrYBV&1{vwEs3Yvg%p zFY0@FJ-3Cfk}I9pljK&Zr{qv(8kEdanRGKG`MpxkVLpPATuy^6LNLbdN zLB_wufHnlGh#VN8Y6NvRR1}7=NuJ>|lvb^V1n8hN@CoSeBDWEL^MT@ByDqk>_l~D@ cf;xe1jM55b2jSc0oPV&bAHlib4iLJUU)UK^RR910 delta 126 zcmbQtJc}{pGcPX}0|>ZEXMm{3AOZ#$p^VQgK*m&tbOudEzm*I{OhDdekkl>96swpp z&k%)xqWrAXnDErpYz18flZkUw6*+8j^HWN5QtgUZfeJwe6@wTbnHd=wiAipsQfAnVHFw9{@XC B4Cep< diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc index 04a523a55b38b3196fe77e063d879a4a12e12778..8399854d04ff9be2d5cf744479de63cd812a805c 100644 GIT binary patch delta 54 zcmbQkzlfjvGcPX}0}vF|NpIw?V3e^*wu%WYPAw{q3662ePcF?(%_}L6anCIAC{5Zt IlaZMX0IKT{)Bpeg delta 48 zcmZ3)KZl?DGcPX}0}velEV+@pf>F#Y#VRJuGejYvC_gJTCOkDYTR~UBWb=GRW;Os& C2@S;n diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc index 9b51f3cbf10d2ef0d2f176a9fb0a2385c3a2cbe0..86d0eb76f6cf3fd464c41262292c278737a065ee 100644 GIT binary patch delta 54 zcmcb@dyAL*GcPX}0}vF|NpIxVW0bK^wu%WYPAw{q3662ePcF?(%_}L6anCIAC{5bz I&)CWe0Jk9#FaQ7m delta 48 zcmcb`dxe+#GcPX}0}zz_m)yv$$0%l*VignS8KMwSl%JIv6P}uyt)Q!5vN@Eol@$O{ Cpbgpp diff --git a/core/__pycache__/time_utils.cpython-313.pyc b/core/__pycache__/time_utils.cpython-313.pyc index 58f045cbb43e92e716f99e951a15a9eea13544bd..17935d3f6db647ff1c10447400fdee763d4d944f 100644 GIT binary patch delta 203 zcmaFH`GJ%7GcPX}0}yQ7A(OFYBd;8zj8n2zOlWaxQE^Ogj7xrUX>Mv>NpXyOW{F2> z(qu=*cU)B*s*$>?xw@(;lbx7s75IU=If1xX7)UfQJm40-&MkA1TV_VoWp0fNEE}5inzUJx H@g5TZ)P)i; delta 47 zcmey%{+*rsGcPX}0}vEEmYm4_L(DwIDkjV`L?NIkKPxpRJT*02L07?KvpnNHCIDp_ B4!ZyV diff --git a/data/tracking.json b/data/tracking.json index 942a234..203689c 100644 --- a/data/tracking.json +++ b/data/tracking.json @@ -2,14 +2,51 @@ { "loan_id": "L001", "member_id": 27, - "member_name": "Naim Ucar", - "phone": "545-345-6786", + "member_name": "Sadettin Kacar", + "phone": "544-344-6786", "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000", - "barcode": 9786057611000, + "barcode": 9776057611000, "book_title": "Kafamdaki Fillerin Hepsi Mavi", "publisher": "Indigo Kitap", - "author": "Murat Güllen", + "author": "Murat G\u00c3\u00bcllen", "registration_date": "2023-09-18", "return_date": "2023-10-02" - } + }, + { + "loan_id": "L002", + "member_id": 28, + "member_name": "Naim Ucar", + "phone": "545-345-6786", + "address": "Kirmizi Sokak, kirmizi Mahalle, Amsterdam, 35001", + "barcode": 9786057611001, + "book_title": "Kurk Mantolu Madonna", + "publisher": "Sabahattin Ali", + "author": "Salih G\u00fcllen", + "registration_date": "2025-05-08", + "return_date": "2025-05-22" + }, + { "loan_id": "L003", + "member_id": 29, + "member_name": "Melike Kaya", + "phone": "536-345-6786", + "address": "Beyaz Sokak, Beyaz Mahalle, Amsterdam, 35002", + "barcode": 9786057611002, + "book_title": "Ben Sana Mecburum", + "publisher": "Atilla Ilhan", + "author": "Murat G\u00fcllen", + "registration_date": "2025-05-014", + "return_date": "2025-05-28" + }, + { "loan_id": "L004", + "member_id": 30, + "member_name": "Nazli Inanir", + "phone": "535-745-6786", + "address": "Sari Sokak, Sari Mahalle, Amsterdam, 35003", + "barcode": 9786057611003, + "book_title": "Yuz Yillik Yalnizlik", + "publisher": "Gabriel Marquez", + "author": "Murat G\u00fcllen", + "registration_date": "2025-06-014", + "return_date": "2025-06-28" + } ] \ No newline at end of file diff --git a/tracking.py b/tracking.py index bc59124..06e5f81 100644 --- a/tracking.py +++ b/tracking.py @@ -1,23 +1,36 @@ -import os import json -import datetime -import data_io +import core.data_io as do -def save_tracking(): - """save updates to tracking.json file""" +# JSON dosyasını yükleme işlemi +def load_tracking_data(): + data= do.read_json('data/tracking.json') + +# JSON dosyasına veri kaydetme işlemi +def save_tracking_data(data): + do.write_json('data/tracking.json', data) -def get_tracking(): - """load tracking data from tracking.json file""" +def add_record(record): + data = load_tracking_data() + data.append(record) + save_tracking_data(data) + +def delete_record(barkod): + data= load_tracking_data() # Mevcut verileri yukle + updated_data = [record for record in data if record['barcode'] != barkod] # Barkodu eşleşmeyen kayıtları tutarak diğerini siliyrz + save_tracking_data(updated_data) # Güncellenmiş veriyi kaydet + +def track_loan(member_id): + data = load_tracking_data() # JSON dosyasındaki ödünç kitap verilerini yükle + + # Bu satır, member_id'si verilen kişinin hâlâ iade etmediği kitapları filtreler. + # Yani return_date alanı boş olan (geri verilmemiş) kitaplar + active_loans = [ + record for record in data + if record['member_id'] == member_id and not record.get('return_date') + ] + + return active_loans # Bu fonksiyon, üyenin iade etmediği kitapları geri döner (liste olarak) -def get_loan_history(member_id=None): - """Retrieve loan history (all or for specific member)""" - pass -def get_overdue_loans(): - """Identify books that are overdue""" - pass -def update_loan_status(loan_id, status): - """Update the status of a loan""" - pass \ No newline at end of file From bd347f78fe9a1556f3d1a03ac1c1b09cd453bc2c Mon Sep 17 00:00:00 2001 From: MLAcikgoz Date: Fri, 9 May 2025 02:31:40 +0200 Subject: [PATCH 26/57] Update data_io.py 09.05.25-02:30'da update yaptim, read_json_file(filepath) write_json_file(filepath, data) append_to_json_file(filepath, new_data) ekledim --- core/data_io.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/core/data_io.py b/core/data_io.py index 298e541..998bb22 100644 --- a/core/data_io.py +++ b/core/data_io.py @@ -1,7 +1,26 @@ import json - +#Json dosayasini oku def read_json(filepath): - pass + if not os.path.exists(filepath): + return [] # Dosya yoksa boş liste döndür + try: + with open(filepath, 'r', encoding='utf-8') as file: + return json.load(file) + except json.JSONDecodeError: + return [] # JSON hataliysa boş liste döndür +#json dosyasina yaz def write_json(filepath, data): - pass \ No newline at end of file + with open(filepath, 'w', encoding='utf-8') as file: + json.dump(data, file, indent=4, ensure_ascii=False) + + +# JSON dosyasına veri ekle (liste yapısında ise) +def append_to_json_file(filepath, new_data): + data = read_json_file(filepath) + if isinstance(data, list): + data.append(new_data) + else: + data = [new_data] + write_json_file(filepath, data) + From 48e5e732ae5ad2286a6c7cae83b91d8e67ac50b0 Mon Sep 17 00:00:00 2001 From: MLAcikgoz Date: Fri, 9 May 2025 02:37:45 +0200 Subject: [PATCH 27/57] Update data_io.py --- core/data_io.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/core/data_io.py b/core/data_io.py index 998bb22..e171601 100644 --- a/core/data_io.py +++ b/core/data_io.py @@ -23,4 +23,39 @@ def append_to_json_file(filepath, new_data): else: data = [new_data] write_json_file(filepath, data) + +# Belirli bir öğeyi (kimlik,tbaslik, isim vs.) sil (liste içindeki sözlük) +#chatgpt`den buldum +def delete_from_json_file(filepath, key, value): + data = read_json_file(filepath) + if isinstance(data, list): + data = [item for item in data if item.get(key) != value] + write_json_file(filepath, data) + +# Belirli bir öğeyi güncelle (liste içindeki sözlük) +def update_json_item(filepath, key, value, updated_item): + data = read_json_file(filepath) + if isinstance(data, list): + for i, item in enumerate(data): + if item.get(key) == value: + data[i] = updated_item + break + write_json_file(filepath, data) + +# Belirli öğeyi bul (tek eşleşme bekleniyorsa) +def find_in_json(filepath, key, value): + data = read_json_file(filepath) + if isinstance(data, list): + for item in data: + if item.get(key) == value: + return item + return None + +# Tüm eşleşmeleri döndür (filtreleme) +def filter_json_items(filepath, key, value): + data = read_json_file(filepath) + if isinstance(data, list): + return [item for item in data if item.get(key) == value] + return [] + From a213ed6b3a0cad9bcfa35ab2051955b3dd165bc8 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Fri, 9 May 2025 09:21:53 +0200 Subject: [PATCH 28/57] . --- __pycache__/book_transactions.cpython-313.pyc | Bin 1129 -> 2232 bytes .../member_transactions.cpython-313.pyc | Bin 7442 -> 7449 bytes .../__pycache__/book_handlers.cpython-313.pyc | Bin 2581 -> 2574 bytes core/__pycache__/data_io.cpython-313.pyc | Bin 404 -> 397 bytes .../member_handlers.cpython-313.pyc | Bin 4413 -> 4406 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1955 -> 1948 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1755 -> 1748 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1265 -> 1258 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1022 -> 1015 bytes main.py | 1 - 10 files changed, 1 deletion(-) diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index f1e6d3faaa74dac7d3ce4ec5c1a232b5dde546f3..cfd79f1283cc3317f178826cc5bb63b2484b45fa 100644 GIT binary patch literal 2232 zcmbVN-A^1<6uI?Y=)gFY`g4`dk0B< zaWyem6GKgGf~JY(t$or*{|vVqWF2Z^;**IF1^VKf=iJ$)uo}{EGWXm&_nx`;-1GaL zGyBnKn1C$(eQxowOvs=3(iE{V*q?yGJ(43i;R8bbUZ4Vh7vGnttdpEbm7LT~sG5^O z2XYGNU`_=c$^}4&7ldT+FWfNuNxNmb=Fq(3++u?_nNuz(jf1cYLX)8F-v@P%%!2l1 zy6H}H0{T8O3r_noBKUn-F_h^*bM|>}5JNCTLo(!?FsL-G^}{FN*)4MT1Vb5V_@I*o zk`%K^#S6@vwBT5_r?^G8WP73ImHASUE!xym%@udifu6ahyTZU&w2EGc+NPDqYkOfH zg8Yple5abr%XZoF!mG6C+I&5!QoJ0+=uj0E-io4=p29z6IIDB<#;nxb^=mWw6m@Re zb06CFE&X+Ucy8)8_)yMg9BZYN$JzYw9DbX3saa-b!7VyvHn@D-3!0Xd#}(QEo8lqt zZBP~RL~C15f0e%9UDNt2SLTpt7yn&!|P?9nY!RHi{helArapV!? z0*>22c`}CxZwdfW@R4{C%P!e~E)R1j%*3IwaZs&c{;fAr(4v4VX!A9wR^HUxIx6q&baZ|x*R?a-T2EE$scA1i7=9Sod~-W-v6{G8 zOI)sLms?hYn`7IFOVz}sTH;DgyV9~6sV0WE6RBz;A=O9$+JPYJIP+34I1%%JArN073#oN9;gSN68^hAl2vc;ycJpSb#Pf^M z9$4vv#xT?V6R1c>CG9(mJ2d6M;boXPk;A+=O?E+=h=zDjls;+{C8!KA%SoM+Qj_4E zsKW)ZKrP5g#V;;?i4U0{o5hkjU$Wn&=fE4viv>D(z>8Rs@w?^^OsNj*uRvoM@zzWG z#E7)t4c&QbV__?Dz8*ib5&UNC!E7~t;jwmMS3xjUqQ!V*k`YgIm?!g}l~!=5J&1qq ze9`d&je!peFM#;lpcrb34CT@1-aI0FGoQ)9(Ixy7*<%!)#K^PPKs}WNLD(Uo9TNGS hy!1!3w-Vk{L&EvJE(ugPD8%q6T6!+CpqaO~m#|&};pqWc{>3(=q~_>o^u6 z!WqL`wJ#4|XBii~ke_*?^_W}D?MU)mB_LqlKWDv$YbF9xok`cQ%I4Cwr)82WGm_x8 zL}^DFXJdsejUhTt;ohas2ggQ&85|rA-s-fR$ikYzdu0#GWN5j zY(V_61yLB0TBQrKKb^al$g-GDpo6I?{es{t`yRFy_=Bb7Y89ItK0J~WJ(FnC8yte3 zT(byNjq?B~t)T=Qs7bDq$y{1lk>A9fHV)V!=py`=mq!xIHu9{7Cv!d%pmb??3d%}Q zqVJh|f$JE5GsfM?H3iFkZ+{OtiFZu_uC8K}^T$Whf|BSRyJfi^a*^j;%!JBClFLe2 zrNT?`zAE$G6KP|-?cE!=g*>}B*2w80tzr}T?c-@CY(>IVG1M>-)YYZyy05ou43*3? z*T(l3&qQ8ILwWK2EPGJ;BvlXY;0Xy?6G6nQ*d*e~n~_Y%T%q%-`^v2OM@>A}Vkrr3 zV5ar*?<(Vo+iC+UQFnVkS~GbDLFDv5q{N!Ah=-d3)Z<{dzWD?XkWJeg$3>TCjJJP*#Q&) diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index 26867cf5965ca37004ff9d837a6547c9ff92e9e8..3928aa6ca63f2d32682f239cdf47d377cc19f50c 100644 GIT binary patch delta 1257 zcmYk5Z%kWN6u|F&ZC_j3*FUcXT3WFV8mNM!V}(+%K%nE#1~N-!3x7&kODUr?yRXDe z6H~ztOBR)JVm2B-uusm!4=$KEV`i8!#!uR=ixAR}elhU_DbA_U#Cyx8yLtEb&N=U% zd(J!e+zsERPdF5W3PeZpSNp={J388U34@%P6E#@+m#Ol z@7>;_srp98M#s&w(Dhh`bRD~bmp=b|ef-)#42D0&+#@n5r)ZXpLyZUdque-DHKMz%O!J5{NL2ZW_)%y+Y zR6oW%&oa*pD(Y&kEoTObg7Kjk*o+s%z)rd#oB^ZyHLi+-n7RS4!h7moJPkjpyYVZa zujuZ34xvdI^)HVQ^57%s85`$*byZ%y9v7oI|?FTZX&>SFM$N#Q_&$TOEdMZj< z>i$7*cRw%xM&v0kQ2oC_Ln4;wVHL%PX!1#-G%=VKtnFTEB?gLpeLR*9N0yet$yjnO zMkLZht!zr{RB4$s)z|zvxs@;%Sm&$YzOaV_kkw5q0@Tz8f9vY87hcd?@#=P`eiO?l zX-v3nsE6MSYp1vn=V8gv;dr)ovY^1~q(ebnNEOsSkqsfG4z((tR?mUr$YmTQC*hv) zZMkwTLclLZn?|Uk^diMk0~ltrf%QvUS8h#xHkEhwf^jGEz4HEIZakbn6^0+gckn2T znc85(WX0p~sj0n&B~Dly?Q@CLzM8}$(eR>_S|%R&$JAn1Nog{lP9$UdB8kNlQaV8* z=|pNd9F3%*$6Q1An>5=rLAJ{{LkQN*#}x}y9Dr}l9_{RApkSEI&CM4yaZprxyDW}f ziz{z&?OK}imga)xcurnf6wSM0!vnD)*Vs`IeY;{`UhLZ$E{LyYP9N~dY}>1>-Lupe z;Y#IY?AiYYT@XQ$Bv;rV3eNW_V<+ZzZivKg}>f@utyvzS)^}VZ}L2yijMK^Rin_*kvmBEh!%?I|stH zD_5o5xJSLN>Pn`fD@!pyNy9yRlS{xCaH&>>>q=%3yGxB2*OYh;`%5YZe(A6un=y++ GH~JTXLO2@$ delta 1322 zcmX|AT}&HC5Z*o8XCLN_eKr{Xq%s%^b|@v{$H7nt6bAw|0UVd85Xkula=|~%-jSdx ztz1>A8dYkWtPmJgYWmivDiKwiwl5&@UOP^NWg%7STctiwP?|Q1+U^>}=;qsRcV=#8 zXLqyydw%|q=PLk_m)|+Bz5kHkgQte0{@Jh`NAm2*#OzQyx}1!s6nS=7Qbv{|_&=C( zS|9V>k0$rb*0t_?-RqOM_qhrf{JVTN`8Mw`Kd7Jq53qh{!?#&C+`;$R9;OrGU)c>j zR?D3mA?f;{8@RwK2m>=1u>z1bg}^1oPfQ`$!Dxs_Gp&k9i~%5M1|SS?f>n(R1a0_x z?NwhRG0F7={{9_gK+ZI}F})7IIsM3%_YQ6i<-8+Ln=h=@-L2c0{zujkw~vH+nC0s6 zuK-hG@6|*m_`fyD1ND%V)h}P;F@3>uW$o!6#vBa zLoa^8^`9a=yUc{tw9p=+U=_@q z7#e^Fj(Z?7krmWR!H2)(?bd!m2Z@$@Kz6FP=G0bV`-T4#4&!aZ70nQ_2C%!T!Qmq; zO1ga_TEfcN-rI~+WuZFEPFb=xLXSfB5;!_fzMgsTR=)8ZHf>FA z-P(R97n;il=J3D5hcJjU=B`&OBI)#!JbztIr%D<{QWEiJJk24-5<3rFOOhhK>p~%% zGyCjxqo{#EiILJJ4#mY-ISzH;I!l|GlNGd}C{i+B(v_){#7T?2D@Y?WYFunvTWC%NM|-Ms2h_m_R{XtnDF}*kXIq zlpt$I4rq)}nI4|Yl|e=_qB9gy1eS4?y}^F;a4MY;b52;|#G7J55+jK?dK>rKUHTH2 zNQ*}s#xeUXe+P}G4MtH4ofNK6n4=IO;L#!n<+P`0fkKSJHC*jztB?s@A}T+{7ac#= zJ($UR26D}VxxuSNz3_=AXAbYHpne)Y15k4rk~{2mM$XcwjOa^4^roZo8Pm2S`nThU zKpEX$N!Oc9$CeZEKD2^&oGl&$jKTw#4!RF4W_aen3t{a6%fP+^oeQ2m9D)`|^N`5@ E0s2c*YybcN diff --git a/core/__pycache__/book_handlers.cpython-313.pyc b/core/__pycache__/book_handlers.cpython-313.pyc index c9623ed4d2b14d586755e63758ee717c8896faab..4b29e43f85db6327dc0952e693bcf50634231052 100644 GIT binary patch delta 48 zcmbO#(kH_GnU|M~0SIn0NNwca&M0P|VignS8KMwSl%JIv6P}uyt)Q!5viUxv83zD4 CH4T#h delta 55 zcmeAZnJU8lnU|M~0SNxqN^j)e&M51aY!wq)oLW>I;}HNmD diff --git a/core/__pycache__/data_io.cpython-313.pyc b/core/__pycache__/data_io.cpython-313.pyc index 5481b8c51d308f8fdb3f185dda61601b0f70e8a0..a1d963c8d936f71d0595a4637209f547829fc05e 100644 GIT binary patch delta 44 ycmbQj+{?`MnU|M~0SJ6%P2?&QvrMsy3G)n52q?yT^}6Iz^FR2<_G5aW`cT$-DjS5h3~o>}5inly3R FcL0wp5$XT{ diff --git a/core/__pycache__/member_handlers.cpython-313.pyc b/core/__pycache__/member_handlers.cpython-313.pyc index 6083b96b891fdb5c07c5b0890c17efad553f53d5..9ba90339e5f736868d0f97a6c76db1b93c84f186 100644 GIT binary patch delta 47 zcmdn1v`vZYGcPX}0}x2%Z{)hmDCU@A6%*zeq7YD&pOqRDo|>AipsQfAnT5%c9{@X# B4Cw#> delta 54 zcmdm{v{#AiGcPX}0}wdWZREPkDC?1I6%$&VT2vh45fI~&pIn-onpaXB* IFQX+t0M6_ZIsgCw diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc index 94719ec30a421a897d41151d32aea0f5ac08ae5f..04a523a55b38b3196fe77e063d879a4a12e12778 100644 GIT binary patch delta 48 zcmZ3?KZl?DGcPX}0}velEV+@pf>F#Y#VRJuGejYvC_gJTCOkDYTR~UBWb*<>W;Os& CJq^bI delta 55 zcmbQkznGuI;}H8vwZ*5fT6Z diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc index efffb7780226dcc77a6e9ace1063d85350f2b2a5..9b51f3cbf10d2ef0d2f176a9fb0a2385c3a2cbe0 100644 GIT binary patch delta 48 zcmcc3dxe+#GcPX}0}zz_m)yv$$0%l*VignS8KMwSl%JIv6P}uyt)Q!5vN?>gl@$O{ C)D7GK delta 55 zcmcb@dz+X0GcPX}0}%YJmEOp$$0+NNY!wq)oLW>I;}Hzr&A6Iz^FR2<_G5aW`cT$-DjS5h3~o>}5inzY%G HaV0YVyD<@E diff --git a/core/__pycache__/utils.cpython-313.pyc b/core/__pycache__/utils.cpython-313.pyc index 0ea5c95e79da794a5ae42c539f0f45a5c604e97d..b5b017059a99a9dadd6e78d7f533c43ebcdea491 100644 GIT binary patch delta 47 zcmeyz{+*rsGcPX}0}vEEmYm4_L(DwIDkjV`L?NIkKPxpRJT*02L07?KvjXEiCIDqj B4!r;X delta 54 zcmey){*RseGcPX}0}z~$mzv1^L)I?YDkiizwWv78BOt~lKe;qFHLs*N#yzvdqcmx= IB;!3M0OQ0GZvX%Q diff --git a/main.py b/main.py index c8ec77a..55a5ff7 100644 --- a/main.py +++ b/main.py @@ -26,7 +26,6 @@ def run_book_menu(): break route_book_operation(choice) - def main(): while True: display_main_menu() From 9f19a46ad435f807c711de83e171c709bc97c11d Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Fri, 9 May 2025 10:43:01 +0200 Subject: [PATCH 29/57] data_io data_io updated --- core/data_io.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/core/data_io.py b/core/data_io.py index e171601..f770008 100644 --- a/core/data_io.py +++ b/core/data_io.py @@ -1,4 +1,6 @@ import json +import os + #Json dosayasini oku def read_json(filepath): if not os.path.exists(filepath): @@ -17,34 +19,34 @@ def write_json(filepath, data): # JSON dosyasına veri ekle (liste yapısında ise) def append_to_json_file(filepath, new_data): - data = read_json_file(filepath) + data = read_json(filepath) if isinstance(data, list): data.append(new_data) else: data = [new_data] - write_json_file(filepath, data) + write_json(filepath, data) # Belirli bir öğeyi (kimlik,tbaslik, isim vs.) sil (liste içindeki sözlük) #chatgpt`den buldum def delete_from_json_file(filepath, key, value): - data = read_json_file(filepath) + data = read_json(filepath) if isinstance(data, list): data = [item for item in data if item.get(key) != value] - write_json_file(filepath, data) + write_json(filepath, data) # Belirli bir öğeyi güncelle (liste içindeki sözlük) def update_json_item(filepath, key, value, updated_item): - data = read_json_file(filepath) + data = read_json(filepath) if isinstance(data, list): for i, item in enumerate(data): if item.get(key) == value: data[i] = updated_item break - write_json_file(filepath, data) + write_json(filepath, data) # Belirli öğeyi bul (tek eşleşme bekleniyorsa) def find_in_json(filepath, key, value): - data = read_json_file(filepath) + data = read_json(filepath) if isinstance(data, list): for item in data: if item.get(key) == value: @@ -53,7 +55,7 @@ def find_in_json(filepath, key, value): # Tüm eşleşmeleri döndür (filtreleme) def filter_json_items(filepath, key, value): - data = read_json_file(filepath) + data = read_json(filepath) if isinstance(data, list): return [item for item in data if item.get(key) == value] return [] From 3f8e6fc89bfb939ae9981b36031c29b183f13e2e Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Fri, 9 May 2025 11:08:56 +0200 Subject: [PATCH 30/57] revize --- member_transactions.py | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/member_transactions.py b/member_transactions.py index 63fe059..65e6bef 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -5,19 +5,13 @@ import core.data_io as io def load_members(): - if not os.path.exists("members.json"): - return [] - try: - with open("members.json", "r", encoding='udf-8') as f: - return json.load(f) - except: - return [] + return io.read_json('members.json') + def save_members(member): - with open("members.json", 'w', encoding= 'udf-8') as f: - json.dump(member, f, indent=4, ensure_ascii=False) + return io.write_json('members.json') def add_member(name, phone, address): - members = load_members() + members = io.read_json('members.json') existing_id = [m['member_id'] for m in members] next_id = max(existing_id, default=0) + 1 @@ -28,21 +22,21 @@ def add_member(name, phone, address): 'address': address, } members.append(new_member) - save_members(members) + io.write_json('members.json', members) print(f"{new_member['name']} adlı üye başarıyla eklendi. (ID: {new_member['member_id']})") def delete_member(member_id): - members = load_members() + members = io.read_json('members.json') member = next((m for m in members if m['member_id'] == member_id), None) if member: members.remove(member) - save_members(members) + io.write_json('members.json', members) print(f"{member['name']} adlı üye başarıyla silindi.") else: print("Üye Bulunamadı.") def search_member(search_term): - members = load_members() + members = io.read_json('members.json') result = [ m for m in members @@ -62,10 +56,10 @@ def search_member(search_term): print("Eşleşen üye bulunamadı.") def get_all_members(): - return load_members() + return io.read_json('members.json') def member_exists(member_id): - members = load_members() + members = io.read_json('members.json') return any(m['member_id'] == member_id for m in members) def lend_book(member_id, book_barcode): @@ -73,13 +67,13 @@ def lend_book(member_id, book_barcode): print("Üye Bulunamadı.") return - books = io.read_json("books.json") #data.io klasötünden fonksiyon ile kitap bilgileri okumalı(kontrol et!) + books = io.read_json("books.json") book = next((b for b in books if b['barcode'] == book_barcode and b['satus'] == 'available'), None) if not book: print("Kitap mevcut değil ya da ödünç verilmiş.") return - tracking = io.read_json("tracking.json") #data.io klasötünden fonksiyon ile tracking bilgileri okumalı(kontrol et!) + tracking = io.read_json("tracking.json") loan_id = f"L{len(tracking) + 1:03d}" registration_date = datetime.datetime.now() @@ -93,8 +87,8 @@ def lend_book(member_id, book_barcode): 'return_date': return_date } - tracking.append(loan_record) #append renksiz? - io.write_json("tracking.json", tracking) #paratez içerisindekine tırnak işareti ve içersiindeki bölğme gerek var mı? + tracking.append(loan_record) + io.write_json("tracking.json", tracking) book["status"] = "borrowed" io.write_json("books.json", books) From 0da029e08e055630e040c5e3f0a8383f5f94d47d Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Fri, 9 May 2025 11:19:55 +0200 Subject: [PATCH 31/57] time_utils update --- core/time_utils.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/core/time_utils.py b/core/time_utils.py index f26f782..3684e09 100644 --- a/core/time_utils.py +++ b/core/time_utils.py @@ -1,19 +1,17 @@ from datetime import datetime, timedelta -import os -import json def calculate_due_date(start_date, weeks = 2): """Calculate due date (2 weeks from loan date)""" - return start_date + datetime.timedelta(weeks=weeks) - -def format_date_for_display(date_obj): - """Format date for user-friendly display like '08 Mayıs 2025, 14:30'.""" - return date_obj.strftime('%Y-%m-%d') + return start_date + timedelta(weeks=weeks) def is_date_overdue(due_date): """Check if a due date has passed""" return due_date < datetime.now() def parse_date_string(date_str): - """Parse a date string like '2025-05-08-14:30:00' into a datetime object.""" - return datetime.strptime(date_str, '%Y-%m-%d-%H:%M:%S') + """Parse a date string like '2025-05-08' into a datetime object.""" + return datetime.strptime(date_str, '%Y-%m-%d') + +def to_date_string(date_obj): + """Convert datetime object to string like '2025-05-08' for saving""" + return date_obj.strftime('%Y-%m-%d') From abfc60785e42b79683a1b04a89031e6ebb3fb341 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Fri, 9 May 2025 11:21:30 +0200 Subject: [PATCH 32/57] 1 --- __pycache__/book_transactions.cpython-313.pyc | Bin 2232 -> 2239 bytes .../member_transactions.cpython-313.pyc | Bin 7449 -> 7174 bytes .../__pycache__/book_handlers.cpython-313.pyc | Bin 2574 -> 2581 bytes core/__pycache__/data_io.cpython-313.pyc | Bin 397 -> 3007 bytes .../member_handlers.cpython-313.pyc | Bin 4406 -> 4413 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1948 -> 1955 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1748 -> 1755 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1258 -> 1265 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1015 -> 1022 bytes 9 files changed, 0 insertions(+), 0 deletions(-) diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index cfd79f1283cc3317f178826cc5bb63b2484b45fa..55f14280f008609234c9d24d9b99f8ee44885275 100644 GIT binary patch delta 54 zcmdlXxL=U#GcPX}0}zDo*~oQ(QPwrtDkiizwWv78BOt~lKe;qFHLs*N#yzvdqcmyr I1I8O{0McO+$^ZZW delta 47 zcmdllxI>WZGcPX}0}$lC*~oQ(QOqvIDkjV`L?NIkKPxpRJT*02L07?K^K-@q9OCP}MG zpd8wYLkSsGB1NiFsXcJ16s3nAld9^ahf&h3 zuNbN1s%VPSDbq>y*u)4|2%BIon0@12!%+jwhL4{f?oEx)CiG<5819=+ADWzr(jO5#C&mE20BesZiP>k4jfhs9S<){!PQ86O7OG!u6 zcGkfbrEM%--Y{V66s=PMVF-ifBkG7a(3wYwC@>eZb7zOtnMEidOv3#Ec#_hqLeMox z(dM?jvBn3#rj(2&bkjaFl}hTSBQ`NXb;F>37Pjx(Cv)_uf_AnsLHIVd)u)kxdTqZ!o!xNw=$n4CP@I_7i~iOS#$6B>;c`+n+Lr z?G*W6*u;n}3zgI%7DAPWHexT-2W1O5w%6llA5|V{UKJ?WS1fouf)?;9$_kozPlzR}6x?8x3TW zRh!V`I;69et`v(9PZ^g%{P8Tj^L>xCl6CK~JChmju?Ojlc9Q+A_)fSMwFT`~^6uoi z(*9V{ZuytxrMk7^z*^wQny2THa`Z<;y3SwsuoR!4E z9+p?R4}rzRC7?kVvfp-PwL7>rWNE>G56E)~X~+Q$w1I zNB|!Znca1jHRjh2xWI1lT*&f}lRa_O6DO-t1MZ=`xr;q;`B}H>EO4o^(`sdf+akX( z)!|0!V{fSXoV~D2j5Iav@ziylT2xA=YUnXKJ~fioX~Lou(*#*JX5(oCGdlpoYD8Mr zILqyR*xUh+p+PnOm)c)tp|pC_#$I;+wPU3x-0PJ-tCK;F!-1y*sj}#T3HIuWY;UC4 zwRrM!jv-S&(8`LQ10__DK(St_i+!b4$`@g3m0ZV`lB*J~C{f}QI>81uQ;8pH<>q#HWc;6;vY}i*P^XPloyzdn0 zXKTLBa*fBzb0hz*w2jr59y~~^(Fr!!pwoKqUYMKqu~h1+VM_R8Drp)UzdD_qq$kk0 zAH_@T)HdKx-zvdun)_w64(7=f0HP` zh{r?hP{qv-9%&fXR!0j;v>6sAiBk;1>S}-w@&;`URW0n7ibgWYN-Ni!^9Sis*vt1n zZioWAQ-T#$HL0z*>_IWW!d2z!AWl!A=x4F2nK|Twe{^UY&ak&xy%9f=^bCr#D54;O zjyzEG0&35pcm>6I5T+xUx;_F$X`t89Q7E)rsi{;?&(fp?Rt$ErZj5gPcDnj|FMj@m zUQPduMs;NH71H?Zm{GS5g~PO;Bx8afDR*^mhdZpa!LCmVGNY1}CFlD!)(d`BdQH;u!rnP_yJEhV-?8~H0>yi)KSSRgy z&UPHoKJ-oQckexa-uLzI`E&RE#MRN@Mj+rNFiL-Y{LJ~5%fV~>prBBjANTjpOuJC? z@X+Zntx9&*6nTM=0n$ghNZMVu)u}G%qArby0x?P2Q$oFer_EI}vuHw=s5 zP+_4SvWILg4x7yhD(MD|O6JL!*iGhW56lOMC3J&zRie3)5Bw#g^oqf({!Uohu2*%r#y)3&sbt(>uC<9xxYShiGNFicx=+@xYTo7bpK=PcNo zsP^If=u6)?HlrSA<+H|1vxad_jjQ|kZaTW$0tWb#trq}R$eJ&(y8q(-)$xntSNiYy zv`>B7{ic=+$`^v<3atfNF7?0N`@Z{jAaQeIE!_U&kspp+d66Idr$~Y$_W}v{|IZf^ zb%ns^4dsD_47}r;=p#4UCc@$^MS-zeJd*Byyscx)+bHu5_5Rg`arftxHet` z_z_8O>K=*;P1h(VWLk2fa)RnEUDn+rlIp}{YgFdHLR2(Ql1Z?oO_!JqcZS^j1tnkC z1Y0hcdBd#Oe#5jDnUTp_xk5n`nIA0!0L!+NUo0)4X*H0n38WUDQdL=xxs^(CmHco-+KIGW@_o zhJMh#M|{^i>dqlmICw$`gzm#+D`mrkmxbsdij{C&m{JJwLGGC@Q%cwUNXmuDJ|gH+ z9IQ+^C8tP=rUc#9FPZL?IPK!U6S}82iz6l0vtK1?Sg|@%Ze7M*f<$-2+}RQ4o*}7W zJr8uKaGBB^(Uc@VDfZF`|E}0cyZ9CH$+(MQO4?#6d)}6_3y{@$hb7y!zzSwX^RO<^ zvu*^He<>b{IkbAS`FxF4whMG&xUBC10I9*wH%&e-P07ud+V4so{8!R|Yc)8rL*gI# z+xGkhj9z|(Fc85o=@x>>KB`lmbnS5W6QBkN`HrjmK!cFYp7IbOf-cku5r>4WB%~GI z)zl_J&2ztevL^!DC9jj~qAm0fvM1n)p~%7jsp<-A<`?Bb+Q)w(KM6ejO+J*Z@g$kX z`HC$wqf~y?aEM}k-~&mC{w#*D4ZvCHbUg_Jd824l>S@UKgTZz*dJ*7Xb;ho`V{+@I z*}I-7|JdCX-vAx?|3%sc3I0gN#Xa4TMs^9+T&NQOnH(RJP3|P3kLt+d$#fY%I<;9i0H2Rb}C7UVe-r*L{!+)-(^T|iC3e&oZ(scP3LYSg9Hv3^oSPS}ay92_94!)m{;(8P|HrI4H4CSTeN3T9j5M{~?ps z$c88fWjow?A$#A~_ESFY`}^|h#Gxay^y`oem;+-L)MIBZp$KBCd2MxEcl zAlnH`AUJi_G;dTg*=S8>CHSde2YvmmEy6y8hd6mHZ>a4*$GshM3~{pj)moK;xvtbx#p0|utwNZ z2+)!Udl?}Mpt&2=u{o6H5#|vL0NZVrmoiZ47PgVo&|^32*T;;?A~UP>l|fs8%leG) zvCcn+u%@&SQ{d)&JFruHXQYQ___LA7^UeYBMOba=_(pTOG{YXi4kKW~Ix%6m@}qU? zIan&^7mLO?tMCsZ+lSmVwB9Vx1M8ju&C&HP5A9uV4bi>pJ1Om4mjyb$?osLPjU%*` Jo}f;_{|~=gM)?2$ diff --git a/core/__pycache__/book_handlers.cpython-313.pyc b/core/__pycache__/book_handlers.cpython-313.pyc index 4b29e43f85db6327dc0952e693bcf50634231052..c9623ed4d2b14d586755e63758ee717c8896faab 100644 GIT binary patch delta 55 zcmeAZnJU8lnU|M~0SNxqN^j)e&M51aY!wq)oLW>I;}HNmD delta 48 zcmbO#(kH_GnU|M~0SIn0NNwca&M0P|VignS8KMwSl%JIv6P}uyt)Q!5viUxv83zD4 CH4T#h diff --git a/core/__pycache__/data_io.cpython-313.pyc b/core/__pycache__/data_io.cpython-313.pyc index a1d963c8d936f71d0595a4637209f547829fc05e..be0439b5bd4c8467b808d8121e9bf769f99a5913 100644 GIT binary patch literal 3007 zcmbtWUu@Gx7(d&W*ol*-ZBklbY1}piA~DLK2+E(*Y8`Y;6li8vshOfIaY{yOSLb9c zNYi-OL&_#KV*)B|4;|7Zs!dv@Nz=5qzU-NTx)zg%N!tr=rJXdvUiO_Ghor0>+OGBI zyUTaqoqxaY_u1=SuNy)8;^*L{hde^R(ShCAQfIvzIyX@iMVYq{vF;3EqU;Vt*eC~< zi(;@i>HzDAI>9=lJXk&|fE7lVi0d&8HjrdWG3m_-7YElmg4vsBn9iAP(B9defcv1M zVo>VJ=uj!%p3+PTR(7B;YDUBGG**-0+)+4Z7sn!%85ZpMLG#J&k#%oHGGoWoS$Jaj zJ5)N21aVu?UR2%-_D-`B3Ly#pM$ic^gwjk4s@TC(9i5JNlz=CZ;FLNWf{5wTx(FUH z81l@K%cfsFGRGK#q9(OeMjeUp2CL}?9#3R18BS#~qi12HjVr2w-`6#;qgoONM}YBa~Y;Roj!*o89m9PF(i3CF-6VlvD2Asf9}25 z`77B=ni@Z=rE;V3cNFDvyfc>6h!RUBvWa*`+c$p2a1kYuiqp+WJ;bEU=F%lSnLW#5+oIUE;;YNMR$1(*FM8_=duCq0yZgTPzQET?+I?L}L)pJCNC-h_{6XA$RJ!v8tIF%b4 zhZ&zW06s`9banbvk|dEjI`5t!nXF=wvjZlmv%VJ$kmIh&PtN#fC+@pD<~xgmXWDh$ zRS3^sn3wMh$AAQJ|FXN|7k9@qor3jg<6iDt_fftIMS5Bj#gCy=jiRj^l^v!YW|P@r zy25O>j%@uTAa`VTu&h(t4`$06l+Za&W;z&%>9T(xV(my&b#u%>#9^kP;m+t8RnI2W zqynMXOQ-xB_dg z66+C&FTthaG$OCS(M!k^Sc^zA7=s&8vL@Vf4l7T&%gPnQ@j+rVr>tAIWNULm;jGhjA_{$We|17FXbz)aw~rn#p1wr_$zwl79b-o{@A z^7x*wrzq4Hjw}hSs}3YIKQ(+kI@Q$IO}*Rj0^64gk2v;*@ z@#8d=QNfQ(QK8o1K=md>!cyi;Q5G56-Tv@a+8A64tQ@NVN+0@lq zz7}hyKP}WWmOcn(Q`U-&(rnQd^yJj!4EM>0vyLTS`^t`8g$tkY4{IBq z@Th6`9|CguEe1tkkhDVBDmj%Y%fm05Q1-HNg5Xq6{Q$O#W&E!)vdMuGBZCC#M*<~g z#1hCH-avqbdOJmDg9JQjcmc#Ss#UsQ1CRaG>jaohF?l`&kj>BYPbUY#w+k-) z6qrrH+oEhN`g-mOJu9O3+M7?;I8@uq*d@bbmJAP$xXgDlp)X2{V)~9T-xY*bEkZ>= zD2wK4=8#E)^@3$V=bHII`CtpzaC TwpPP~2{@VB^?JYvu5MoC_RVfITh$u>qCZ+T$CkS=pCA#nieIs;? zOl*j}0Cw82VCg=8{* IFQX+t0M6_ZIsgCw delta 47 zcmdn1v`vZYGcPX}0}x2%Z{)hmDCU@A6%*zeq7YD&pOqRDo|>AipsQfAnT5%c9{@X# B4Cw#> diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc index 04a523a55b38b3196fe77e063d879a4a12e12778..94719ec30a421a897d41151d32aea0f5ac08ae5f 100644 GIT binary patch delta 55 zcmbQkznGuI;}H8vwZ*5fT6Z delta 48 zcmZ3?KZl?DGcPX}0}velEV+@pf>F#Y#VRJuGejYvC_gJTCOkDYTR~UBWb*<>W;Os& CJq^bI diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc index 9b51f3cbf10d2ef0d2f176a9fb0a2385c3a2cbe0..efffb7780226dcc77a6e9ace1063d85350f2b2a5 100644 GIT binary patch delta 55 zcmcb@dz+X0GcPX}0}%YJmEOp$$0+NNY!wq)oLW>I;}Hgl@$O{ C)D7GK diff --git a/core/__pycache__/time_utils.cpython-313.pyc b/core/__pycache__/time_utils.cpython-313.pyc index 2ca9ab9b3fa5c10b6b60b147f64e376ca1baac12..bb121663f9a50e2b286836ac0f520724fea2f76e 100644 GIT binary patch delta 53 zcmaFG`H_?JGcPX}0}!0u$f?9A>zr&A6Iz^FR2<_G5aW`cT$-DjS5h3~o>}5inzY%G HaV0YVyD<@E delta 46 zcmey!`HGYCGcPX}0}wQC Date: Fri, 9 May 2025 11:31:24 +0200 Subject: [PATCH 33/57] restore 3 --- core/__pycache__/time_utils.cpython-313.pyc | Bin 1265 -> 1166 bytes member_transactions.py | 6 ------ 2 files changed, 6 deletions(-) diff --git a/core/__pycache__/time_utils.cpython-313.pyc b/core/__pycache__/time_utils.cpython-313.pyc index bb121663f9a50e2b286836ac0f520724fea2f76e..a0cfd3af805fa18a34b2bd8611f55ba37143de70 100644 GIT binary patch delta 630 zcmZ8e&ubGw6rQ)Uo9<>w{ZW?Mkm3l2WQD{K5fo|_#7hJbmV!SHW$mspZIYF@(+a(` ze}Pbzf(Jp5`XBfQco94#_8{b<2QR&;@#M+(w(Z4X=bPDiGvD{U_kKAqozk>aDhe9j zr^RO*d!>b)7X9ptKm>4CbOeeHASe;c1V&k`0~&!W3zUILXa*Lc)h+n;A#?b~#EwE8 z>)s%qIE+!;*WsGM!Q)}kDrrv31p8t|Jci?lSb+ep?|r^G?*p22NOZ+ihp1PX6bqSx z=z>E5exIHt*cIPh@3r&J8lP*9-R8(_PDS>{(2IOyB8SNfAIQ>XoHL}Xq|nY<(z9l1 zKa+K21&Uc$-iI662YInpQ@x>1RH#nUP|1_^cuhC|+SP}R>Y!1Ld;?|XnQF;qjWf?f zOpoYSQ;of07w72QrI~sJyW)pC_tmX@aVxJLyxl%<+at4$MKZaNeS}MQwwG@w!>t(g z|B8xi91*I1ZzEQfnvP-VC>CGhj-{{RsglO--`p%?3#? z&0ipdrJzvIYr%v50p2`#DWvsK*dFxIOK)ntdGXC!2j)A!-uujV-n`O(>gLciM+vsW z{nGRIeRF(w9v6GWB`#ehD+I_21TU1fr7QBYlVf16-iVjkq4&5}_Oc@Whl z2D1G>ep$MeIiiTtBj1huzIIZaIxbFq$R8D}M@Ds^R)-{>R~DXh7BFThgq9a^N#GkH z@Qw(evH^{t?KivJZ;0)t*X7N|i-4D%8NTLqKYtW_+L^w8i{H6dyX%y1?`YQ3iq)!E ze*8tbdQC@aQa~1RQ)hLY*DpwL2~YKyswHZ~JsMq6Wwg=`U)mJQ(FxKFL2;LZ9_Ls- zGlp|BzR6_9GJ8yy;y3KNUP&*nIZphEjTd%u|1DIk<(jotvs{~j8lN$~oBGLZdm#S7 z>mq_idlL%C&0!apQF`Re7&|da$42S(`k-9 Date: Fri, 9 May 2025 11:34:11 +0200 Subject: [PATCH 34/57] Update tracking.py --- tracking.py | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/tracking.py b/tracking.py index bc59124..c47adea 100644 --- a/tracking.py +++ b/tracking.py @@ -1,23 +1,33 @@ -import os import json -import datetime -import data_io +import core.data_io as do -def save_tracking(): - """save updates to tracking.json file""" +# JSON dosyasını yükleme işlemi +def load_tracking_data(): + return do.read_json('data/tracking.json') + +# JSON dosyasına veri kaydetme işlemi +def save_tracking_data(data): + do.write_json('data/tracking.json', data) -def get_tracking(): - """load tracking data from tracking.json file""" +def add_record(record): + data = load_tracking_data() + data.append(record) + save_tracking_data(data) -def get_loan_history(member_id=None): - """Retrieve loan history (all or for specific member)""" - pass +def delete_record(barkod): + data= load_tracking_data() # Mevcut verileri yukle + updated_data = [record for record in data if record['barcode'] != barkod] # Barkodu eşleşmeyen kayıtları tutarak diğerini siliyrz + save_tracking_data(updated_data) # Güncellenmiş veriyi kaydet + +def track_loan(member_id): + data = load_tracking_data() # JSON dosyasındaki ödünç kitap verilerini yükle -def get_overdue_loans(): - """Identify books that are overdue""" - pass + # Bu satır, member_id'si verilen kişinin hâlâ iade etmediği kitapları filtreler. + # Yani return_date alanı boş olan (geri verilmemiş) kitaplar + active_loans = [ + record for record in data + if record['member_id'] == member_id and not record.get('return_date') + ] -def update_loan_status(loan_id, status): - """Update the status of a loan""" - pass \ No newline at end of file + return active_loans # Bu fonksiyon, üyenin iade etmediği kitapları geri döner (liste olarak) \ No newline at end of file From 4e90d7888db490307b182a7bc7804a8ff4d9eeec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ali=20B=C3=BCy=C3=BCkg=C3=BCral?= Date: Fri, 9 May 2025 11:54:38 +0200 Subject: [PATCH 35/57] Ali --- data/tracking.json | 47 +++++----------------------------------------- tracking.py | 5 +---- 2 files changed, 6 insertions(+), 46 deletions(-) diff --git a/data/tracking.json b/data/tracking.json index 203689c..942a234 100644 --- a/data/tracking.json +++ b/data/tracking.json @@ -2,51 +2,14 @@ { "loan_id": "L001", "member_id": 27, - "member_name": "Sadettin Kacar", - "phone": "544-344-6786", + "member_name": "Naim Ucar", + "phone": "545-345-6786", "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000", - "barcode": 9776057611000, + "barcode": 9786057611000, "book_title": "Kafamdaki Fillerin Hepsi Mavi", "publisher": "Indigo Kitap", - "author": "Murat G\u00c3\u00bcllen", + "author": "Murat Güllen", "registration_date": "2023-09-18", "return_date": "2023-10-02" - }, - { - "loan_id": "L002", - "member_id": 28, - "member_name": "Naim Ucar", - "phone": "545-345-6786", - "address": "Kirmizi Sokak, kirmizi Mahalle, Amsterdam, 35001", - "barcode": 9786057611001, - "book_title": "Kurk Mantolu Madonna", - "publisher": "Sabahattin Ali", - "author": "Salih G\u00fcllen", - "registration_date": "2025-05-08", - "return_date": "2025-05-22" - }, - { "loan_id": "L003", - "member_id": 29, - "member_name": "Melike Kaya", - "phone": "536-345-6786", - "address": "Beyaz Sokak, Beyaz Mahalle, Amsterdam, 35002", - "barcode": 9786057611002, - "book_title": "Ben Sana Mecburum", - "publisher": "Atilla Ilhan", - "author": "Murat G\u00fcllen", - "registration_date": "2025-05-014", - "return_date": "2025-05-28" - }, - { "loan_id": "L004", - "member_id": 30, - "member_name": "Nazli Inanir", - "phone": "535-745-6786", - "address": "Sari Sokak, Sari Mahalle, Amsterdam, 35003", - "barcode": 9786057611003, - "book_title": "Yuz Yillik Yalnizlik", - "publisher": "Gabriel Marquez", - "author": "Murat G\u00fcllen", - "registration_date": "2025-06-014", - "return_date": "2025-06-28" - } + } ] \ No newline at end of file diff --git a/tracking.py b/tracking.py index 3b25127..c47adea 100644 --- a/tracking.py +++ b/tracking.py @@ -30,7 +30,4 @@ def track_loan(member_id): if record['member_id'] == member_id and not record.get('return_date') ] - return active_loans # Bu fonksiyon, üyenin iade etmediği kitapları geri döner (liste olarak) - - - + return active_loans # Bu fonksiyon, üyenin iade etmediği kitapları geri döner (liste olarak) \ No newline at end of file From d05d8ac47113f32eff5892c89a36316064b883b6 Mon Sep 17 00:00:00 2001 From: FurkanBilal Date: Fri, 9 May 2025 12:06:16 +0200 Subject: [PATCH 36/57] Furkan aciklamalar --- book_transactions.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/book_transactions.py b/book_transactions.py index 5324a31..7b71da9 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -4,7 +4,7 @@ #kitaplarin kayitli oldugu dosya books_file = 'data/books.json' - +#kitap ekleme def add_book(barcode, title , publisher, author, status): books = di.read_json(books_file) books.append({ @@ -15,12 +15,12 @@ def add_book(barcode, title , publisher, author, status): 'status': status }) di.write_json(books_file, books) - +#kitap silme def delete_book(barcode): books = di.read_json(books_file) books = [book for book in books if book['barcode'] != barcode] di.write_json(books_file, books) - +#kitap silme def search_book(search_term): books = di.read_json(books_file) results = [] @@ -30,11 +30,11 @@ def search_book(search_term): search_term.lower() in book['publisher'].lower()): results.append(book) return results - +#kitaplari listeleme def get_all_books(): books = di.read_json(books_file) return books - +#kitap durumunu kontrol etme def is_book_available(barcode): books = di.read_json(books_file) for book in books: From abbe9345b689fbb69ddd2ab5304dff18e6e56cd0 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Fri, 9 May 2025 12:09:46 +0200 Subject: [PATCH 37/57] revize 4 --- .../member_transactions.cpython-313.pyc | Bin 7174 -> 6870 bytes .../member_handlers.cpython-313.pyc | Bin 4413 -> 4413 bytes main.py | 1 + member_transactions.py | 29 +++++++++--------- members.json | 8 +++++ 5 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 members.json diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index b65f6401c9e6baee6dfbeb067e5f236761b6e99d..c24bb43bb28b7c3238ac95891a9223e72cf0968c 100644 GIT binary patch delta 1321 zcmZ8h&2Jl35Z~Fg*I(Hrwi7vNn$*T!oK@ncrIbc)5=2u$6~Jlfp%g)!O?F94{SnP> zNLqx5dO(1LQ1vc|T)E`z0}_?`2XLWMQ6)A+>J_9)m2(0WiJ4vFR9)%)cHhjrncsZ8 z{c`%zIqgu>;u1Z#9*(YW-PML+>29GCUjrldCyUFiDOrc!e|qY6eZ@xS)F)1}A#Nyn z2#e2^V-OYJD`#gtx!Uw%Xq#4r^`25Uw>{O|*svRx7vI9FYX^$(238xc5ydF^#u!6f zJX7X`1`El!X<3yZ4i1qj+PWJ02_Ph5>W8^7li8E@6i+^N8q<7|MUFy{&F)}Ee65~_ zVezy23XyuEzHz;WZ8QQe)UdZ*Per@l{M5#NmL~}e#dm=zwoy9?vcKhQ7Bei=EW2hC z_YSF-NtO|JA|K0#QtPkCqC6NP$@97JHZ02VwWXuzisPaet~Ix848n%Igkzhyx?XW@ ztoz~pgqWeTS#ursnx&^hqGQ}4Q6y!ql}AF>Mh;Gq>KrYHi?Ad8k=tlPxvvG^)aHIS*9httC|IaHRU9q>Tj_cs7q?#6IdMBXJ z`lxqThL^7VO|`h&JVIL zzt+!HA}@?|X}XU!JOM^5pfyY1UU;S1yyNkpdy{KDR{c=fvx1?Xg zw^(_ZVP2GnH@@h02=grD%Me_Pll-;7@HRu4z=#|b3a_$sk>NdtD+FGo(cG%gj5`t9 zEz{lUPHqBicM}^yu|6Q}5-sPEBxaBOp5mc2`aQWxb?2W3E{O4w9K0hIMn(dH{0~6B zbI3FAkE%Z{nR?UOtl4vDk``z=T$iT`0PIV#eJQao^&LpZ52WF?s=+F> h$D)vL52WBsdmNzHR%MuLN3*>!ad-&^;C=A#&VL%cFoXaA delta 1472 zcmZ8hO>7%g5cXT!8{6x}KdJxX#JGtZdubZdA1De*TBE4Ype8DT(sIDr#*ZY$_PVo9 z8^j?M2UPU})m$n#^wNtj703t96^Ii^m5MlQh=2nJ#0A+xNSt`{){U#Kw4dIa`F3XZ zn|bf&mp*+(@9BETBcAy8W1Iip(KGDoonj@q8XWOJbTuR}w!sYTPogYiFZ71dR+j$@ z*LnR42YdReZ8h48qik7D5V%>bNQ0+Gbo@$LIuWi}!rG@pSeS>z+lvXf>G?&|KbyNf zclWu+TJe#u2vo>A!+%0&E8r7rLjhttp&PK(;xe|u9JL>f30EF8B7|-8IzPxl!6}qI z$TEL>{%-EER(j+s$t+)gUSNLk3le_ICJql%5MRTrbI0G@v>MzQGOJbKwhc+)+MdL= zKa1na@G)5s1c>jgn>&tbHk-Urg$P;vP1tI*jDY+IQo;mj1Z5%RRv8j8`$fXIaOxe+ z`wjESD%MgLi){s{kYxx8Ys;0Zqrz!;We6A}VpM<(wwCX!r&oE63w>Q(VOkJIaZdd}fl%kZx}qeg z!l(aXh{_6?O#oBVPpEK0*<9qhk^JYbXhDMr&eX@P}lYy^h~SZ?OcPkL6UEaS^Y@R@f3g zjGanQbSdRv=3ol-_-s5&9-25K=oY$&m*ZLO9GRC0-o)Mb^9iYQkdjrdSk{N|o^X{r zo%m5E%KUw}pr~hwJdfezCnse3(_-(ApW%a|*f^{Pi$szmNM}-vpqN22mGEJ5f^Fa* z$)AdY58*Z8dq!wtzb~MUzoiP=3$!g0oX2Q7r7hEPg;vdI3{pqyctE`6#U} z5WGe3jsRn*F8~=X5nLp=Oz(ZvN9 zFg$XYt>W}Zc2|}`7Z%VpA`h%Q8bG58Gb#sAnHqkv4XUDoF=~CE2H;`vXdW-B3 JyTs(7_#bnnNLl~@ diff --git a/core/__pycache__/member_handlers.cpython-313.pyc b/core/__pycache__/member_handlers.cpython-313.pyc index 6083b96b891fdb5c07c5b0890c17efad553f53d5..d9992f38833a238b13121ab1d4c6521c6d6a8345 100644 GIT binary patch delta 20 acmdn1v{#AyGcPX}0}ybYl- Date: Fri, 9 May 2025 12:24:12 +0200 Subject: [PATCH 38/57] track_loan update --- __pycache__/book_transactions.cpython-313.pyc | Bin 2239 -> 2232 bytes .../member_transactions.cpython-313.pyc | Bin 6870 -> 6891 bytes __pycache__/tracking.cpython-313.pyc | Bin 0 -> 1558 bytes .../__pycache__/book_handlers.cpython-313.pyc | Bin 2581 -> 2574 bytes core/__pycache__/data_io.cpython-313.pyc | Bin 3007 -> 3000 bytes .../member_handlers.cpython-313.pyc | Bin 4413 -> 4411 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1955 -> 1948 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1755 -> 1748 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1166 -> 1159 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1022 -> 1015 bytes core/member_handlers.py | 4 +++- 11 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 __pycache__/tracking.cpython-313.pyc diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index 55f14280f008609234c9d24d9b99f8ee44885275..801ebaed5da7a6ad2522de4aed6aea71ee27f115 100644 GIT binary patch delta 51 zcmdllxI>WdGcPX}0}!mcDx0Csx{+@WqnKTaRZN&?h(bV7epYHscxr04g06ze=I4wz F*Z_g~57Gbt delta 58 zcmdlXxL=U(GcPX}0}zDok;%BkvXO5OqpWMPRZM7cYEf~FM?j2AesXDUYFE0X{}I3SYp^RwZ0ifv{RuwY~p0?TZ+7OY`p)R??O zNQLc!q}F8~?a2>?wAn7m7+mHzoGd8ZtZ+d{Z3V{_7Q+Xk@(nH>5{-U$SlHTqn|v<_ zDK7}U!lJ!-lW;Dp@-3hXega*QbF&+UiF8Rr&xv6<2 z#WC)gB_5?olg}_Y3QYv+YGAm-C(xhMl{3TcGN0CD1?C|333?0EudrxMu44Wj$Qa6K z$^s-Q=}2mVS&_vx+5C!FfXXHpiib^B zWo@6lk##O(++=??8}9V>zv7QzWaQoKAy~u6s51GekP7PznaezCliv$z zv(E6p%&#+9LAY6dg8l-FD=az>MCBV?IwTtX?y#`6`!@Mb&{@EGg+=YjvbNr->n7Q? zW}Q|=AO$X!IFMW_;6#sv8z*w)&c#t0H7xC^r{2=|fO_Nq_1b|@q<(4t{`oWW=l%Ep zOgo!30HytV;npJo@Qems;fc|{jK%|Sz+rQsI)66Hm1cp%-vlKb4RxO*Q0q<~>Xf6S zPS=>7dQL$~)g)B>(@@jbo7H*Yx4K;S zYZJG_z_)qCy&%dc>3S7%Y(bm0L{r}M(!wX#t$7vPmP?;XxonMFlS}jWnzsVKQVhJc zl?r()lS{pTjeAjUCBQ&kPlXOt#FLI+m_xM=Pt5Gb%r`Tw;rDjU@s=1@X>?Z;plAXh zot-ox2?7+-S(eJsbS`x7$YXflzzM<} z4xmE3Lcd@9y4cE{{YmV-3U03|^SB=2_EMR`F^SL0>>8~)CI~xOYr!I+jiubH8YN@1 zlC8xQM!MT*NZ(V059_8YSq+q@vN#MWeJjbya6PY*OcLesf)O-``@*jI*7}uwk-k6o z)!e53NDMs@CpVjW;`D#(K#<~gYoPIei4DR65BYh7FbE%?00>4MMjOj8eHXw(U_}H_ z=JULWe41c^ulanjM@LyZBB6#+Ec|?a6EiGDsT;1U2A;%XQb9VIi%3WJa?r_KQIVql zwFXvJdU3;rRDTPlQ{t>AS0uJT!pIO#5-TCyO=QG4y=#oDU-`ox-yJOeod5pLc4p_o zhriw2xp4KnkGAsbS6hQcqUeh~G4}FMgM5jF)Ug}=m&A|yCGoG$r8bWl`xcGYV(cAk z4_@Xy&OS>x!y=dYtD45)UA}N@EG}_;HsSc)BaX}3*gyHyN>OH2uHKNUQuiWL$>y5! ziLfrckyevUTc}eQHSVf}TesS*<0ZkH?T5#>HR78dPpJZKBXYw9R7b7$!hn&{wx;Fv zsBmWU^1eB+d2YuXd1&vL=h_-%PV7%k|2q52?Dm(BCyRfP`98uSeu0PZ<3pntd} zhF%_;I0~`9U?ckh7Z3BOwsll?CKB{;Mg4diI;}HNmD diff --git a/core/__pycache__/data_io.cpython-313.pyc b/core/__pycache__/data_io.cpython-313.pyc index be0439b5bd4c8467b808d8121e9bf769f99a5913..025d9fe849613fbcc23f7cd6404b31baff22c0e0 100644 GIT binary patch delta 47 zcmdllzC)brGcPX}0}#C5zme+|qnKriRZN&?h(bV7epYHscxr04g06zeWQK}o7ByO>f(sK6WvmJoW7@f-HGkzyg6+~5 zP{Vlw7cRO}vr~KkK}2vN4v6RrC>3-ko;$X*xaeJcbM85JzVn@**M(OF>!)QI5}p3X z-11!C8fESN;nEq&mn(YN0K=7hWlRFoR|!*olF;%s!nCgw+P*=U@l8Uf&b(CrVKMEo z$ml|CsZniqYHj=~XP>{xv+P_@TDWofx_cEm_xQq1&KvGg_aw@Ri%NzB=z~h)9kWto zMoQR)l~vI3kUW#Kg~wU0wSy+F)`Fng;;lsvaDe;{uF0G^_$Vod7H!}pEndG8+`qK2ZAUGJnS{QA*3k~3If-4!N!;Bn3AL0 zLHwkyGG|au4l{EXHP*E$H&(iTOKHHHyvw)qOo%-ALc2i!Zfeiiu{|W}qHWd1PNxAv z-o_BP_}<7f8^0S_ScIChGoOEkQtdiT>Q z3d~~9qD-Q}>>H-^E5#&v<1;VKuzyyY%`+iOoZ6%$-PZAeGR|~-q7(_g=+pQsoh6}` z?a_oz*_GK?uJZqc6e5Ug_NZpEBSo|#jO3LrZ|w-iw{~7FQ#`zjKkP|0`*{6BY65ea zv#LX0Zy4`nvXr=&x#UM$yoxLBI>hW^)#B9wF-{P30ihj4wQ!tZgH~DC@iet_txnKu c^7C+-e4^g4gnu$4%4cbOQ^gUdAdAO;0dv{Ai~s-t delta 814 zcmaJge!pHbp zYLy38ku(RDwF~mR1cs|1rd<`$bT!0`t0P*jftYpEi1s$AnuE8?@Ap?osphZMA2JH8 zUb|nv75Z_H_9Irm(~fF!lNaW0DmDsfds}ngh-Kn7QCI}+9nkrze1&9rC>N9h#%=ye zrX;s_Aa@B-`Ifr)K*MlVg%mCzS|Kk$M@TG2J@8wN9_=+LfH+Mxm1rIM^l=D5q5)-b zH)3F6f(Zi0aUje0)p=zBzl!{qx`SeyTAr9w)cl!#-pOJ?a-!w+gD!0Zv`ZuUPshPj zg@4g+V6S4lBdr-0jc(}m8_h86jO^{E;ItstnrJ)>Xri&$_bFo&dm^11>rR?07{16$ z<~C|RH!l-X<{vUo9?eiTfkrV*X~S9M_+KYK)|oCnhgIwRg(Z{@M_EI|gdgJBBo7L}`Wp3ow zOF7I`bII|e@ivgV&pbbBhe)n-FL!$r#I*u(aX<_d90B52fj9+RLfDl+@W5!E`n6sd n#9ewFu40Vf%f#k)iV*Tca)#2Gp|muV7I6PZ<|mJpWzqW==77M+ diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc index 94719ec30a421a897d41151d32aea0f5ac08ae5f..04a523a55b38b3196fe77e063d879a4a12e12778 100644 GIT binary patch delta 48 zcmZ3?KZl?DGcPX}0}velEV+@pf>F#Y#VRJuGejYvC_gJTCOkDYTR~UBWb*<>W;Os& CJq^bI delta 55 zcmbQkznGuI;}H8vwZ*5fT6Z diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc index efffb7780226dcc77a6e9ace1063d85350f2b2a5..9b51f3cbf10d2ef0d2f176a9fb0a2385c3a2cbe0 100644 GIT binary patch delta 48 zcmcc3dxe+#GcPX}0}zz_m)yv$$0%l*VignS8KMwSl%JIv6P}uyt)Q!5vN?>gl@$O{ C)D7GK delta 55 zcmcb@dz+X0GcPX}0}%YJmEOp$$0+NNY!wq)oLW>I;}H Date: Fri, 9 May 2025 12:51:45 +0200 Subject: [PATCH 39/57] x --- __pycache__/tracking.cpython-313.pyc | Bin 1558 -> 1528 bytes .../__pycache__/book_handlers.cpython-313.pyc | Bin 2574 -> 2510 bytes .../member_handlers.cpython-313.pyc | Bin 4411 -> 4285 bytes core/__pycache__/menu.cpython-313.pyc | Bin 1948 -> 2193 bytes core/book_handlers.py | 9 ++++----- core/member_handlers.py | 11 ++++------- core/menu.py | 4 ++++ tracking.py | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/__pycache__/tracking.cpython-313.pyc b/__pycache__/tracking.cpython-313.pyc index 3edaa6dc74facc94657465127d8486ab66602f4a..df267d13419f93f977c8b6b1bab23907cd31fee8 100644 GIT binary patch delta 226 zcmbQn^MjlBGcPX}0}y!Jl+D<^k(ZN&iyg>g2I9{hlNDGr*i{)A@|Z%ICL1t`)CV(~ zGJ+H{FhsLLXa#fq|Prfgz6>XaKVcLot&A5a%(a zF=#UR-Qvtm%}q)ziqA~ZWG(_Z;TCgxYRN6;%)Am!mLf@@KoKv95Clo_Bqo<+mQDV^ zqRr?#S%y_!sNbs7YC`s9Zlxv3D>N79UF0^I9LB1^%>h*0uVl}%mCb%~2WuYyU==Ud delta 231 zcmeytJ&lL=GcPX}0}y;ZEt_#=BQGZl7aNer3=-*^tiYlntHHpK#}vvG%*YB93uUm1 zU|>jLVqoy)1M-+A8!(B)1v8m40_A`Js1^(oK?>AB3IdpXwHO$<859`un1RMHt1uKZ zDFAUEQyPONv)?Vw+|=Bp)S~#zlv~_IsU@XFdGRTUC8?TBMIcw*Vopz;e3He5F>Ep) ztGx6C?Tg%U3p6isYky{D;N-tyVzu3Cqt}kw>n6UF?O7Fs_<>sbc^#Qp7Ki|e9c+$F Ile1X+0I3->VgLXD diff --git a/core/__pycache__/book_handlers.cpython-313.pyc b/core/__pycache__/book_handlers.cpython-313.pyc index 4b29e43f85db6327dc0952e693bcf50634231052..4048d799a308b0ce4527d9e0811d325273b70127 100644 GIT binary patch delta 736 zcmYjOOK%e~5VkkoXR;}!R86811(hNe2~-q%YC!6Nhf-eBDiu-=OUPPDL|z(ifEyQ1 zNI;9le}F6f1N{R>J<8Q_@@6UakbB|otA!z>SeDlM$ zn|*x`51)une7Zq^;;wCI&GU#w2w%?wSBh#jR`B-1v-t|_hrjk%r zA**!i6-d>ddRVx2!ZwJPkk{#wd_r&MfMH0ix4Qj7gemlAz20*nl!Dx)n~sZ)flFMG z1#QtDve~WW1C|-?RJ7leI&zKWs4h3z+Coa{%rtA=u+4*77zRoSGV(KfN7Hi8%+jA& z>>F)?$iP~-SXIgstI(6u9wn>EW8P=7rq9plC%0I*As-k|!wUsS$#pa1ji`aBhfU?c0V`c8p|s8HHXc04 zu@}jbi3uk?d+fFiz1Gt#t7WlPxP89YrW;d^WXRUE=mbrg=8qjHQaB3t_^ z`0m*#)K}bcZNBK{3oc#XI1?q@F7vrxUw=0>nuBh*(*;mQbE=3C!;x|*4r9^;>YOdO z+YO+D1#=N*Y9_mcGWfSNWU*N^H4u_2T`Kz_St?g+zAc61QKho%g}A*)oWf#n(SvIV zz7x5<%N$mri4)t&ksUnRjKx32((hyG53&B$sYWtY$4$)$q+mQ4tS|3s<_{UVPJZ5; zl)fOOvkW#7W?4LWD$aSrL@{43l-&7zp)fBJQj@LW=Y2_jx4`G&IPCftd!;^MZ-|i_ z0GQMNIymxCw>fm6iFE89=cNB@a$i5@MOalzC6ptsMX*)Yr#vK7;i=eD<@z&)3i+u> zO}Vc8)i{K@=jQ1`vD1Y347Pk|^If_Us?_yrCEue4zw`u!Wm&W>!ifVBj#HfF4!y$D zAf?INZw^KCciEKnuBB}T}yg0U{ohIk_evp0Bt|;PF>?j+KT&RZ8 zg$i|tYyMKnqau=u|3OUwqI4>vUIP^&ohG&HN~KUMxmW3VZW9SS;qzTa2sNO84>Ef& X(82^wwBkC-woDyO?3);kwK@I(>bkn^ diff --git a/core/__pycache__/member_handlers.cpython-313.pyc b/core/__pycache__/member_handlers.cpython-313.pyc index cfcbcb368ae9882f8c63451fff4208d8d3337af6..f825276c01f3b060a5e398f1ad1208b3877740eb 100644 GIT binary patch delta 1170 zcmZ8gOKTKC5T4%cd1oGp(bZ*Q#u$yG_`pYU@O4ynHG+fqh#EH8CJF8%*6bpl6j2Za zNo)mwf#AtQE`oaWA_zefgmHr&ym-^~Q@7Aw%ETc%aCwf zZS+ky^?7^aEx^AgQYeKaF9E@CDxb=wA)TW@eX*X-%Q*#<#3p$)r-8m|xA-(~91%dAo#pJs(3gV>sdnM!TE z$ZCa|QZ)Z!7cZ+indSYu_lN}iyxr^h(wHs|ixH*{k(T94Q&N!T*NMmH$q5fAF30jr zWwu@mNUWAwd4fR{2{!*jF736^5N@KK2)CsMbr#(nOEhTM?kC&-VEZ5Kf!ik-l#$` zR)IzJQZ0&7$n|}&_WjvKWqJ^t zg)3?g>2F06;Y3MdtH?^M#>QJk1DQY6GQLP8?wu}FiY12nbP{~r8scxYXVZ!iXxG=FVYa(?rN;|;UQe!!~4uB zjC0T2Psjj&*>(5SnrJ4lS{*v#!62Ud-*?Zd?@p>{gv0#4h29e>-z8FBu>GSMsk7zM zZ5`Vxu2Hw$p#Rj(@ZYwJ7dD(7e8f3DtaNIOkwFn4%CjnRt46ZOzC+&EPS)6sq?0(K zQU28#*&^g+%bJ(Sdv-|+JLE-Hu#V^4o$Fc;!kDZA+f%RM+d^6IxO#d?VygJJ%|?H&0d?OTzyu1MZz$zPHBn+hd|nzl-g VGYH0DA9RJ_?+6oX)-ef!Oud2i-@-se#hnY`V>*@wg@KCKd<_!p`|MFi2~KCvoQWRO!#t4c)$EyKgT zQdO@QV4zQS37Ecu*78-fwy&Xed>w7hH_(pwCffWaEn7eHD_k$r#B3Wur&rqw>Wu() zznW+73p(wyZ?zID(DK3>DUg@)gmmb-%0u|@g*EDsMPZ2!=N?%t5MmOKtn2KK>aq@X zr9Xvp9_!N=pG@Q(Xm+ARZgzHhQCUdTcF^7kAWW1D2$;rWztC5W5kxwE;bnG1C>0Mz zi+$x#vtuD%j_3OAeXaDXNDA&xdy((~r54kr5|!9l>GV_%qmukqz0+s~wR)pb8|H>d z^yk^86wo|-TPV`sv9jxINnWP2tR+v*uhFbNVco>7>F}jB;XmqQAL%RXJNc#zoC)SB zo~?k05G-yAY*m?<1D>TUChB(Z)|*{uBq{`9uN8&h;6li^d!7e5_MYMzQ#gB^yEoZq z%C++c<5T??4y}CrT>M776`$L;yn#q2rhik2?%a3IJkZV_O8R|c@q6iM$g_{_B0H`A z@yhUYOaq*{#BKzwAPW8_KtdnNtPlC9H5(yU4R65rj%9@XGh~K`uuyx3=J)orFX*X% zouIe6^-gW0+ucs9y(@ypc8zJ8W1kx1@*GAluy2e_j9xS^QY8A8^^THpbZm_;aEjmz znn!ftBpJ;v13}b-EdM+%TxH8PCQIe}F_rHsEwG|v%d>=c+>ShU@q~<=gmnCmjM%0( zOx~#a!UQ%pIsSyb>s6akeaCybzTMnt!YsSv%w;Oyb5<|OCsoD>khvKO4Ibh|=8S}i z)Qp1mqoPeiwt)}lyNG$JPU;Nn3F4V&yXO`A>1>;?%U z^$+l1S$eV+uihfwy%>)kdhoKOXX#CnB3=aFjE&HN`R1GVz4>O|yq$@y6NzCWp%ENm zKfn57E0L`{z|A%>i3vqAFX@~~MR)`ZkZY!#BWu7UbIhcI$)=JcjG7Td#f&0GOcgO& ziy83)?rcB^GYG10RoV^9cRsEygED~%{qzmekcuK@5uPbC9%fqbOPb4!BMswr-P>qb zowDmR+bn}2Ex0E?gk-Qw3&EcJJj-L~9&@dFQ)GF75uJ?(7ELR8vv!sAlmNw3S!qJm~)uH#l5cHHi>l2dflv%$W??fxjckPF^M zrmr8Jid9;z^W4;CEzdGl{IqA3Pc=5*g=k7Gaw#{nwUwRE($C z8&fjn8}i(ds*@Tq=we9MosJi3D^|1GDc4xtHl#4R>R7hJJn{bxXT|jmiSd>*O2{U! zmfDtYjeZSZUXebHy}t0~+WRxz**)#{cY25MA{Gre zIEO1PSNWobTD8TTOKqQ9;8o;bZ+W{I?+Viqmc>_y8$J->!$jNFTW-s4H=G4_8MAnm r-bI9;G63{RW}oB_DTT?yIEC~e9)Bb5Z&QE_>hxG)Zk9GE?cv7)sl8!OS? z4r663#rPixjg=u58lbar_K1aB%)WUu@6AkWrXA8onie4V-bThTX=z4w4U=m^357gK zdlH2DsK+EHz<~OxwhP;bHDPihiO{;ujVci-^ezNLEo)R}C(h@vGv?~OM@h;~vih`D11tKw68 zfx|kpRvPD(sx!G?oW#WDOw40Ke@~bYGk1t@)2^2rRV%}i$cb|u(eo_ Date: Fri, 9 May 2025 13:03:09 +0200 Subject: [PATCH 40/57] memeber search revize --- __pycache__/book_transactions.cpython-313.pyc | Bin 2239 -> 2239 bytes .../member_transactions.cpython-313.pyc | Bin 6870 -> 6474 bytes member_transactions.py | 12 ++---------- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index 55f14280f008609234c9d24d9b99f8ee44885275..9238de266e100e0e2a914ba8ce9fb06fe5e084e6 100644 GIT binary patch delta 23 dcmdllxL=U(GcPX}0}#|)ks{v4pRC9n#Bo7LbwT+R7X8Up%)g_ULm5q(K!z|dC@@5GLs$$9p-jOntUwMQLoll` zlPM!aT!A4SNlh>tvbZL@UlmVoYHm_$QL$cDaem(91o5!RGOX<^EI`eZ7qQM`jGyet zX2WqoOml_#6%OOcEo_!dQH-1Svjs5nsW22XDFAUEQyPON+vJZNQcRjGlk+&mCUJn(b)sq``7Xj?GD9@+U4I)*`Uwf!v0S zx|^H1wHO(VCa>d3lQaM-Emj5+KhTWbti!vNNq`?5ib?tT*>JCjO=c1}$Y?eBh(H;e z5G0VT1oSk_BkYD3V250&dnL@YS@(mojY2b4u*y>v$nt*C*y-21(s^F8O>^ZLwY zE%(`GD**T#+c+^WYG2`=K*(yV@G2A@V08-QxnuLOxtQ9p!Ff@o>9RTP&s6H97fqXf zK!|RWE{lo6BnKiSS|nW#sumi40EnO;c<4@r#Cw!;bfYS220f=9!yeR4*PGMvOux?f z(L?&2$xmRyRIO2F5l*`Iq5+Vi09>~m96*FV^zAYgg4PxQ;>3}Aa~Bbz_A5C{9I{6U z1{1`82@57B58C;MNdZR4zfD4I09bL$N77jji|EHskt9U?$B91RVfP%$gDwc|4!)SKJ@1anbDWVh}V@PIN1sk5%A9H@e+?)K$ z0fx&nwj5WXGnMc8;@PG=%cp}Xuby8h%{kpU!K1TYLu*wpsUr*5)b^a<)>)4swW(6Z zyfCER$O&GZ^%+u&+N2IHbf^tj+GKs7EI@F6VS!D^3Dxh|(;s=9Z+FK|b99mgfCZ15 z8iNA)s+0~2NV0U4jPp_HmQ+0~5BJJS(m#|;#65(9QJ~n+2WKIAYjMC@ZQJ67Fo5jV zK4%@iOP<2Zx8M8I?pvP`R6%bdaTDdp5;VxYgcp#{J_2ppl6@4?^+sShD(A~7wPb^> zK%KmgQo|eeDm2O8ElXEt>U6Sd%TYEJoOMoj=1F=cbSIRq%1}C4v5gv?#aciJL1@xu z3*SK4i@F@&;ed9rC;%&Z4DU_6?Bb&A{QSh+#Gdn1Yo6uiJLWp}Gd?YDJDHAUnsvsz fMY1#D>2SJTC&gc>_AAgzogAbDShM3sH7?grEQ0hk diff --git a/member_transactions.py b/member_transactions.py index 218f4c8..f533ab1 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -40,15 +40,7 @@ def search_member(search_term): or search_term in str(m['address']).lower() or str(search_term) == str(m['member_id']) ] - if result: - print("\n Arama Sonuçları: ") - for m in result: - print(f"ID: {m['member_id']}") - print(f"İSİM: {m['name']}") - print(f"Telefon: {m['phone']}") - print(f"adres: {m['address']}") - else: - print("Eşleşen üye bulunamadı.") + return result def get_all_members(): return io.read_json('data/members.json') @@ -104,7 +96,7 @@ def return_book(member_id, book_barcode): book = next((b for b in books if b['barcode'] == book_barcode), None) if book: book['status'] = "available" - io.write_json("data/books.json", books) + io.write_json("data/books.json", book) tracking.remove(loan_record) io.write_json("data/tracking.json", tracking) From 4ab583d032377e2612308c950152fb2185160b68 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Fri, 9 May 2025 13:08:07 +0200 Subject: [PATCH 41/57] members --- __pycache__/book_transactions.cpython-313.pyc | Bin 2239 -> 2232 bytes .../member_transactions.cpython-313.pyc | Bin 6474 -> 6467 bytes .../member_handlers.cpython-313.pyc | Bin 4285 -> 4285 bytes core/member_handlers.py | 2 +- member_transactions.py | 2 -- 5 files changed, 1 insertion(+), 3 deletions(-) diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index 9238de266e100e0e2a914ba8ce9fb06fe5e084e6..801ebaed5da7a6ad2522de4aed6aea71ee27f115 100644 GIT binary patch delta 47 zcmdllxI>WZGcPX}0}!mcx{>PuqnKTaRZN&?h(bV7epYHscxr04g06ze=I4wz*Z^1} B4;=si delta 54 zcmdlXxL=U#GcPX}0}#|)*~oQ(QPwrtDkiizwWv78BOt~lKe;qFHLs*N#yzvdqcmyr I1I8O{0Nf4}2LJ#7 diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index e24bd03bd3a3df77739d77ad67bb7e623ca774ea..e80c50b5a9aaafca55127d6ad6f47eaa82b00953 100644 GIT binary patch delta 47 zcmX?Qbl8aNGcPX}0}$9h+{m?tNz5U|DkjV`L?NIkKPxpRJT*02L07?K^JS)TF#uP3 B4xIo1 delta 54 zcmX?Xbjpb9GcPX}0}$M~zmaPVldOBPRZM7cYEf~FM?j2AesXDUYF Date: Fri, 9 May 2025 13:11:49 +0200 Subject: [PATCH 42/57] lend_book --- .../member_transactions.cpython-313.pyc | Bin 6467 -> 6277 bytes .../member_handlers.cpython-313.pyc | Bin 4285 -> 4276 bytes core/member_handlers.py | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index e80c50b5a9aaafca55127d6ad6f47eaa82b00953..bd3b6b36a3be0962bd7d084f855b4a41e67406b4 100644 GIT binary patch delta 326 zcmX?X)N084nU|M~0SI^>$!5rIV0_9B^L8=%S ztRff~QkWPRd>t4VLYV@Xd|enAxET}}@|g3OLYY+O6gseGPulbaEF_(qxv$p^qk@ah6|z>+Fh16y2x$xot1%;YohrFW(HR74-7y< zK5#Mc2sQZr{KO696mtV@oNe!@!E#WJ&2e%hXEUSr=DVC)jEn}8Ik?jp^)}~oZ((M% z*sQ|;nUT?GvxJ~23uDA&Kha-|ahpBGtQZ+XHn)f`WR&Az6#68>$f)~?jfv6j6Ndt$ Q_GcGH5yl9{B6Xk*0BJf?cK`qY delta 371 zcmZoQJZ!}KnU|M~0SN3L%4W1~KD{PA)&H@w<^kxMqHDv@VX0VE2U`SzNVDN1K=?q}8?rW6om=WmaJ* zW>Ns+Jf<`TO*X$G7NDjg4iLc!BDf}RVb5S(FjcH-3+*n; z8(ri!`p(I~$u-gZ12Y3F_Xh?xKDG~h3_L;&zCS_I1KUq)n>R#s4yUu5F Zk=tfg;d>w{Nj?t$sbrx i^O{}eGr!Jfdy&ufGN1kC6Kw05ne!9#Hdk?3u>k-p#2bnL diff --git a/core/member_handlers.py b/core/member_handlers.py index dd28ddd..ea1e92b 100644 --- a/core/member_handlers.py +++ b/core/member_handlers.py @@ -48,7 +48,7 @@ def handle_loan_book(): member_id = input("Üye ID: ").strip() barcode = input("Kitap Barkodu: ").strip() - success = mt.loan_book(member_id, barcode) + success = mt.lend_book(member_id, barcode) if success: print("\n✅ Kitap başarıyla ödünç verildi.") else: From d9ac0907248741f68326f28af3bea13ec1ecb6c6 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Fri, 9 May 2025 13:12:45 +0200 Subject: [PATCH 43/57] 1 --- core/__pycache__/menu.cpython-313.pyc | Bin 2193 -> 2200 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1015 -> 1022 bytes members.json | 8 -------- 3 files changed, 8 deletions(-) delete mode 100644 members.json diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc index a733e111fcb2e16750a89bc13d2fc4b390bbf1c1..6ecbbc99dac70a30c16c0c918caa89eb2001561c 100644 GIT binary patch delta 54 zcmbOzI75)@GcPX}0}%Xtu#syzqpWSRRZM7cYEf~FM?j2AesXDUYFHq)$ delta 47 zcmbOsI8l)6GcPX}0}$N0vyp2$qnKHWRZN&?h(bV7epYHscxr04g06ze=6#H}*Z@kG B4yphE diff --git a/core/__pycache__/utils.cpython-313.pyc b/core/__pycache__/utils.cpython-313.pyc index b5b017059a99a9dadd6e78d7f533c43ebcdea491..0ea5c95e79da794a5ae42c539f0f45a5c604e97d 100644 GIT binary patch delta 54 zcmey){*RseGcPX}0}z~$mzv1^L)I?YDkiizwWv78BOt~lKe;qFHLs*N#yzvdqcmx= IB;!3M0OQ0GZvX%Q delta 47 zcmeyz{+*rsGcPX}0}vEEmYm4_L(DwIDkjV`L?NIkKPxpRJT*02L07?KvjXEiCIDqj B4!r;X diff --git a/members.json b/members.json deleted file mode 100644 index 3efd910..0000000 --- a/members.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "member_id": 1, - "name": "mustafa haybat", - "phone": "123", - "address": "321" - } -] \ No newline at end of file From 58ef7f9ca5c4fb029d3872db885195332d2bb788 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Fri, 9 May 2025 15:28:31 +0200 Subject: [PATCH 44/57] 1 --- __pycache__/book_transactions.cpython-313.pyc | Bin 2232 -> 2239 bytes .../member_transactions.cpython-313.pyc | Bin 6277 -> 6556 bytes __pycache__/tracking.cpython-313.pyc | Bin 1528 -> 1535 bytes .../__pycache__/book_handlers.cpython-313.pyc | Bin 2510 -> 2517 bytes core/__pycache__/data_io.cpython-313.pyc | Bin 3000 -> 3007 bytes .../member_handlers.cpython-313.pyc | Bin 4276 -> 4283 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1748 -> 1755 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1159 -> 1166 bytes member_transactions.py | 74 ++++++++++++------ 9 files changed, 50 insertions(+), 24 deletions(-) diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index 801ebaed5da7a6ad2522de4aed6aea71ee27f115..9238de266e100e0e2a914ba8ce9fb06fe5e084e6 100644 GIT binary patch delta 54 zcmdlXxL=U#GcPX}0}#|)*~oQ(QPwrtDkiizwWv78BOt~lKe;qFHLs*N#yzvdqcmyr I1I8O{0Nf4}2LJ#7 delta 47 zcmdllxI>WZGcPX}0}!mcx{>PuqnKTaRZN&?h(bV7epYHscxr04g06ze=I4wz*Z^1} B4;=si diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index bd3b6b36a3be0962bd7d084f855b4a41e67406b4..ae98d990b9680b067f8a88ac9ceda095eebd8a58 100644 GIT binary patch delta 2228 zcmb7FYfKbZ6ux(NXPMoZo!QxC*#{`#3b;iCif91cbSsZ7$i_NMsxH+6LZR}I8L(+% zWtFr=Ys%x+w6&zg)L8x18vSAIpPK%`#57Bmw1$W2k0wojv@u|eBu(0L_W{^8X?m0W z_S|#NH*?Ru=R5Ou>13I(Y_XUTjBo$g(CL!K1sCoZFW6CvWZYm<&9cseR8H0d^0EQY zA~S%3Yy=eLG(fA&0!r84Dba1HYpZNlw02c%4(@BN?rR(DY407-n(Mj-f`hH(o^BU5 z-7x8o>#&Es$!x|N`HZ>3c| zFfW7Oay5V-dr=O$fD~j$K?g#8l8k6T7z4ydlde2zR|XL}fi5sPsL_cK2fSDDPJIVf zGa>LAp3`^r4iKxkqNo(+S{A^QUr_`_g}`m+SAnt2v!^cGrw)F;@dvT^wsS=@K)~>Z z9HN>lnR2j;$#rwK5ct{|69O?V5H$qUeDc8T#-EZWWUZB?`AX!vc*_yN^B~3tO>od3c>>)K5B5TQ8mW}PJ zcYhRIPu+dqf86~6gpR_78#546u#D-0WL;&-3vW^1lhLe_m{=MKJ~Sf9_JMb-lN3$m&e*(Dd!o{oD2ZBk*jSXFx!{0z zlfw)4jIon3I}s(1!G;(M2{>KZK+VXBRFAk$hZYRRcN@<%MuD%)8VX@2jG4S5<(VHL z%oP5_iJ+dc2+KXgl-i6Xj3=+>lCp8SgWw8{vNr zcdLHVlwNhX3uYQ@JXyhP|3q-4|FV86Fm>!wD3()pQ@d4h4?{rIa-@&`x zvHI}rk=AHiU+l>7nfl|S(phODxT4Vt9L^5#_=+3gj@}gD$xM3XQ0>1TUkJjV60Ya} z2sbHF=*?^G+ox04QdM`+%%IPZ*By4hMkl!dNuk#LQ>ZCvvJf@w$itJSJgip1M6D#> zIC4Rbi;kX(CeYYA5z^(jFlq9tmqI;-1`0GoUs_U<q=A3RoRb61Hc@*gPS*2g)M2C{8b%+973yO19`nj27clGog9qexR ztMmYF7{||P?`>~;d++TFa9f~ID76;C+rXDq%aj*I5mYW$P#IbUoLFJrs>z(w zZe|h8G9)KvY8Iz{Fzn0X%a>)J*f-shrA_N-0F7D5mSrztBTMAlo>Pj$4?D^I_qpdh z=RD6n&+nXmUiWdWxF`r_1WowK{f=9l5S_Sh!oNPC%SW0?(Sw>529#G=P>W&!6%-?= zsBoatgHLO8d0YB}z58}_dG=@{Lj%3t0|O^Km7aPstJ{pZM^62_I_x52Y#Cl8U$OVt zH4sjIwBPUqvz1_$5I^?|_7lmJ&sM{G1*tL>!23?qC*(KAwB-%xYrtOQLD!Iq9H`ZT z(1=YzEcAEjf~^RhMb}slY8MgW!Rr{_pdZ9q0Ss$}Af(RxW}pU)s1xMnuPBD%V(4M_ z>Nt=t;h8}b$#ZZzD#hH-ihwh^~kd1s(lg8`hJ*adTIwrL#YneB z;UrY28)nHZN01C!wvs;_X5Of>D(b?jp);4vI0`MQQ88Ds!<@==%7haF*f}wk>t$iB zY?>aV@Ty+1(9{poPt3GV>V|bBCb+5vx{o4KM3qydtZh||BC30pC`~(ENUlROcM zXjyi4!pm!AfxTW;mL7!qA%}JWAr&i_F0AN+E4@$&6=%yEJcA3bjjk!#OTMjOnxFtBRE7ZNR`}-A$pnyBKM_y+(f>Y>YV{WqxIHoROn0% zaz>h$IITguL`^G5z@*V{&_d+6wSaG=W)qcWGH$IKq>M(_LZx5E&>Zi)?waPk3En%$ z330I`#g(Qxao!@1@4B)p?kZ1ODq<~jyp*yYzR{Aj9*!RwO!CKK&Chu$Ga;1X8t4Sc zHh%uf`FLSXQmT!$zOdRzjct360p%2=bBof>vb4Ku+Pxv+-te_K>26BPrGN1ThauLs zU`4EOdH09AuePNa&m3d8-2PE}+`eX#OEI-Ca*Jclqs|XIUiEu#t0|^pp2VE8ynt{U zE=(8tuZI@&m@oeaVYWi^6T$w24IQK#kZCHe#|le+w^wiml~s&D7ukzT^*WU$&5kcI zNB(rk7fo53%qpYsS=*u-fHk4cuyP18Y>6G(Td=UU9^`2Dykr7VV(Z{pJOa|7TXhMP zEz{Perx!p7ug$n46y^|I0U6@7m58p4CG9_wvOxF%Q4#)TGe-erJ4JA5;o>rgu z0^h)QH!ejXFLbH68s9TjlgZp5dCu&U0y^!#K-wm9ATPhCk1kIGXK`$g3cy4jJ$%<60Rx zBUCPH`<1SqgO{ zg}QO7Imzz;rj2~sRW{0u_Kb;hoOxWhBE<9jlQ}7_>IGx@KS<}rylJsGAr?=I-h}8) zioR*Fikx=(^LhJdAns5poZXnx*@H9Ja==Qyady1zq+db*Uo=`FjsBf1A8v(O2dL1! z%}mi`ux7Z;CrA3vLiCIBt1ig&yb6pa=Gjce{&vOvDl1r Ha5nV6?WwCI diff --git a/__pycache__/tracking.cpython-313.pyc b/__pycache__/tracking.cpython-313.pyc index df267d13419f93f977c8b6b1bab23907cd31fee8..26b1fde62089de729955bed8c47908630494d449 100644 GIT binary patch delta 52 zcmeyt{hyobGcPX}0}%XtFp=w;tWC02OlWaxQE`k%K#WU%a%paAUP*C`duEA8Y0}1T GOsoLw`x7hx delta 45 zcmey*{ezq9GcPX}0}y!JoXB-e%rwO+Cd@NLA)qKfD>WuOH8op7SHWcCUnW)nNDmHI diff --git a/core/__pycache__/book_handlers.cpython-313.pyc b/core/__pycache__/book_handlers.cpython-313.pyc index 4048d799a308b0ce4527d9e0811d325273b70127..e6444ed2aea0d789dc08dc88dfb5efe50911695f 100644 GIT binary patch delta 53 zcmX>nd{vn1GcPX}0}%Xtu#syWqpVx9RZM7cYEf~FM?j2AesXDUYFI;}Hgl@$O{ C)D7GK diff --git a/core/__pycache__/time_utils.cpython-313.pyc b/core/__pycache__/time_utils.cpython-313.pyc index 36914edc2a0edfc572581da21eb244ef29191fee..a0cfd3af805fa18a34b2bd8611f55ba37143de70 100644 GIT binary patch delta 53 zcmZqY?BnG6%*)Hg00g2ZCvyFfbxyX52`x@7Dvt38h;hkJF3nBND=Cg~&n)pMP1-EO Hn9U3Ttp*VY delta 46 zcmeC Date: Fri, 9 May 2025 17:47:00 +0200 Subject: [PATCH 45/57] yordu --- .../member_transactions.cpython-313.pyc | Bin 6556 -> 6554 bytes data/books.json | 44 +++++++++--------- member_transactions.py | 6 ++- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index ae98d990b9680b067f8a88ac9ceda095eebd8a58..ddfc6efefcdd1f20f6611136bf0bf9c09196a5bf 100644 GIT binary patch delta 99 zcmbPZJj*H>2I=qkINTqHGL20#^jmX1ZP$ zNV|}cbD2B0!R6j&E~y0qMD41#hZ)8JQx|1Ht!L?z{sb~DDXLkQIS!gNDXK% E0N=nIc>n+a diff --git a/data/books.json b/data/books.json index 0f10eda..000d328 100644 --- a/data/books.json +++ b/data/books.json @@ -1,23 +1,23 @@ [ - { - "barcode": 9786053114772, - "title": "Süt Lekesi", - "publisher": "Destek Yayınları", - "author": "Esra Ezmeci", - "status": "available" - }, - { - "barcode": 9786057906465, - "title": "Yanlış Hayat Doğru Yaşanmaz", - "publisher": "Olimpos Yayınları", - "author": "Ethem Emin Nemutlu", - "status": "available" - }, - { - "barcode": 9786051856322, - "title": "Hazan", - "publisher": "Everest Yayınları", - "author": "Ayşe Kulin", - "status": "available" - } -] + { + "barcode": 9786053114772, + "title": "Süt Lekesi", + "publisher": "Destek Yayınları", + "author": "Esra Ezmeci", + "status": "available" + }, + { + "barcode": 9786057906465, + "title": "Yanlış Hayat Doğru Yaşanmaz", + "publisher": "Olimpos Yayınları", + "author": "Ethem Emin Nemutlu", + "status": "available" + }, + { + "barcode": 9786051856322, + "title": "Hazan", + "publisher": "Everest Yayınları", + "author": "Ayşe Kulin", + "status": "available" + } +] \ No newline at end of file diff --git a/member_transactions.py b/member_transactions.py index 5fba72f..c844959 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -57,9 +57,11 @@ def lend_book(member_id, book_barcode): # Kitapları oku books = io.read_json("data/books.json") - + # Kitap mevcut ve 'available' durumda mı kontrolü - book = next((b for b in books if b['barcode'] == str(book_barcode) and b['status'] == 'available'), None) + #book = next((b for b in books if b['barcode'] == book_barcode and b['status'] == 'available'), None) + book = next((b for b in books if b['barcode'] == int(book_barcode) and b['status'] == 'available'), None) + if not book: print("Kitap mevcut değil ya da ödünç verilmiş.") return False From b28cef3da5d28f8a227e190571ffcc66104bd9c9 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Fri, 9 May 2025 17:48:56 +0200 Subject: [PATCH 46/57] =?UTF-8?q?e=C4=9Flendirdi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- member_transactions.py | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/member_transactions.py b/member_transactions.py index c844959..ee8d1d6 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -3,8 +3,6 @@ import datetime import core.time_utils as tu import core.data_io as io -import tracking as tr - def add_member(name, phone, address): members = io.read_json('data/members.json') @@ -46,35 +44,27 @@ def get_all_members(): def member_exists(member_id): members = io.read_json('data/members.json') - return any(m['member_id'] == int(member_id) for m in members) # member_id'yi int() ile dönüştür - + return any(m['member_id'] == int(member_id) for m in members) def lend_book(member_id, book_barcode): - # Üye var mı kontrolü if not member_exists(member_id): print("Üye Bulunamadı.") return False - # Kitapları oku books = io.read_json("data/books.json") - # Kitap mevcut ve 'available' durumda mı kontrolü - #book = next((b for b in books if b['barcode'] == book_barcode and b['status'] == 'available'), None) book = next((b for b in books if b['barcode'] == int(book_barcode) and b['status'] == 'available'), None) if not book: print("Kitap mevcut değil ya da ödünç verilmiş.") return False - # Ödünç verme işlemi tracking = io.read_json("data/tracking.json") - # Yeni loan_id oluştur loan_id = f"L{len(tracking) + 1:03d}" registration_date = datetime.datetime.now() return_date = tu.calculate_due_date(registration_date).strftime("%Y-%m-%d") # Teslim tarihi hesaplama - # Ödünç verme kaydını oluştur loan_record = { 'loan_id': loan_id, 'member_id': int(member_id), @@ -83,49 +73,38 @@ def lend_book(member_id, book_barcode): 'return_date': return_date } - # Takip dosyasına ödünç verme kaydını ekle tracking.append(loan_record) io.write_json("data/tracking.json", tracking) - # Kitap durumunu 'borrowed' olarak güncelle book["status"] = "borrowed" io.write_json("data/books.json", books) - # Başarı mesajı print(f"{book['title']} adlı kitap {loan_record['registration_date']} tarihinde ödünç verildi. " f"Teslim tarihi: {return_date}") return True - def return_book(member_id, book_barcode): - # Takip ve kitap dosyalarını oku tracking = io.read_json("data/tracking.json") books = io.read_json("data/books.json") - # Ödünç alınan kitap kaydını bul loan_record = next( (l for l in tracking if int(l['member_id']) == int(member_id) and int(l['barcode']) == int(book_barcode)), None ) - # Eğer ödünç alınmamışsa if not loan_record: print("Bu kitap, bu üye tarafından ödünç alınmamış.") return False - # Kitap bilgilerini bul book = next((b for b in books if b['barcode'] == int(book_barcode)), None) - # Kitap durumunu 'available' olarak güncelle if book: book['status'] = "available" io.write_json("data/books.json", books) - # Takip kaydını sil tracking.remove(loan_record) io.write_json("data/tracking.json", tracking) - # İade mesajı now_str = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") print(f"{book['title']} adlı kitap {loan_record['registration_date']} tarihinde ödünç alındı. " f"{now_str} itibariyle iade alındı ve kitap 'available' durumuna getirildi.") From 52170df82ac9f7869186f24196bf844a91d2be19 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Fri, 9 May 2025 19:35:33 +0200 Subject: [PATCH 47/57] Update books.json --- data/books.json | 51 ++++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/data/books.json b/data/books.json index 0f10eda..21416f2 100644 --- a/data/books.json +++ b/data/books.json @@ -1,23 +1,30 @@ [ - { - "barcode": 9786053114772, - "title": "Süt Lekesi", - "publisher": "Destek Yayınları", - "author": "Esra Ezmeci", - "status": "available" - }, - { - "barcode": 9786057906465, - "title": "Yanlış Hayat Doğru Yaşanmaz", - "publisher": "Olimpos Yayınları", - "author": "Ethem Emin Nemutlu", - "status": "available" - }, - { - "barcode": 9786051856322, - "title": "Hazan", - "publisher": "Everest Yayınları", - "author": "Ayşe Kulin", - "status": "available" - } -] + { + "barcode": 9786053114772, + "title": "Süt Lekesi", + "publisher": "Destek Yayınları", + "author": "Esra Ezmeci", + "status": "available" + }, + { + "barcode": 9786057906465, + "title": "Yanlış Hayat Doğru Yaşanmaz", + "publisher": "Olimpos Yayınları", + "author": "Ethem Emin Nemutlu", + "status": "available" + }, + { + "barcode": 9786051856322, + "title": "Hazan", + "publisher": "Everest Yayınları", + "author": "Ayşe Kulin", + "status": "available" + }, + { + "barcode": "9786051856232", + "title": "Sefiller", + "publisher": "Timas", + "author": "Dostoyevski", + "status": "available" + } +] \ No newline at end of file From 7a346bac0cdf92c792bec94ed21ee6c7bc692b51 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Fri, 9 May 2025 19:48:00 +0200 Subject: [PATCH 48/57] last_update --- __pycache__/book_transactions.cpython-313.pyc | Bin 2239 -> 2232 bytes .../member_transactions.cpython-313.pyc | Bin 6554 -> 6505 bytes __pycache__/tracking.cpython-313.pyc | Bin 1535 -> 1528 bytes .../__pycache__/book_handlers.cpython-313.pyc | Bin 2517 -> 2510 bytes core/__pycache__/data_io.cpython-313.pyc | Bin 3007 -> 3000 bytes .../member_handlers.cpython-313.pyc | Bin 4283 -> 4276 bytes core/__pycache__/menu.cpython-313.pyc | Bin 2200 -> 2193 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1755 -> 1748 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1166 -> 1159 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1022 -> 1015 bytes data/books.json | 9 +++++++- data/tracking.json | 21 +++++++++--------- 12 files changed, 19 insertions(+), 11 deletions(-) diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc index 9238de266e100e0e2a914ba8ce9fb06fe5e084e6..801ebaed5da7a6ad2522de4aed6aea71ee27f115 100644 GIT binary patch delta 47 zcmdllxI>WZGcPX}0}!mcx{>PuqnKTaRZN&?h(bV7epYHscxr04g06ze=I4wz*Z^1} B4;=si delta 54 zcmdlXxL=U#GcPX}0}#|)*~oQ(QPwrtDkiizwWv78BOt~lKe;qFHLs*N#yzvdqcmyr I1I8O{0Nf4}2LJ#7 diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index ddfc6efefcdd1f20f6611136bf0bf9c09196a5bf..2adeb723f6a9e87ef5f2184fa8256a4231d38e16 100644 GIT binary patch delta 512 zcmX}o&1=(e7{Kx0)1+ydmtWGlrb(T)8d>SeUaC`MOxdBO?Or;ex+xApv>+2-+JdK{ znU{4vSW7PI$>Xk)i~oSIi`bGt3vHob5CjiuK^$KE&4bV3b9xTn=XrDP>sdS!MGlck zTsnELj+iZqcgdWk}jA&NyG5f@pa^zOy1M_If(zqy{j8oN?? zv{l;ND3$KVrebqu&$9qNOQjxrKsEQgpFpv0FdqS8R-9!3Car1zWq=v;0k;KHR+sxm z!A0u>{sZSzq^LRv2>mutpI2XL9bRwqdY=_r_>{w*?n+~>fEz3Im6kSX3rQp6@{)Nd zM}w{uXl&QFTjR5~lrnNdIbco)vcQ;60!fg~MfJEg3`LD}P2DNVwf(qDXhS36UqYuER1pXC~2U2G}w{gA`X3~6C^ zZD;M}vO~xIhfVCW4xMtb(!tR-j&`u##=4EohiaZ2^Ik2OlD44VCTZkXs5(#hP60p< g`Fn`(A!&fd2T1!#n`JE`u{y}3C5V7rnIM~g0j_$LCjbBd delta 512 zcmXAlO=uHA7>4J|{y4kY|2Dgu(3;jti$-mu;z6zUkg&nFp|TWv2vu4u{%d!Wi}bMd zpfQ&a=A~fTf%TucEK1$8Sl=`bjGqF);{d8&B z-|+lWVX2h6w_drkakuQ3oEzmrWsQ7@odqEjnENqEkq6u-u)_=dM}PyNjd_40VOlr` zkR_|)O_&bfi$54RAHG)pf_#z+`g4HL?*M%zZ#2`~<&mt`7itU5TzB#nI2 z(t}7d>RYv~=EzK>W`n{Gk931rx&xS8)-$YuIGK#ucA5s}SdgpQ+r=)+KVE#e*fb`d zFSpnXy@M0OxB6`cZiUAZhX5+!idg{p>cHeD#h-!6OKWtMR)?$}-fR>iyxGQ5pJRsj zV17?RlGVj>Q^~b(zO4?^o}{%j=V?CDoOi=fycp#6c!Z^P@?e#%t~^n?Sggx6xoJ+l zNVM=YwfpbM(W9zG&e)g0AjB@>i}d}^v9d?L*t3&sbfG_k{8@?}1^_xp=%9E9sXa8( aL&*+G{Nl-6GNp<~LF-?EanQU;TK)%hUyBI< diff --git a/__pycache__/tracking.cpython-313.pyc b/__pycache__/tracking.cpython-313.pyc index 26b1fde62089de729955bed8c47908630494d449..df267d13419f93f977c8b6b1bab23907cd31fee8 100644 GIT binary patch delta 45 zcmey*{ezq9GcPX}0}y!JoXB-e%rwO+Cd@NLA)qKfD>WuOH8op7SHWcCUnW)nNDmHI delta 52 zcmeyt{hyobGcPX}0}%XtFp=w;tWC02OlWaxQE`k%K#WU%a%paAUP*C`duEA8Y0}1T GOsoLw`x7hx diff --git a/core/__pycache__/book_handlers.cpython-313.pyc b/core/__pycache__/book_handlers.cpython-313.pyc index e6444ed2aea0d789dc08dc88dfb5efe50911695f..4048d799a308b0ce4527d9e0811d325273b70127 100644 GIT binary patch delta 46 zcmcaAd`_6_GcPX}0}uq?-N?0$QOrKYDkjV`L?NIkKPxpRJT*02L07?K@l{3+07HNc A@c;k- delta 53 zcmX>nd{vn1GcPX}0}%Xtu#syWqpVx9RZM7cYEf~FM?j2AesXDUYFHq)$ diff --git a/core/__pycache__/routing.cpython-313.pyc b/core/__pycache__/routing.cpython-313.pyc index efffb7780226dcc77a6e9ace1063d85350f2b2a5..9b51f3cbf10d2ef0d2f176a9fb0a2385c3a2cbe0 100644 GIT binary patch delta 48 zcmcc3dxe+#GcPX}0}zz_m)yv$$0%l*VignS8KMwSl%JIv6P}uyt)Q!5vN?>gl@$O{ C)D7GK delta 55 zcmcb@dz+X0GcPX}0}%YJmEOp$$0+NNY!wq)oLW>I;}H Date: Fri, 9 May 2025 19:56:57 +0200 Subject: [PATCH 49/57] update Unnecessary modul imports deleted. --- book_transactions.py | 3 +-- core/member_handlers.py | 1 - core/utils.py | 1 - member_transactions.py | 2 -- tracking.py | 2 -- 5 files changed, 1 insertion(+), 8 deletions(-) diff --git a/book_transactions.py b/book_transactions.py index 7b71da9..58badb7 100644 --- a/book_transactions.py +++ b/book_transactions.py @@ -1,6 +1,5 @@ -import os -import json import core.data_io as di + #kitaplarin kayitli oldugu dosya books_file = 'data/books.json' diff --git a/core/member_handlers.py b/core/member_handlers.py index ea1e92b..9d0d12f 100644 --- a/core/member_handlers.py +++ b/core/member_handlers.py @@ -1,7 +1,6 @@ import member_transactions as mt from core.menu import menu_header, print_details from core.utils import show_message -import core.time_utils as tu import member_transactions as mt from tracking import track_loan diff --git a/core/utils.py b/core/utils.py index 261c594..afd6f5b 100644 --- a/core/utils.py +++ b/core/utils.py @@ -1,5 +1,4 @@ import os -import json clear_screen = lambda: os.system('cls' if os.name == 'nt' else 'clear') diff --git a/member_transactions.py b/member_transactions.py index ee8d1d6..d5f6902 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -1,5 +1,3 @@ -import os -import json import datetime import core.time_utils as tu import core.data_io as io diff --git a/tracking.py b/tracking.py index 1930bb2..596f041 100644 --- a/tracking.py +++ b/tracking.py @@ -1,7 +1,5 @@ -import json import core.data_io as do - # JSON dosyasını yükleme işlemi def load_tracking_data(): return do.read_json('data/tracking.json') From 4342b04752522d973b114d7d7fb90ff45f0b5647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ali=20B=C3=BCy=C3=BCkg=C3=BCral?= Date: Sat, 10 May 2025 12:54:47 +0200 Subject: [PATCH 50/57] v --- data/members.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/members.json b/data/members.json index b9e79bb..ea833a1 100644 --- a/data/members.json +++ b/data/members.json @@ -10,5 +10,11 @@ "name": "Naime Ucan", "phone": "545-345-6786", "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000" + }, + { + "member_id": 29, + "name": "ali", + "phone": "5557", + "address": "kjkhn" } ] \ No newline at end of file From 01ef83fa4cc77844dc7fccf9ce7caed91a7c6300 Mon Sep 17 00:00:00 2001 From: Mustafa HAYBAT Date: Sat, 10 May 2025 13:35:03 +0200 Subject: [PATCH 51/57] 1 --- .../member_transactions.cpython-313.pyc | Bin 6554 -> 6513 bytes data/members.json | 6 ------ member_transactions.py | 4 ++-- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/__pycache__/member_transactions.cpython-313.pyc b/__pycache__/member_transactions.cpython-313.pyc index ddfc6efefcdd1f20f6611136bf0bf9c09196a5bf..8009652d36469cd2ad33cd1166db67c7f3daf270 100644 GIT binary patch delta 1146 zcmZ9LUuauZ9LMiT?oDrUbN?jv-rS^ra@RB_Sv6^_D_yJWgv7LIn_91xLBW4hv$>ek zlPL&A@8-k0qSo?L+=>r_y)^7a35cMu7YFr4QW9uMQ|L4dd=Y0s);G_|K!+F3=l*_Q ze&^hCzvp*0hVDNl9g3ohAynOMS&t0IYyk#4O*^5>WC;b6BXpY%LecCX zluVvb{`Rx0Hq=qk?FBT4=FtfoU5sH2W~ow1mzH@lI)=Gh!8_x?Ea{Rcms z+Kx?rm0VA5 zjz-{)^c@<7WjT(<;FjEj((to9qSB?Xhr&%EQuKqSjG`WxQ`E>f5gObZi;EXZ4VJzd z{6+lw*$d~3d7PrfX^Q9JQzdcoB@)u#DLqZjhFT)%*Zey|Xj=$1d9f-TtMh%ka%ame ztxc~^SN+Fp?g1;^5@a}1g5H+wSzBIRu67UB~9>P1bQ`=JHI{8@e%HX9rsFq3(nG9zXFz@P=*9=jf(J2*}B6Fx$DQjglnS_BO`i zAW0gifX6{peaL{Y8bS+|N!5-b|JC7VN!9<(fGGG3!C5G2F*oj``7;z_@QvnECTKWG zL0x&T7k-g_@Q3#5ct6$JE-N$&Q%q4zQ_K>?I@;Zdso(fTiWewMiaGeiH{e+y;mc%{ zej_*{?!uO@=cATa+vk_oCu;oCF7H0%?2kFDslQ!}+t;={Rp-;xazU;und|AAlG*C4 z2{|iuuS3}N_ph)kXRb<3-nAyKid8MLsn+?#0qedpdujIbsXA-?YxLure4S0UByC3u zZcD)(DYPwxY7!Lnls8H?6jK_uMbaYglopG43Vza$p&7WR8!>vtFug38Hb18Qf!j?- zy9Lvq!h;l181Z)psQrK15kh;6bB_`B7%Ov9RP1$b1MXhglRr3Z@_Z2axX+ A`2YX_ delta 1279 zcmZ9MO>7%Q6vyYSy_>bY-*NnrPbVgc+$0WeDJ5y@R@7EPlekb5QE>^)ms{e*>TH4p zw5kIVq&W~pqpEEHwTDVzi3?al+zOWpIG|L{AsBN2AtVk+#i^q9#v4;nsHOSsn>TM} zcmD4^|FwVffVQiuZh}95xb^IcxuFGMZln9z7)isZi@MW7BcYzO1F58)NHr}YwX}rP z({)HAEhEj(-@7b;t7tf~01kH18FV>CJXRxVk=<|xFG&Z1zlM+y$&g50>Mdnqc42Ck z+R@kT+~V}3#ae^|c>u@m5F!p?+;W9Xka{v=5|T61gdhB}FnF4f8G(>-m5>Q|gIp0q zWW1gb4}S$5a?C+Npgc5HAO)5bUx+v2#BN4B_=DuhmX+MhTr)pCTxk7j;BF*wHMSAk z%sjMZ40u;*2Igu8>ck1G^Yu8G4)tCpePq1EU{vM#wWb>|>Z{lbtmx!vbkFAYu1^1Pdo_zAYOcaCd8Et&Yu+}fEUD#@Vx}?YQBljd?TCCd~2ASo| z9Xt_eW83}HL#MZIHmW;-x=Ss!Z#cbqdlk{xOGGkN2DC z0GcVvm5DfMD?ZAQt=*<}FPoZqX;K5}&eJe4XB364>Y6e3dhSaJFi_nzc9 z#qlD0)8BLHRWxUC*nc7(qQ1KMU-2r6_CJ{=Qt$s+KEE+ilF#qR%C6|Bm-3@~3Q_zO zS>4hS+j4S8_o9Z1v26@rPnL|~Z@nc?DxcVsh^*`cpIUXUp1!PAWcRwdrm~iREZmcL zN<`eG``PipDT~*5#3~CptPkGg^aT4P&<#JYG*l%OrlHy@L%8ad!K!)z`l^xu&qLMS O2gdGe&<;ke{r(0QK_$Wf diff --git a/data/members.json b/data/members.json index b9e79bb..daabdf7 100644 --- a/data/members.json +++ b/data/members.json @@ -1,10 +1,4 @@ [ - { - "member_id": 27, - "name": "Naim Ucan", - "phone": "545-345-6786", - "address": "Baska Bir Sokak, Baska Bir Mahalle, Amsterdam, 35000" - }, { "member_id": 28, "name": "Naime Ucan", diff --git a/member_transactions.py b/member_transactions.py index ee8d1d6..6817f3d 100644 --- a/member_transactions.py +++ b/member_transactions.py @@ -20,8 +20,8 @@ def add_member(name, phone, address): print(f"{new_member['name']} adlı üye başarıyla eklendi. (ID: {new_member['member_id']})") def delete_member(member_id): - members = io.read_json('members.json') - member = next((m for m in members if m['member_id'] == member_id), None) + members = io.read_json('data/members.json') + member = next((m for m in members if m['member_id'] == int(member_id)), None) if member: members.remove(member) io.write_json('data/members.json', members) From 83b4848e53df2ab52ac92cbcb3df4ccc59f4d7b9 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Sat, 10 May 2025 18:45:09 +0200 Subject: [PATCH 52/57] . --- .gitignore | 10 ++++++++++ data/members.json | 7 ++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 06ca53a..e2994b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,12 @@ data/book.json data/kitap _backup.json +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# VS Code settings +.vscode/ + +# Mac system files +.DS_Store \ No newline at end of file diff --git a/data/members.json b/data/members.json index c77e5cd..daeb94e 100644 --- a/data/members.json +++ b/data/members.json @@ -7,8 +7,9 @@ }, { "member_id": 29, - "name": "ali", - "phone": "5557", - "address": "kjkhn" + "name": "Furkan", + "phone": "3945886", + "address": "Almere" +-- } ] \ No newline at end of file From de23ecd1273c4e437c8be050eb8287a693de33f5 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Sat, 10 May 2025 18:48:59 +0200 Subject: [PATCH 53/57] Add .gitignore to ignore __pycache__ and compiled files --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e2994b7..2924eed 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ data/kitap _backup.json # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] -*$py.class +*.pyo # VS Code settings .vscode/ From 2c03e024badf5d35122175883f30e08d0e0da300 Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Sat, 10 May 2025 18:50:55 +0200 Subject: [PATCH 54/57] Add .gitignore to ignore __pycache__ and compiled files --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2924eed..e20658a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ data/book.json data/kitap _backup.json # Byte-compiled / optimized / DLL files __pycache__/ +core/__pycache__/ *.py[cod] *.pyo @@ -9,4 +10,5 @@ __pycache__/ .vscode/ # Mac system files -.DS_Store \ No newline at end of file +.DS_Store +*.pyc From 1f58df0264412c1eeab248f247660a60fd52e48e Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Sat, 10 May 2025 18:52:25 +0200 Subject: [PATCH 55/57] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e20658a..8225675 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ __pycache__/ core/__pycache__/ *.py[cod] *.pyo +*.pyc # VS Code settings .vscode/ From ace15e7e72614d841b2bace124c6ddd40a95c41e Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Sat, 10 May 2025 18:55:33 +0200 Subject: [PATCH 56/57] Update .gitignore --- .gitignore | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 8225675..bfdb231 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,15 @@ data/book.json data/kitap _backup.json -# Byte-compiled / optimized / DLL files -__pycache__/ -core/__pycache__/ + +# Tüm pyc, pyo, pyd dosyalarını ignore et *.py[cod] -*.pyo -*.pyc + +# __pycache__ klasörlerini ignore et (her seviyede) +__pycache__/ +**/__pycache__/ # VS Code settings .vscode/ # Mac system files .DS_Store -*.pyc From 0259c337c93327f19cff71426afb0ea7d0a4f08b Mon Sep 17 00:00:00 2001 From: Kursad <122346253+KursaDSc@users.noreply.github.com> Date: Sat, 10 May 2025 18:57:44 +0200 Subject: [PATCH 57/57] =?UTF-8?q?Temizlik:=20.pyc=20ve=20=5F=5Fpycache=5F?= =?UTF-8?q?=5F=20dosyalar=C4=B1=20ignore=20edildi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/book_transactions.cpython-313.pyc | Bin 2232 -> 0 bytes __pycache__/main.cpython-313.pyc | Bin 1742 -> 0 bytes __pycache__/member_transactions.cpython-313.pyc | Bin 6513 -> 0 bytes __pycache__/time_utils.cpython-313.pyc | Bin 1301 -> 0 bytes __pycache__/tracking.cpython-313.pyc | Bin 1528 -> 0 bytes core/__pycache__/book_handlers.cpython-313.pyc | Bin 2510 -> 0 bytes core/__pycache__/data_io.cpython-313.pyc | Bin 3000 -> 0 bytes core/__pycache__/member_handlers.cpython-313.pyc | Bin 4276 -> 0 bytes core/__pycache__/menu.cpython-313.pyc | Bin 2193 -> 0 bytes core/__pycache__/routing.cpython-313.pyc | Bin 1748 -> 0 bytes core/__pycache__/time_utils.cpython-313.pyc | Bin 1159 -> 0 bytes core/__pycache__/utils.cpython-313.pyc | Bin 1015 -> 0 bytes 12 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 __pycache__/book_transactions.cpython-313.pyc delete mode 100644 __pycache__/main.cpython-313.pyc delete mode 100644 __pycache__/member_transactions.cpython-313.pyc delete mode 100644 __pycache__/time_utils.cpython-313.pyc delete mode 100644 __pycache__/tracking.cpython-313.pyc delete mode 100644 core/__pycache__/book_handlers.cpython-313.pyc delete mode 100644 core/__pycache__/data_io.cpython-313.pyc delete mode 100644 core/__pycache__/member_handlers.cpython-313.pyc delete mode 100644 core/__pycache__/menu.cpython-313.pyc delete mode 100644 core/__pycache__/routing.cpython-313.pyc delete mode 100644 core/__pycache__/time_utils.cpython-313.pyc delete mode 100644 core/__pycache__/utils.cpython-313.pyc diff --git a/__pycache__/book_transactions.cpython-313.pyc b/__pycache__/book_transactions.cpython-313.pyc deleted file mode 100644 index 801ebaed5da7a6ad2522de4aed6aea71ee27f115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2232 zcmbVN-ESL35a0Xs*ExynCM^*Or#K}tf}{^gKTHTDsE~qfMRBemC6aaVT@$yiFWS8j zl@|;W3PnOG5|sj~MDy0Z0FV3`7%RkFiiE@yZ%xt{-k905-Nc}%%E&w3+nt-8o!@Wf z4x-U80r_FOZ+S=|4EeXO*f^l#k)IBoa+L&#I z(^?^9fXvIy$1%a5l@&vo4K!Du{Tsv(4AGDbIVTJ&O>6z|33zs!96rHN#u_o`WQioj zY*O(8izY2NmhCBS(Jk3tXk~S=RAkFG^;C1!U3TD~xu(0yz*w}3UWnSJmB(v)VV;8g z^&-5dnky@I+490`wCLJ=KdDl@9L4NV6&2o!VvwG~UuC$ebMYpu)WWr^bNUQ*ZrBSS z*!E5RHGOnp<~GDo&SxBJwUo!z{OAI{n|G;MW@f=HI%PJza@z}O?*96zv+&!CsHfDYL{$P$JBSik&wQ5o z=9Nu*TOK?BAEeNL2ImB?!vX#YCMN<|FoZa{CNgn^FfmT1I|*?HasoOwNNSA`3t-Ab z;YpkkGciIUL?>mTEFK~gX0A<+KrI}Gnu$7`R2Huz=p2-!OhfQG#p0n6RB#-51hs(k z4p5%VA;OyiKonvmUc|CXHlWMX+zl&n7;F+$dzydmPt>%j@9ewQ!>e1L{5(`0n%tQC z)~;OnMVopotA`T&&%Q*WZwm|~`Cglh%Rj21j$|BT;u)U<98Q+;5mFX0>(ieTQkD$z ze+4!M$DkOJkHv8|uY;YHM!b%*0#72MdYldSH1r&vr04R4%yE%9vxsk-7}B%0ky-b7 zWr%|$DQEpEc!+rtC$S4Si!d@7na1PnQ6-*=osU^fXv7gbeGt z!JCFP=S?qcokg3kK(+Ix-qBTgcekti3%RbH+0pu{T3=0j>A~p3z}6c(i3`=lg<9fL zO}o^#8{C@MNnETZF4hv4Yue?u-AFYtx|2v%6RBEad|Ml@Yw?Zjo$Ti5Z<@XrBC(z) zVWPz=Sqh~_3NTuNtmDi}!Q@2D1BO6;g)EfT(Sl0~JZ}tJOCwFuCELxLr4p|%M*CoA z00zTK`%j`GU6r&SFnVZ8E8rDaIZ?p8IZgLKnTUqiYDynAni6ydSmmV7NvUZFPSoLo z*r1l=q~bRhzr}~lkIZ7pTrAn|&=(;Z%9{lS*y2U3$oO6JEmNw){>v~JX1x8q!cfRO& zfyTrKg*QO_Y*0)!MTYY1^JpFs?#yR$aQqg2iR=lAL1O0FtDv4pf*|aY&@PGmL07%Q6n^9N&)QxmapIE1`RS%A1Q(G~sVyS>2?>y@kfg{>L9(UQ#-41pv3Jev zZbf=RLP(X$p_f7=kPuv|9CPQEa4(8c(}@pAoWd!IIUu<3W^88z^u&R;nwhunz1f-f zz3**1lSu)J@$2a7cTs>}#7j>iU8T)Xc>qNyk~v^Rt`VllHOgYRM&{x#M|2SpnM<5# zs?^k?l80M_C5zEKuv9UIbGjJESu1CXiP;YUOckK4or5dg19h;7MGDCS@xD+XoLs1o zu1_p6914#1ZJZv!BtE4Re@S?xEWwqowYQ#!DJWr@9Z7(B2EZYuM9;EBdXYMu#dI9< z7Fkp~>k3(c*OjxdLgrrqD3FChlq6-qcez|;o-CuPbW8SR>HA7g9%jLRh zJ2Q=S-fvOg2t3M+%BpKuDAVv$NgN(t2tI+mRNrAlNlvtK!(YcXtgrfZbJLHs>EB!Z zBW)mP*G4y{9&6)2YU6(%DrorQC;{nyZvc0HIy4MlrmiaArY|X5v8zf2Z6_iSm3ZGk zMc^Hx9hNM_y=QY^2`M8BjCHV}B9^c2j-sD2?c}F&h3~G*}-ViBJsopjdX@wbMZ4IzR|> z2m{OFuG0u)1OhTf=0AdNF;3^7Z>r-@%YS_1W>Y;c^Jh8S^Yr|`K+k_-0~RRcLXRyv zEDj)FB9broQwqB>j6lC4{mA^1V7`=MH0)Xn=C2`mv4sP{g#$q<$*f=uHS9Hunf0pa z=-Ur>w$^sGYCBu&E}NN|Da3fT2e;_AkakQEhY93(tiiD1{{?hZY+#cZF@?i>8>cS6 zMw{x`Kk#j7V?SvVdzqp8AKfcqM}EHebBA~>E&FKjVpDqw8F+LCnJ1Cws$t0c7zGks z#4o?M{k^|J9o?ea4=JnJ`m)V*`-g98w5~fr-DIY>v!z=$-qgM`s~7rs%D3y(2zLP)lWpS`RZ?5!8pyCd%a}@+WVW99(h9~_ zDQn)jPM$g>>z%XHMFr@y3kh}09MCeE2kMa>K+9z(P_OI)D#`*--vASIe~X)S_jC51 zcyq#q&(i{f`}g9Q*?RJvGM#iwz_9H^r6TQ7Yw5m_5(p zPT@A#e8X%{evaajUC4w;WC8jnkI;8F@x`?V;4dV&68vEjEbIQsA5l|kLtKmZX;crr zpeGZC+jR`i;~@p_WtGriVpvNpkvR0wq$=gt|e0Xf%a&sBi(mk&rk|}FWi-kq+{V{ zHSK74{Q+A#DXJ!PwLcY2CiKwYkWmH_uy>#}umkE?KL=!(OovH z)sN)@O@G`trjGW$(QNM*1OvZJa6)fEl6wm~H9tp4 z1bnEg8vpV*c@x4~*J3MV3@{tH!^~yYbf)ghjKP6vU*-%p)JQ8~J#$<~bx6`Moey`z zy?HDonb?k(w98bW~@ zxqc-SbkcGdr(PfsAi((yC)MJ~;~K5Nar`LAnZHH@ILB%GB>v|iNwWUaJLBi*N_YnX zB>EvBKi=a`Q(pggp!4m4T%hwtTh9CR@b-VZypw|OjCe{MJw7hfP6=gayr;dH>foh~ z<3iJv;2o_#?>t+ZsQ@o|DkHXjDQvkVcr)U%FNNjPu*Xd8qkK%SFrf2L(7~YnKf@NF zV+()*tB?{;VXYvYx4^mlAn!kq!|stKU}tD-W>ZN1yOJ^6;`46`7WfocAPa!iW&;)n zoNz1hV88+x@RsFUu@yIgKwnfQr>Cglh$T;GG{_qsT~lfQk#I_*aZ{0|$)c`xfC(Kv z2m`FGPJ6PYY8t|qaOrU%_h|DwC#hOA&GDkss9ZRrPI{^@)}2?!oNq_p2~8{vWfz8W z3mbEu#wm|D@|&Dz(M5f1-B|B?ExDzSWj&Am&q3T}XE)yFh{JQ6z#_NHNO@qm>+T&7 zJm`p&?>yPMivO(E3A7&`3k_9lsu}rv7&WgTLDmvokSz-AGNBmbED87qv{YD)#qtP5 z*TJht;nL9wKn5P~na!s+XKGgGJZm!i8uQZ`AqXXEami_jBQ|4fdW9 z{^mU({B;mw2R(>im?v35k1m3RD8xZRYk|xNa#Vs5L$X2E#BzO(@YaCe;R;rG6I(x? z|EJc`MWA`?de{HGDk(u4#uSmq-kRoDxe`6GNaWv~bgObxd*&Dj_1)M1QFIoz=2yoep zv&~jaLP2nBFPebadN7%t)gWc%@@h=5y_g!AO<@3wAz=nAhU7ILOG>a9(%bv&UW$tk z-rZT)otIrDDQO|~lm!%|?Dml+HsR<+eVDDM(94ey(&H=k^SwOp31=@tiP?J4eP*@g zL@Dsn0|q*~$z=sjU5cX@fz@n9Z4}4$7Rms{`SWW*y6p)$5`x0_EXc1|yemR}PsmP+ zdW7s@b^|>+6~36u$mI$rdl3O2_#LOP#qWw%1mBBj>re>z6hW@A`+mhGlBQA}2ZEK| z6zzQbPd>9K=u0M#S|!1ZP=pJZ*-!*JGr~dr1H!?KY)EEsA(<^8)UuKs34YiN7aZnD zfH$r_fSY7QGn{%#O{I0itsYmSF|{wIb(?|YGDnxfat709lq26^`-3@R%VMlQ!Z>M; zxbkaQM91J_#g&S~7q*Qa8ykA>z(?}c#kmdJv-R80`ERVd@!S`WXZCB^o!VRev;GU) z?&@g8C+9UX7hR3ahwerujn=+1noYCi~lNlF30BNTH9!;y-nV%qm!=-bKOQIlP|4Mx&y za5$yX=n+Wwv|0RO`L8-hBBX}n!tzO9 z)va>z%&ybBG7BEfm9HM&cFW@%uQ>enwp_*G%#m2m6CZB-kH=?z@Wi;#f*<(&XI?)2 za%OR3&bMy3<7S2bjk?hz=hlub%LeMkwr2dRGGcJJeX2&9s0n6kf)h1svo&jTH4Pbl z-c+D!BCzrwft8t6n{t8XiNMxuVC$!yxxnt>olqTCEt;AKOrAS9Rargya;|d4LSDt!)WcT?eE-lJz=zx+Tv#RqpVRkZ$Cl{|g|HN&M@jUup!Z=pn z^!V;YJ^{pOA|H>)XJH=rVH9WSOfdK_%eOQd`!8&bLlihhf0D%iKgFh|92n6WjQFyuB z?t2v{jEGGIBnFB4f)(Ag73NY5vU5YqMR?P~){#Pi4f7LBNy-E#g}6nYmExPdh4iNY zC=w{Z79B#11vqnjSumu+mrs;H(N-IZSQCou+7;ui1w2qBS-=yc7@5o%W!FE$!)BPV zGTK@@65j`RP_sG;$HE=q*y|l5$3Ec3TE~vQ*PWA^KGLsl`tvJUY1{Aof3LftX7=p+ zB9`my9S`?q`jffvV77DcjQ^DX^^Utb2FsI6Tg#b0ECBKu=LVWy4})9Mk{RLGNPTJR zTn^&9dieU4L_|##BfJX7c8RzezkUTkY5UxI`sEKoAR{jdm4X81C<`bg5TqYpEdydB zbo;#sZDTTB4zuWHBnWsf`Sb88)ps=4cQx0`v;$x6K!T`|#%g3P&@)AX=NnRb3r>lq zqL5!ihhmx(RRJCI?*Yv%5lbrz`N>KtlBVf69Fa&+1x5kw0X_EunxS`^2PGy(TDXb2 zqxDF3BH4vxH;|yK2!6B&NB1C+kvt6q4my)3!hoDQdgdVu<}8rQrvPYp6wT}zxb$y; z+y$7M2~ShA;4M)7wQ%fgM@~34DU?q;I7E{lprW2{LR{Opuni#&L9iV`u>D3=&eIJT z=<-Z1STVwnJar}4)CZFYQ^d3pdx!~^4us8d zJVDl4XdjGWOw!TVfnA3AinzZbp09}SYqI!jvfvKyW%`*rwE|Ojr%GS~cd8g>?Hwn} SY+>#Qbxg%{C$o^T{_FpR)f@)^ diff --git a/__pycache__/time_utils.cpython-313.pyc b/__pycache__/time_utils.cpython-313.pyc deleted file mode 100644 index 9511b0798f65faa357ab373261837ee03fe47947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1301 zcma)5Ur!T35Z}H2q2)y7pAbTDgEnwrjWH6mF^Hjo22(;fh#@w)9CueZXz$4GRRT|Z z3Eunyycj=*k5nF-91oi43vY({0i4-urShVa?A+|`?96X|GuQ0t=_Vkb?~m+!R0#Qw zo3_ASN^=oDCqySYeM6QBC(D#mhI{3W!WH?A@t7VPAv~_9^!Nzbr97c0V4u{Jpu6-g z(5Y=jOJ8EhQzcBk z;c!tZtd{b=RjWdJQCf0?LT#(GdKm2Zo>BDeTE%$lID5vk623NSfm;!e_YcE?Z6`2V zsEszC{1${x!V(Wa9g`nwe?uLutD_B-)m3(`jyKflx;lOK=+(J8e-@wTI006>*-a29S)T7AxPc_iw~fZt^XG*;|snAuUkI`46*BNv%rt~ z3e`JS&;bIPZGcZFh~9mZi>O<81<&~iWWVpr&D!vHgyTbS6P;>0G zq)}EOW5`y>GNJ)Vy{zK@;>__eaK_5SB&eS;O6gZJc|p<_M7>HX^fmpJQt0z5P-&@} IXvs*w0m`5tu>b%7 diff --git a/__pycache__/tracking.cpython-313.pyc b/__pycache__/tracking.cpython-313.pyc deleted file mode 100644 index df267d13419f93f977c8b6b1bab23907cd31fee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 zcma)6&u7U@pjRaeI>Z!LhK2+Q~v%9e&fW(t_c6Q#cZ@&3v zd)cf3I4(cS-}+4e{7oPGLra|Ad2}8_1uAR-RQzV2YKmJ>(T;)=6^?eOBGBrUA+)KA zjyBz3cIqEGq+Cyqie4NoJ-rz;k6|ealDWEnV?P2=z+2~79GHSFt^7sKb=uCEwsPt# zO|LO?JMcYQ3pLjdGfFycjRITHqb=c_TU@^W$u(a2; z_s(jKqP5xO{(-IgVQ$sOgZ3jex=;~MIzB-T%{n|cvm5h|<~tLoyXJI9Osh18>j_YF z0g%o(%@5Iemo%#|mk?k<18K!=wx)*g6&m+cvn`|4Y!(Uv6wqCk%FuK!aPG}0J4ON2HW)qd3| z8Jm@D9#I(TPOBw7R}ns}o33QtSFXz9XF%y&Nlu32y0v7ID32CQqC?#0yXO1rm!69B zgN3gaHuXQm_;Yc1v%MpZy^d zw2_VyHl2FAiEV+s>;(tdG@{;)rc@rc5uHH^%|KlL8ZcStaXzMp`Qw}CpPC~Z#fQbs zm9AO%ss6|KpH3^!>G64nrfmfJ=7`7@p{e@fUk0e#HzIE{b3Di^9%?f__cm zFzQ{-Pz%?Zewa#}sLu!bP*hw+up)elN)kysRzrGzjs9Kof;x^9)PBJfnqAHq`xDH+ Z;K*K@v67%Q6yCMhzp=Nr+p3|oVbU};j=(K6Y1L3brAqc zn|a@Svs=+%AG@ zte^TpC+y{DK=OeMN`854#~vyZ&CC}GmI<|^RjO!4UM2=sR6WJp z5xrP>KVK%gju**7FBGTof@F283gQ-*;~gysiJ$8A5tr*n&s`Gw>F4Bu1D@JfD7$gyK{%B5hxH)s!Vm-)+MbHY?_cYw{I{-_j~<3&yi9^Kv%;s9fz zthozJ9E@EdS`S!grlgYP;2W5hD)KZkBVghn4xN%4tDs~7wqkqbHj2=?&o(DnbwoP`3*M6RTUlfcOt#{V(7dkdnsF@z2BBtYAo< z3q~&ZU^Lwz zveH;lG-Vl;81WruP*NMKrNc{I+?gz+VQ_JSO)g_3RWx($4iF^3)jS4+_rLmx4FP-` zD*)TZD!8JGK`8JPLFUq;sdas$f~lGs_yE&1Wek%F3?NG5py&d0NGAZuqJvS}=R7J7 zk+S!uHw5m>c7PJyR1IBc??fMxi9Rb1e9#dXe+H^9f#{(UwS>`5Vo!7UjFp&aCo=1a zjFq@h%XGxpP3=SNcFq!0wR67(#7;2U6jQC>L?^hrzPJ$_dB7BBTfuYN{P_f+-GCMU z51>85P%dZzGYMIfo%QC*=b!xX-OU~{Bt-QN5N*C*-e7zrEshz9PEfYo4Zb0 z;;U`(^tyQ35@&!}1poEywQT)(OL!Jop&5T^LwMQAQEJGJJMXALv8Lk%L#b$b7jz-^ z$fnuvOc#>^tYe2ArD?$Lj6;@`T};ZZgo7!{qWXq&Tz5kco-DJ6o4iKZVX}u_XHjo@ md7l4?8~K?#0`eX=_D~S`sfUpv{^Y~GVSZ|BSm2L3ZvF;v9v>V4 diff --git a/core/__pycache__/data_io.cpython-313.pyc b/core/__pycache__/data_io.cpython-313.pyc deleted file mode 100644 index 025d9fe849613fbcc23f7cd6404b31baff22c0e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3000 zcmbtW-%k`*6uvWacV~8IVPSU>)GiFLsGF!*#VGzjNU2pDQCZiLK(pEG&f+S}k~_Nv zO`7`9hs8F5+NeDAftoatv`I;tG)-R`{sYlaaNLI`?Tb%EXwqn3dd|$wx?rKEy)b9) zy?gGtcfRj@XJ)mc!cCz4{!{SsW08&TSGQ5$;{WtUJfJ2)~UmJ|ch> zA`~o*IKVn0PO#312v&?pV5LDW?0Sm9dJD$XQfWh)7hdeRS1W3?!pI|Aoy7kHv^{gOT3Yd*O>vhGbJ%Goh>9-bKf z4i-R$hWAY5 zTu-+OYt*+H%djwSNU8LYYA&PL)A2bJ#b{3+8Mt)%qH>;PuBZd=sp?f_kJ2`9{#y2O zMvI-zBy&SCoQ<^&Br;4LNXE1ASUR(J4_*9CbuxgxlkFs=DwaD296X>k(1_R`{EAwMh{^`+&?$+71g5;TS-E>WcrZ3D! zA4*4o1bN@0yY**x>kA#h`m}bp@QwS3xCTW$t%>5t&{>P3Ef|gOM-Q__`F>nsHd{cp zaN>|VQNFh%P}>h?OX5?=IU&lmauCyH|K7*jkx*_kTu<0xrlH|Z>uF8T#UIC0UNamY#D{XK3AjNaJ%@G7f5=%oYip9~ zkP2y=VwvGG=)>UE0GECS%!bfEZftqv?YtM53Vd5PQ#afEb?}Fl`S6Lm^vgh=KJa!H zB;VxW1*vJ-L8SWUhPP8kO?_3@wS~@cPOynmj>0_l%?$q$Iva39%ebMNaC4NDzksN% z5a385BnRk^T#7n-OPLKD7TZe&08@QMrU3E2wy0w#_<$~WWUC*a#B6|RFR%IbrXDLH8sbV{D0;3zA+z2Q{O~#Nbi#9IJP`EnE)g;cQuFCSYSTp^x zP-85;7tDsN6>62~z@3lA-^q6^dHoY(<6~38Cm&8b7Q8J>+jdM|_)L6URr5?Fbvyr% zh|6y=C_e~PU^c|?NuVy@{R(=u+i%Iw9HeIJvXgkKUWKbv zeeOZ*{|Of;^gmS}8@6@T2Wv~n{B&DaX&8dR{t35gDAJJ4FY`}l2f()-F8w5!4Z+)_ zY|MK*A4r``a>b3)&sPLe)y3H*!()~V4-LD_cQV5lrA0BmW6XC2!>Ywl1Poa;PcuVI z8mw2ebZi*EuG9{85Ps+2GQVx$Gl%1z5cvsltvE%_w-VsFV=Epf*RT?xT=Pn$2qxg< Ms#blJt2E>N4dS2`+yDRo diff --git a/core/__pycache__/member_handlers.cpython-313.pyc b/core/__pycache__/member_handlers.cpython-313.pyc deleted file mode 100644 index 5ab3eef2803c63ab3aa87b918e7ac2d6618452de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4276 zcmeHKO>7&-72YM6KO(6WWyww}xbj$*CDDjkCzYH;P7BDe;Yxzlz_gMW5=yMN6KTuk zQkdPfL7j-AKY-CD3S2ivkb7(zheA6WeU*bnI1-!~WgUVeYBV@!`fr(HC zW&<-p7MzioM6f+L8=48TFt3ZVk(ns#^6IX>G#i_VvpBSc1_YMKgh6&^A|T~V6l71P z3uH1A1KFF2gFLb#v87&&hXya?E4jkEGg#JhLKLEQz3?%Z~_I(=~<>$R?&6Xd|`<)li@ErA5F1|T^oxH({KckCpQCQ_H8DD&(WUUm9?A4-b>sf5gjxXklj4ryP zvnz_B!Y`WX)soZaeq_B9cNdjmcHFgj21HqCNIl!hv6_@>$jQ1)9>}CB50$Spq~7(> znl#Xmy0&9K*pnOtJ}}|U3LuL&`!b>C{6qkdgy-yD=-R9N>MprK4b8=emS2la zsU%Y@De5G#`#|G5pyr*TLFVj&!VnshWGynKGHQYX2h*dEe%Txi-~kA+t&NhdkfIKF zvTSDSs+~@SIhYv!j}tO2rmZqGr4v(B)k77-!%YPp$xsT^39SNHs1t#HSj;qWPlOQG zjiY)!c=!e*=97@kMGzi1PSvF0Mm)KGyc!>@$A@>~!`1jm`BEd%yM1J|ni#7m(mRQC zHF2(dxgqzhPgmu^x;(ri4_D=p@|CZo@UO4_{ObDfy<0VDv>_$8dnb3L3#DW!lC9fddqv&aNHautD$+&`L%h0}={Bjtaw{He04d1RoRWaTBY9f7Rb;9Y z0od5OWtvE|P2lu5dBr~iI}REHkj;4z9(GRFq#*#scK_L`oUY5`JMwr{J`ePQWHb0c z9=vy}Dvy@0d>xS+(e7k{WS24hSOkWx`HL&$b=#4#%5KJ7VY8_nQ zx2g(MW6=&W5S=d1IcTcuT-^KLG-Kxw0;`WgHqV3b%y_ycjWm)+w~xJ4O}<=DzPgiq zwVIqPPdB7+UFv@z^{?NkNhkQ_p4gSnAGDJMbMedlZ>T&+JGHM@>+GN5E1p3IZ;KON zNMQu#11&m8bkKqCf_GeepLg(G{BVcQh|Jl*EpYMg+$FP`rL2<8->aLS8Ji!IHzBe> zI!8S4Tff%hYFt!U9{fE(1AmA^!|m{Uip@WJ)7+#?(*Yseu^=tDy7wzKf!IJHor<(T z*F2u^c^4m|x^!x&*`;DJ&k(ks1lb8FoX8TeM^OdeV%oXf0pF7JC<4PecQ9fq4cYuD z2oG1Onsf$mwVtmghw90(o#a?Gc?MvGjBy&=M_qn#M}85g1N?}bd{4iv-+PUJ{oUh> z*LI_moF~rLqOTmn6aU8_96FC#0DtJ<0e>HOz}Wf|2I@o5Xb*zmpMxBT^87?wlHWu0mTG;-JH!7iSbg9}hnWJ~j-ZGl)6j0nM+9k?jT4 z^g(T?CY^d3)W9cA)a461@`bAWLlvodMF%+`a|KwyP_mP#ciM PS02l}24a5z1fTmq7vYlv diff --git a/core/__pycache__/menu.cpython-313.pyc b/core/__pycache__/menu.cpython-313.pyc deleted file mode 100644 index a733e111fcb2e16750a89bc13d2fc4b390bbf1c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2193 zcmb`IO-vg{6o6;;$A1_SASD4pSt(V6NeCg~M`;_VQ``VHE@3hK0m(A>f_FiCZRlvOuKm+ArOzT*w}_t0p7+O!vh$4D%hnS`Mwt9zl=4ON7C@I8o!WP!qm zm!Zm6Aq%MIMWr#?2Y)_PnRP@bsA3|N7uem!H2Hw7UHM@tWS(7>!E@uOx?N4U31dHoQrfE4_USa8+VY`xA&d^vu zu)SF=XU21htY-Uo^RslySk}>mqS(W!w-)Co=ad0w3KUYj=OCyWjFXzx6}Yi|(vLK?^sKS?p+=&b-h z$VLaG!=B}w50m+t)w2{$lcYei4=X1I(bMM%$N*}4B zLDqz;{He6Ql1Z$_5k5NuLugDN1A){}Jdj^XUB9)oZ@P9pjhng0pMJak&HB@jb>rF8 zi|&z9)5!C4rKan@ct-ygNo&WS+(Yu07j~pJb`oqPp*jV3=Ahqz#zWE%!Fh}3>VicT zVx)!~jxR<7qS+3!2jB`7wmuF;idI-DTH8+|q3K9ywrH8BL3;(X;i5GcoH?TVrvY@A zapnEV@Z|Or6Zf46M#4(Cur*iMnwbbjL(@g;laMm;!S<7zp~!gAibDSxvq3&>uzs3av?8435R6tx79NckwxWgm$~+jx zqYc+|MJqTSGFxGAq&7Gggq1gn7VCg<{*%sc)O(C|f*R05xM!C%b`0(*2QJs^<(sL% zBD@F=UvH~xBYfD#`Sv`83pf0V_{t`_5c!rtM1r%E4q!}6b+?V<#W+H|6>bO^ry=0V z5aKOUc^wp$!Fnc2PbfMcjDiaTRXpCMeE!}sI4xB;sI8zm2R6?`bJK}bCE8B9~l^-(l$#yb11d z;@0^CnbB@%jex)t6T`3ve@m%^k*JTNM*ghCQ<{-TXLQyJ(*~gGc&#w^c)#j-F!)`Y zbrJIUj`S`+Lo`75kRg1o;KyV8@C~_S8fXG{DrZDYWIQIBf-OYEH+V+4nR4#)ypzSp zNE>DSphr6T1rUFUl+s;t=6BL{C`t6}p_x)}()urM~VQ^)+vwHmFTGz4~&+g9mtvjjI00FE2IaNB0 z5%L2c0#jwsxeUP$$&sA0L@uc&M(UEXsIr)h%#zDNlJ@lsWaX zSF@|m7LPw^)Lb7IF-?_>PoeDK@hoa@POmBJ$fU4;)US^Q*dt{@o>vlY>1`ZS8__lnsEsFXC(z;P+I`>{ zW~~9PR!e-eCREzk-DhGp%LtgU!X&ED|5 zO+F$KM(YhGv7jRs*mdT(n;;jSbStoe?YoT9nh=VmGTbyD=ynGg`92=NG#SpEpXjQq zmz5G`laR#0`gq%#>#A zP=Q^^^l^2g)KiC$46^6*bVx7}!u_sXBA65lVr(3H;|2qkb%c*`oau5ba{EgT@{~aL@b5XJt16<^bvrK z!RmZO)QS!EDpQe1mW4WTRv}G>yMIT-x?Lgb*Q)pxrPtXUr0^R1c)Fi4MN#(1$$gUD WCzFR-LYX}rN-8s*iGJmRc>OPoL~m;V diff --git a/core/__pycache__/time_utils.cpython-313.pyc b/core/__pycache__/time_utils.cpython-313.pyc deleted file mode 100644 index 36914edc2a0edfc572581da21eb244ef29191fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1159 zcmZ{jPfrs;6u@V;TUgit3LzSTW@6gVjcFwn5+%rmlNb$Q#eX!}tlKGFy4`JNwh%b+ z8C0SN4<7a4_wd-t!K4>W^uo??VH#4d+%*`Y;2T(y#H{iTGI&m ziif_ySxI*u9!JC`HoZgEh#+fJP)6)wTbm&}RA_c;hKQ7{gVyad==AoGWt`w;OY0bA zH|DWl=baJMWgf(?*N=@pX;>*(-5F3vWRq-B*eKbgHoZynu+KoKgR84<;57q?$I4Au zxXBgS9_Ka5Dk7@0AaX-xw=CL8s}~j(Is|}BMrG`Z*uiUJ2uu>QV63xTUMfAfeV?t1 zXor^`LNu0V3#Ik_xEh7d-Kg9Q9JD$MB`*@ZgcwdU_5)dH>~|);eo_u3l|&zbz=$L# zK^>AW=Je~4x9Rr9Lfb5~^g zSF7BsF~7px)8bTJ$r`SdyliO#<9AYFvo6=i z1qv~yUQ}NO&w}S++sw4|jKJYJ!-17n9LdaV!7-74Q*6RaE%x|Shi|RBLUKgF-pW|` z;Wi8W8fSCG`Ql=J9)36Gm>mi5$w z2ah5aFM{6MqM*Hb@YZ_sP{AThdy#taCgvaT%_dEwKA1Oe-uvEUzHeWenM?|SHTF-| zKT8Phi^GA*?Vx!cf)!*UQ@Vv{YnP~G%7ci?rUG6uRq$#}GPIwfsbIBR<4pyxz-m^& zt)OC@6z=Z9FLW{p4RzN==Ramj6Za9qJqVfd7`#~6Ffx_H*iZ{x_5!Y04&$2T5KIk) z%Rb{hEMft1x$0q;tfQvr<>S?f()`U?eTMoAq;!vvMg5|lFU>?j-S^6O{A%cwMYfzT zSw1DDFt8n#YeYOb>0q}~#Zxo`_lT#mQ{a}-bNV8B7QG#MH?ltRe)i3!*C)OXOn+Dc zNBaO^wOd8H1Xuy7;{fZv6MlLX zgcCZ*nzEVgu>gA(;i-A-gyaULKIK{iZV3#DYebxx;H6V|H{zK(_Nopkw+i$)1LT`b$_YcF3EAu7bhVk4rLnm8 E4=S?R%K!iX