Skip to content
adembtrPublic

About

Library management system: PostgreSQL schema with functions & triggers + Streamlit/Plotly dashboard (DBMS course project, Sakarya University)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

# Library Management System — PostgreSQL + Streamlit A full library management web app built for the **Database Management Systems** course at Sakarya University: a normalised PostgreSQL schema with stored functions and triggers, sample data, and a Streamlit dashboard with Plotly charts for books, members, loans, authors, publishers and Turkey's 81 provinces. - **Database:** schema (`veritabani_olustur.sql`), functions & triggers (`fonkAndTriger.sql`) and their tests (`trigerAndFonkTest.sql`), sample data (`ornek_veriler.sql`) - **App:** `kutuphane_arayuz.py` — dashboard, CRUD screens, lending/returns, reports (pie/bar/treemap/gauge charts) - **Stack:** Python · Streamlit · pandas · Plotly · psycopg2 · PostgreSQL ```bash pip install -r requirements.txt createdb -U postgres kutuphane_db psql -U postgres -d kutuphane_db -f veritabani_olustur.sql -f fonkAndTriger.sql -f ornek_veriler.sql export PGPASSWORD="your_postgres_password" streamlit run kutuphane_arayuz.py # http://localhost:8501 ``` *Türkçe ayrıntılı açıklama aşağıdadır.* --- # 📚 Kütüphane Yönetim Sistemi - Web Arayüzü ## Özellikler ### 🏠 Dashboard (Ana Sayfa) - Genel istatistikler (Toplam kitap, rafta kitap, aktif üye, ödünç sayısı) - Kategoriye göre kitap dağılımı (Pasta grafik) - Yayınevine göre kitap dağılımı (Bar grafik) - Bölgeye göre üye dağılımı - Üyelik tipine göre dağılım ### 📖 Kitap Yönetimi - **Listeleme:** Tüm kitapları görüntüleme ve arama - **Ekleme:** Yeni kitap ekleme (ISBN, başlık, yayınevi, kategori, basım yılı vb.) - **Güncelleme:** Mevcut kitap bilgilerini düzenleme - **Silme:** Kitap kaydı silme ### 👥 Üye Yönetimi - **Listeleme:** Tüm üyeleri görüntüleme ve arama - **Ekleme:** Yeni üye kaydı (Ad, soyad, TC, üyelik tipi vb.) - **Güncelleme:** Üye bilgilerini düzenleme - **Silme:** Üye kaydı silme ### 🔄 Ödünç İşlemleri - **Listeleme:** Tüm ödünç işlemlerini görüntüleme - **Ödünç Ver:** Üyeye kitap ödünç verme - **İade Al:** Ödünç alınan kitabı iade alma ### 🏙️ Şehir Yönetimi - Türkiye'nin 81 ili için CRUD işlemleri - Nüfus verileri ve bölge bilgileri - Görsel nüfus analizi ### ✍️ Yazar Yönetimi - Yazar listesi ve detayları - Yeni yazar ekleme - Yazar silme ### 🏢 Yayınevi Yönetimi - Yayınevi listesi - Yeni yayınevi ekleme ### 📊 Raporlar ve Grafikler - **Kitap Analizi:** Kategori ve yayınevine göre dağılımlar, basım yılı trendi - **Üye Analizi:** Üyelik tipi ve şehre göre dağılımlar - **Coğrafi Analiz:** Bölgesel dağılımlar, treemap gösterimleri - **Trend Analizi:** Gauge göstergeleri ile anlık durum --- ## Kurulum ### 1. Gerekli Paketleri Yükle ```bash pip install -r requirements.txt ``` Veya tek tek: ```bash pip install streamlit pandas plotly psycopg2-binary ``` ### 2. Veritabanı Bağlantısını Ayarla Bağlantı bilgileri ortam değişkenlerinden okunur (şifre koda yazılmaz): ```bash export PGPASSWORD="postgres_sifreniz" # zorunlu # isteğe bağlı: PGHOST (localhost), PGDATABASE (kutuphane_db), PGUSER (postgres), PGPORT (5432) ``` ### 3. Uygulamayı Çalıştır ```bash streamlit run kutuphane_arayuz.py ``` Uygulama varsayılan olarak `http://localhost:8501` adresinde açılır. --- ## Ekran Görüntüleri ### Dashboard - İstatistik kartları - Interaktif grafikler - Anlık durum göstergeleri ### Tablolar - Sıralanabilir ve filtrelenebilir tablolar - Arama fonksiyonu - Sayfalama ### Formlar - Kullanıcı dostu giriş formları - Doğrulama mesajları - Başarı/hata bildirimleri --- ## Teknik Detaylar ### Kullanılan Teknolojiler - **Python 3.8+** - **Streamlit:** Web arayüzü - **Pandas:** Veri işleme - **Plotly:** İnteraktif grafikler - **psycopg2:** PostgreSQL bağlantısı ### Dosya Yapısı ``` proje/ ├── veritabani_olustur.sql # Tablo oluşturma ├── ornek_veriler.sql # Örnek veri ekleme ├── veritabani.py # Veritabanı sınıfı ├── kutuphane_arayuz.py # Web arayüzü (Streamlit) ├── requirements.txt # Gerekli paketler └── README.md # Bu dosya ``` --- ## Notlar 1. **PostgreSQL** sunucusunun çalıştığından emin ol 2. `kutuphane_db` veritabanının oluşturulmuş olması gerekiyor 3. Tablolar `veritabani_olustur.sql` ile oluşturulmalı 4. Örnek veriler `ornek_veriler.sql` ile eklenebilir --- ## Sorun Giderme ### Bağlantı Hatası ``` Bağlantı hatası: could not connect to server ``` **Çözüm:** PostgreSQL servisinin çalıştığını kontrol et. ### Tablo Bulunamadı ``` relation "kitaplar" does not exist ``` **Çözüm:** `veritabani_olustur.sql` dosyasını Valentina Studio'da çalıştır. ### Streamlit Açılmıyor ```bash # Port meşgulse farklı port kullan: streamlit run kutuphane_arayuz.py --server.port 8502 ``` --- ## İletişim BSM 211 - Veritabanı Yönetim Sistemleri Projesi# VTYSPROJE --- License: [MIT](LICENSE) · Built by [Adem Batur](https://github.com/adembtr)

About

Library management system: PostgreSQL schema with functions & triggers + Streamlit/Plotly dashboard (DBMS course project, Sakarya University)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages