Skip to content

MoradiAsaf/library_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

מערכת ניהול ספרייה אישית

תיאור הפרויקט

מערכת ממוחשבת לניהול ספרייה אישית, המאפשרת ניהול ספרים, חברים והשאלות באמצעות ממשק גרפי ידידותי למשתמש ומסד נתונים SQLite.

תכונות עיקריות

ניהול ספרים

  • הוספה, עריכה ומחיקה של ספרים
  • חיפוש לפי שם, מחבר או ISBN
  • סינון לפי ז'אנר וסטטוס
  • ולידציה של ISBN (13 ספרות)

ניהול חברים

  • הוספה, עריכה והשבתה של חברים
  • חיפוש לפי שם או אימייל
  • צפייה בהיסטוריית השאלות של חבר
  • ולידציה של אימייל וטלפון
  • מחיקה רכה (Soft Delete) - שמירת נתוני חבר גם לאחר השבתה
  • הפעלה מחדש של חברים מושבתים

ניהול השאלות

  • השאלת ספר לחבר
  • החזרת ספרים
  • מעקב אחר השאלות פעילות ובאיחור
  • סימון אוטומטי של השאלות באיחור

דוחות וסטטיסטיקות

  • סיכום כללי של המערכת
  • ספרים פופולריים
  • חברים פעילים
  • גרפים (אם matplotlib מותקן)

תכונות בונוס

  1. Dark Mode - מצב תצוגה כהה
  2. גרפים - ויזואליזציה עם matplotlib
  3. מערכת קנסות - חישוב קנסות לאיחורים
  4. מערכת משתמשים - התחברות עם הרשאות מנהל/משתמש רגיל
  5. לוג מערכת - מעקב אחר פעולות במערכת
  6. Soft Delete - שמירת היסטוריית חברים
  7. ארכיטקטורת MVC - הפרדה בין שכבות

דרישות מערכת

  • Python 3.8 ומעלה
  • tkinter (מובנה ב-Python)
  • matplotlib (אופציונלי - לגרפים)

התקנה והפעלה

התקנה

# התקנת matplotlib (אופציונלי)
pip install matplotlib

הפעלה

python 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        # ייצוא קבצים

מבנה מסד הנתונים

טבלת books (ספרים)

שדה טיפוס תיאור
isbn TEXT PRIMARY KEY מספר ISBN ייחודי
title TEXT NOT NULL שם הספר
author TEXT NOT NULL שם המחבר
genre TEXT ז'אנר
publication_year INTEGER שנת הוצאה
status TEXT זמין/מושאל
added_date TEXT תאריך הוספה

טבלת members (חברים)

שדה טיפוס תיאור
member_id INTEGER PRIMARY KEY מזהה ייחודי
name TEXT NOT NULL שם מלא
email TEXT UNIQUE כתובת אימייל
phone TEXT מספר טלפון
join_date TEXT תאריך הצטרפות
debt REAL סכום חוב (קנסות)
is_active INTEGER פעיל/לא פעיל

טבלת loans (השאלות)

שדה טיפוס תיאור
loan_id INTEGER PRIMARY KEY מזהה השאלה
book_isbn TEXT מפתח זר לספרים
member_id INTEGER מפתח זר לחברים
loan_date TEXT תאריך השאלה
return_date TEXT תאריך החזרה משוער
actual_return_date TEXT תאריך החזרה בפועל
status TEXT פעיל/הוחזר/באיחור

שימוש בממשק

תפריט ראשי

  • ניהול ספרים - כניסה לניהול ספרים
  • ניהול חברים - כניסה לניהול חברים
  • ניהול השאלות - כניסה לניהול השאלות
  • דוחות וסטטיסטיקות - צפייה בדוחות
  • מצב כהה - החלפת ערכת נושא
  • גיבוי - גיבוי מסד הנתונים

ניהול ספרים

  1. לחץ על "הוספת ספר" להוספת ספר חדש
  2. מלא את הפרטים (ISBN, שם, מחבר, ז'אנר, שנה)
  3. לחץ "שמירה"

ניהול השאלות

  1. לחץ על "השאלה חדשה"
  2. בחר ספר זמין מהרשימה
  3. בחר חבר
  4. הגדר את מספר הימים להשאלה
  5. לחץ "צור השאלה"

ייצוא נתונים

  • לחץ על "ייצוא ל-CSV" בכל מסך
  • בחר מיקום לשמירת הקובץ

בעיות ופתרונות

הודעת שגיאה "matplotlib לא מותקן"

פתרון: התקן matplotlib עם pip install matplotlib

הממשק לא מוצג בעברית תקינה

פתרון: ודא שמותקן גופן תומך עברית במערכת

לא ניתן למחוק ספר

פתרון: ודא שהספר לא מושאל כרגע

פיתוחים עתידיים אפשריים

  • שליחת תזכורות באימייל
  • ייצוא ל-PDF
  • אפליקציית מובייל
  • REST API

יוצר

Asaf Moradi

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages