מערכת ממוחשבת לניהול ספרייה אישית, המאפשרת ניהול ספרים, חברים והשאלות באמצעות ממשק גרפי ידידותי למשתמש ומסד נתונים SQLite.
- הוספה, עריכה ומחיקה של ספרים
- חיפוש לפי שם, מחבר או ISBN
- סינון לפי ז'אנר וסטטוס
- ולידציה של ISBN (13 ספרות)
- הוספה, עריכה והשבתה של חברים
- חיפוש לפי שם או אימייל
- צפייה בהיסטוריית השאלות של חבר
- ולידציה של אימייל וטלפון
- מחיקה רכה (Soft Delete) - שמירת נתוני חבר גם לאחר השבתה
- הפעלה מחדש של חברים מושבתים
- השאלת ספר לחבר
- החזרת ספרים
- מעקב אחר השאלות פעילות ובאיחור
- סימון אוטומטי של השאלות באיחור
- סיכום כללי של המערכת
- ספרים פופולריים
- חברים פעילים
- גרפים (אם matplotlib מותקן)
- Dark Mode - מצב תצוגה כהה
- גרפים - ויזואליזציה עם matplotlib
- מערכת קנסות - חישוב קנסות לאיחורים
- מערכת משתמשים - התחברות עם הרשאות מנהל/משתמש רגיל
- לוג מערכת - מעקב אחר פעולות במערכת
- Soft Delete - שמירת היסטוריית חברים
- ארכיטקטורת MVC - הפרדה בין שכבות
- Python 3.8 ומעלה
- tkinter (מובנה ב-Python)
- matplotlib (אופציונלי - לגרפים)
# התקנת matplotlib (אופציונלי)
pip install matplotlibpython main.pyבהפעלה הראשונה, המערכת יוצרת משתמש מנהל אוטומטית:
- שם משתמש:
admin - סיסמה:
admin123
מומלץ לשנות את הסיסמה לאחר ההתחברות הראשונה.
library_project/
├── main.py # נקודת הכניסה לתוכנית
├── requirements.txt # דרישות הפרויקט
├── README.md # הסבר על הפרויקט
├── library.db # מסד נתונים (נוצר אוטומטית)
│
├── db/ # שכבת מסד נתונים
│ ├── database.py # מחלקת Database
│ ├── book_repository.py # מאגר ספרים
│ ├── member_repository.py # מאגר חברים
│ ├── loan_repository.py # מאגר השאלות
│ ├── user_repository.py # מאגר משתמשים
│ ├── log_repository.py # מאגר לוגים
│ └── statistics.py # סטטיסטיקות
│
├── models/ # מודלים (אובייקטים)
│ ├── book.py # מחלקת Book
│ ├── member.py # מחלקת Member
│ ├── loan.py # מחלקת Loan
│ └── user.py # מחלקת User
│
├── services/ # שכבת לוגיקה עסקית
│ ├── book_service.py # שירות ספרים
│ ├── member_service.py # שירות חברים
│ ├── loan_service.py # שירות השאלות
│ └── user_service.py # שירות משתמשים
│
├── gui/ # ממשק משתמש
│ ├── app.py # אפליקציה ראשית
│ ├── theme.py # ערכות נושא
│ ├── styles.py # סגנונות
│ ├── widgets.py # רכיבים מותאמים
│ ├── dialogs.py # דיאלוגים
│ └── pages/ # עמודים
│ ├── base.py # עמוד בסיס
│ ├── books.py # ניהול ספרים
│ ├── members.py # ניהול חברים
│ ├── loans.py # ניהול השאלות
│ ├── reports.py # דוחות
│ └── main_menu.py # תפריט ראשי
│
└── utils/ # פונקציות עזר
├── validators.py # ולידציות
├── helpers.py # פונקציות עזר
├── backup.py # גיבוי
└── exporters.py # ייצוא קבצים
| שדה | טיפוס | תיאור |
|---|---|---|
| isbn | TEXT PRIMARY KEY | מספר ISBN ייחודי |
| title | TEXT NOT NULL | שם הספר |
| author | TEXT NOT NULL | שם המחבר |
| genre | TEXT | ז'אנר |
| publication_year | INTEGER | שנת הוצאה |
| status | TEXT | זמין/מושאל |
| added_date | TEXT | תאריך הוספה |
| שדה | טיפוס | תיאור |
|---|---|---|
| member_id | INTEGER PRIMARY KEY | מזהה ייחודי |
| name | TEXT NOT NULL | שם מלא |
| TEXT UNIQUE | כתובת אימייל | |
| phone | TEXT | מספר טלפון |
| join_date | TEXT | תאריך הצטרפות |
| debt | REAL | סכום חוב (קנסות) |
| is_active | INTEGER | פעיל/לא פעיל |
| שדה | טיפוס | תיאור |
|---|---|---|
| loan_id | INTEGER PRIMARY KEY | מזהה השאלה |
| book_isbn | TEXT | מפתח זר לספרים |
| member_id | INTEGER | מפתח זר לחברים |
| loan_date | TEXT | תאריך השאלה |
| return_date | TEXT | תאריך החזרה משוער |
| actual_return_date | TEXT | תאריך החזרה בפועל |
| status | TEXT | פעיל/הוחזר/באיחור |
- ניהול ספרים - כניסה לניהול ספרים
- ניהול חברים - כניסה לניהול חברים
- ניהול השאלות - כניסה לניהול השאלות
- דוחות וסטטיסטיקות - צפייה בדוחות
- מצב כהה - החלפת ערכת נושא
- גיבוי - גיבוי מסד הנתונים
- לחץ על "הוספת ספר" להוספת ספר חדש
- מלא את הפרטים (ISBN, שם, מחבר, ז'אנר, שנה)
- לחץ "שמירה"
- לחץ על "השאלה חדשה"
- בחר ספר זמין מהרשימה
- בחר חבר
- הגדר את מספר הימים להשאלה
- לחץ "צור השאלה"
- לחץ על "ייצוא ל-CSV" בכל מסך
- בחר מיקום לשמירת הקובץ
פתרון: התקן matplotlib עם pip install matplotlib
פתרון: ודא שמותקן גופן תומך עברית במערכת
פתרון: ודא שהספר לא מושאל כרגע
- שליחת תזכורות באימייל
- ייצוא ל-PDF
- אפליקציית מובייל
- REST API
Asaf Moradi