تفاصيل العمل

تطبيق مكتبي لإدارة الكتب يشمل الإضافة، الاستعارة، الإرجاع، والحذف مع توليد معرفات مميزة حسب الفئة، ومعالجة الأخطاء باستخدام استثناءات مخصّصة. يتضمن النظام واجهة رسومية للتفاعل (إضافة، استعارة، إرجاع، حذف، عرض الكتب) ويدعم حفظ واسترجاع البيانات من الملفات للحفاظ على حالة المكتبة بين الجلسات.

مشروع نظام إدارة مكتبة هو تطبيق مكتبي بلغة Java تم تصميمه للتعامل مع العمليات الأساسية في المكتبات مثل إضافة الكتب، استعارتها، إرجاعها أو حذفها. تم تطبيق مبادئ البرمجة الكينونية (OOP) من خلال كائنات مثل Book و Library و StateSaver، مع استخدام استثناءات مخصّصة لمعالجة الأخطاء وضمان موثوقية النظام.

المزايا الرئيسية:

إدارة الكتب: تخزين الفئة، حالة الاستعارة، تواريخ الاستعارة والإرجاع، والكشف عن التأخير باستخدام LocalDate و Period.

معرّفات فريدة للكتب: تُولَّد تلقائيًا بالاعتماد على عدادات الفئات لسهولة التنظيم.

منطق الاستعارة والإرجاع: يشمل التحقق من المعرّفات، حساب فترات الاستعارة، كشف التأخير، ومعالجة الأخطاء عند الإدخال غير الصحيح.

الحفظ والاسترجاع : يدعم حفظ واسترجاع حالة المكتبة من الملفات باستخدام آلية التسلسل (Serialization) في Java، مما يتيح استعادة النظام عبر الجلسات.

استثناءات مخصّصة: مثل مكتبة فارغة، معرّف كتاب غير موجود، كتاب مُستعار مسبقًا، أو لم يُستعر أصلًا.a

واجهة رسومية (Swing): واجهة تفاعلية تتيح للمستخدم إضافة، إزالة، استعارة، إرجاع، وعرض الكتب، بالإضافة إلى حفظ أو تحميل المكتبة.

ملاحظــة: كنتُ مسؤولًه عن تطوير الجزء الخلفي (Back-End) بالكامل بما في ذلك تصميم الكلاسات، منطق الاستعارة والإرجاع، وتوليد المعرفات، بالإضافة إلى الاستثناءات ومعالجة الأخطاء — باستثناء ميزة حفظ واسترجاع الملفات التي قام بتطويرها أحد زملائي. أما الواجهة الأمامية (Front-End) فقد كانت من مسؤولية باقي أعضاء الفريق.

The Library Management System is a Java-based desktop application designed to handle essential library operations such as adding, borrowing, returning, and removing books. The project applied object-oriented programming principles (OOP) through classes like Book, Library, and StateSaver, along with custom exceptions to ensure robust error handling.

Key Features:

Book Management: Each book tracks category, borrowing status, borrowing/return dates, and overdue detection using LocalDate and Period.

Unique Book IDs: Automatically generated per category for organized book tracking.

Borrow & Return Logic: Validates IDs, enforces borrowing periods, detects overdue returns, and throws meaningful exceptions for invalid operations.

Persistence (Save/Load): Supports file saving and retrieval using Java object serialization, allowing the library state to be stored and restored across sessions.

Custom Exceptions: Handle cases such as empty library, invalid book IDs, already borrowed, or not borrowed books.

Graphical User Interface (Swing): User-friendly interface with buttons to add, borrow, return, remove, and view books, as well as save and load the library.

This project enhanced my skills in Java OOP, backend logic design, error handling, GUI development, and state persistence, while also strengthening my experience in teamwork and collaborative development.

Role Clarification Note

Note: I was responsible for developing the entire backend of the project — including class design, borrowing/returning logic, ID generation, and exception handling — except for the file saving and retrieval functionality, which was implemented by a teammate. The frontend (Swing GUI) was handled by my colleagues.

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
4
تاريخ الإضافة
تاريخ الإنجاز
المهارات