Skip to content

ron-av/LibrarySystem

Repository files navigation

מגישים: רעי שאול: 325390086 רון אברהם: 208007005

הוראות להרצת הפרויקט:

יש לוודא שמותקן Python 3.9 או גרסה חדשה יותר על המחשב. להרצת הפרויקט, יש להריץ את הקובץ GUI.py שמייצג את ממשק התוכנית. ישנם קבצי נתונים הנדרשים להרצת המערכת (כגון books.csv, users.csv, popular_books, available_books, loaned_books), יש לוודא שהם ממוקמים בתיקייה שבה נמצא הפרויקט.

תיאור תכונות המערכת:

-ניהול משתמשים: המערכת תומכת בהרשמה של משתמשים חדשים. קיימת אפשרות לבצע התחברות באמצעות שם משתמש וסיסמה. אימות הסיסמה מתבצע באמצעות הצפנה (Hashing).

-ניהול ספרים: הוספת ספרים למאגר הכולל מילוי פרטים מלאים כמו כותרת, מחבר, שנת פרסום, ז'אנר ומספר עותקים. הסרה של ספרים ממאגר הספרים. עדכון עותקים של ספרים קיימים.

-מערכת חיפוש: חיפוש ספרים לפי כותרת, מחבר, ז'אנר ושנה. המערכת משתמשת בתבניות עיצוב המפרידות בין לוגיקת החיפוש לבין הממשק.

-השאלת ספרים: אפשרות להשאיל ספרים מתוך המאגר הזמין. במקרה בו לא קיימים עותקים זמינים, ניתן להצטרף לרשימת המתנה.

-עדכון רשימות ספרים: יצירת רשימות של ספרים זמינים, ספרים מושאלים, וספרים פופולריים (על פי מספר השאלות).

תבניות העיצוב שהוטמעו:

Strategy Design Pattern: מיושם במערכת החיפוש, כאשר ישנה מחלקת בסיס SearchStrategy ומחלקות נגזרות כמו SearchByTitle, SearchByAuthor, SearchByYear, ו-SearchByGenre. כל מחלקה מטפלת בסוג אחר של חיפוש.

Observer Design Pattern: שימש לשליחת הודעות משתמש (Notifications) בעת ביצוע פעולות שונות כמו הוספת ספר, עדכון עותקים, או התראה על שגיאה.

Iterator Design Pattern: המערכת כוללת איטרטור מותאם אישית (CsvIterator) המאפשר לעבור על שורות קובצי ה-CSV בצורה קלה וברורה, ומאפשר עיבוד הנתונים מבלי לטעון את כל הקובץ לזיכרון.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages