KÜYS - Özgür ve Açık Kaynak Kodlu Kütüphane Yönetim Sistemi

Kernelginar

Megapat
Sosyal Tayfı
Katılım
15 Nisan 2021
Mesajlar
6.837
Makaleler
19
Çözümler
234
Daha fazla  
Sistem Özellikleri
Laptop: ASUS TUF Gaming F15 FX506LHB-HN323
İşlemci: i5-10300H
Ekran kartı: GTX 1650
RAM: 8 GB 3200 MHz DDR4 Laptop
Dahili Depolama: Intel SSDPEKNU512GZ
Cinsiyet
Erkek
Meslek
Öğrenci
Selam.

Üzerinde 1-2 haftadır uğraştığım projemi sonunda bitirdim. Yeni geliştirmeler ve özellikler eklenmeye devam edecek. Bu konuyu da forum halkından öneriler, eleştiriler almak ve sürüm notlarını paylaşmak için açtım. Yaptığınız önerileri ve eleştirileri takip ediyor olacağım.

Projenin GitHub sayfası:


Hazırsanız yazılımı tanıtmaya başlayayım.

Lisans​

Bu yazılım, GPLv2 lisansı altında yayımlanmıştır. Peki nedir bu lisansın özellikleri? Hemen bakalım.

Kısaca bu lisans size şu hakları verir:
  • Programın kaynak kodunu görüntüleyebilirsiniz.
  • Programın kaynak kodunu alıp değiştirebilirsiniz.
  • Kaynak kodunu alıp değiştirdiğiniz yazılımı dağıtabilirsiniz, yayınlayabilirsiniz.
  • Programı ticari amaçlarınız için kullanabilirsiniz.
Tabii bunları gerçekleştirmek için uygulamanız gereken şu koşullar var:
  • Kodun değiştirilip dağıtılması hâlinde, programın geliştiricisinin programda bahsedilmesi gerekir.
  • Dağıtacağınız program yine GPL lisansı ile lisanslanmış olmalı. Yani programınızı kapalı kaynak hâline getiremezsiniz. Özgür ve açık kaynak olarak sunmaya devam etmeniz gerekir.
  • Dağıtacağınız program açık kaynaklı olmalı ve herkes tarafından ulaşılabilir olmalı. Diğer insanların programınızı dağıtmasına izin vermelisiniz.
  • Dağıtacağınız program yukarıda bahsettiğim üzere GPL lisansı ile lisanslanmış olmalı.
Bu lisans şu kısıtlamaları getirir:
  • Bu programın yapımcısı, olası bir kullanım sonucu oluşacak durumdan sorumlu değildir.
  • Bu programın geliştirilmesi garanti edilmez.

Kısaca uygulama tanıtımı​

Bu uygulama tamamen Python dili ile yazılmıştır. PyQt5 ve SQLite3 modülleri kullanılarak geliştirilmiştir.
PyQt5, Qt arayüzüne erişmek için kullanılan bir protokoldür.
SQLite3 ise SQL kodlarını çalıştırabildiğimiz, veri tabanında sorgulama yapabildiğimiz bir modül.

Uygulama yazılırken, kaynak kod olabildiğince okunaklı yazılmıştır. Bu sayede siz de girip kodu görüntülerken neyin ne olduğunu anlayabilirsiniz (Bu işlere az çok hâkim biriyseniz).

Uygulama içerisinde temel olan bütün işlevler var. Kısaca göz atalım:

  • Kayıt Listesi
  • Kayıt Listesi içinde arama yapabilmek
  • Kayıt Eklemek
  • Kayıt Güncellemek
  • Kayıt Silmek

  • Kitap Listesi
  • Kitap Listesi içinde arama yapabilmek
  • Kitap Eklemek
  • Kitap Güncellemek
  • Kitap Silmek

Peki bunlar ne işe yarıyor?
Kayıtlar ve Kitaplar, veri tabanı içerisinde iki ayrı tablo içerisinde tutuluyor. Bu sayede veri tabanları birbirine karışmamış oluyor.

Kayıt listesine, kitap alan öğrenciler kaydediliyor. Bu da kitapların kontrolünü yapabilmemizi sağlıyor. kutuphane tablosu içinde bulunan kayıtlar şu sütunlardan oluşuyor:

  • ID
  • İsim - Soyisim
  • Sınıf
  • Numara
  • Kitap İsmi
  • Kitap Yazarı
  • Kitaplık
  • Kitap Rafı
  • Kitap Alınma Tarihi
  • Kitap Son Teslim Tarihi
  • Kitap Teslim Durumu

Arayüz üzerinden bunların durumunu kontrol edebiliyorsunuz.

Kitap listesi de aynı şekilde kütüphanenizde bulunan kitapları veri tabanına kaydedebileceğiniz bir tablo. Bu sayede hangi kitap hangi kitaplık ve rafta bunu görebiliyor olacaksınız. kitaplar tablosu içinde bulunan kayıtlar şu sütunlardan oluşuyor:

  • ID
  • Kitap İsmi
  • Kitap Yazarı
  • Kitaplık
  • Kitap Rafı



Uygulamanın arayüzü ve kullanımı​

Uygulamanın genel görünümü

Screenshot from 2023-05-27 22-22-02.png




Kayıt kısmıyla ilgili arayüzler

Screenshot from 2023-05-27 22-22-24.png


Screenshot from 2023-05-27 22-22-45.png


Screenshot from 2023-05-27 22-23-00.png


Screenshot from 2023-05-27 22-23-19.png


Screenshot from 2023-05-27 22-23-31.png




Kitap kısmıyla ilgili arayüzler

Screenshot from 2023-05-27 22-27-03.png


Screenshot from 2023-05-27 22-27-25.png


Screenshot from 2023-05-27 22-27-38.png


Screenshot from 2023-05-27 22-27-49.png




Kayıt ve Kitap ekleme işlemi yapmak​

Kayıt ve Kitap eklerken asıl dikkat etmeniz gereken şey ID değeridir. Aynı ID değerine sahip iki kayıt girmemeniz sizin yararınıza olur. Eğer veri tabanında sıralı ID kayıtları bozulursa kayıt ve kitap güncelle kısımlarından, ilk önce ilk ID değeri ardından da değiştirilmek istenen ID değeri girilir ve ID değeri değiştirilmiş olur.

ID güncelleme işlemi yapıldığında, ilk başta girdiğiniz ID ve değiştirmek istediğiniz ID satırı silinir arayüz üzerinde. Bunun nedeni, bir ID değerini değiştirdiğinizde artık değiştirdiğiniz ID değerine sahip kayıt aynı ID değerine sahip değil. Bundan ötürü yapacağınız değişiklikler asla uygulanmayacak veya program hata verecektir.

Kayıt ve Kitap ekleme işleminde, arayüz üzerinde yazan yönergeleri takip etmeniz durumunda doğru bir kayıt veya kitap ekleme işlemi yapmış olacaksınız.

Örnek üzerinden gidelim.

Screenshot from 2023-05-27 22-37-58.png


Burada bir kaydımız var. Burada ID güncelleme işlemi yapalım.

Screenshot from 2023-05-27 22-38-32.png


Yukarıya önce değiştirmek istediğimiz kaydın ID değerini giriyoruz. Ardından yapmak istediğimiz ID değerini aşağıdaki ID kısmına yazıp "ID Güncelle" butonuna basıp ID değerini güncelliyoruz.

Screenshot from 2023-05-27 22-40-57.png


Bastım ve iki satır da varsayılan durumlarına döndü. Listeye bakalım.

Screenshot from 2023-05-27 22-41-36.png


Gördüğünüz gibi ID değeri değişti. Diğer güncelleme işlemleri de bu şekilde.

Kayıt ve Kitap silme işlemi için yine ID değerini kullanıyoruz. Bu işlem de oldukça basit.
Kayıt ve Kitap listesinde arama olayına gelelim.

Screenshot from 2023-05-27 22-43-50.png


Belli başlı arama butonları var gördüğünüz gibi ve hepsi aynı yerden aranacak sorguyu alıp arama yapıyor.
Arama yaparken sadece ilk 1-2-3-4 harfi bile doğru yazsanız aramanız size sonuç verecektir. Büyük - Küçük harf arama sonuçlarını etkilemiyor bu arada. İstediğiniz büyüklükte yazabilirsiniz.

Screenshot from 2023-05-27 22-47-14.png


Gördüğünüz gibi absürt bir şekilde yazmama rağmen sonuç verdi.



Kimler, ne amaçla kullanabilir?​

Bu programı başta kurumsal kütüphaneler, okul kütüphaneleri gibi yerler kullanabilir. Programda herhangi bir güvenlik katmanı olmadığından burada verilerin güvenliği kullanan kişilerin elinde. Bunun için belki ileride bir çalışma yapılabilir.

Ben bu programı kendi okulumda kullanmak için geliştirdim fakat daha sonrasında bunu topluma açık olarak paylaşma kararı aldım. Böylece herhangi bir ücret ödemeden, güvenilir bir şekilde bu programdan faydalanabileceksiniz.



Programın geliştirilme motivasyonu​


Piyasada bulunan Kütüphane Yönetim Sistemi uygulamalarının çoğu Web tabanlı. Yani site ile işlemler hallediliyor. Ben bunu masaüstüne taşımayı hedefledim ve en sonunda da yaptım.

Ayrıca bu proje, kendimi geliştirmek amacıyla hazırlamış olduğum bir proje. Bu proje sayesinde PyQt5 ile grafik arayüze sahip programlar hazırlama ve SQL öğrenmiş oldum.



Son​

Yazının başında da dediğim gibi sizlerden öneriler, eleştiriler istiyorum. Yapıcı olan her türlü öneri ve eleştiriye açığım.
GitHub üzerinden projenin gelişmesine siz de katkıda bulunabilirsiniz.

Büyük güncellemeler geldikçe bu konu içerisinde sürüm notları yayınlanacaktır. İlk sürüme ait herhangi bir sürüm notu bulunmamaktadır.
 
Gerçekten güzel bir program gibi duruyor. Elinize sağlık. Keşke okula önerebilsem...
 

Geri
Yukarı