Skip to content

IRK-23/algeo2-velociraptor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦖 VeloLib - Eigen Pustaka

Sistem Temu Balik Informasi Perpustakaan Digital Berbasis Aljabar Linier

Python React Docker Status

VeloLib adalah aplikasi web perpustakaan digital yang menerapkan konsep Aljabar Linier dan Geometri (Singular Value Decomposition) untuk fitur pencarian gambar dan rekomendasi buku. Proyek ini dibuat untuk memenuhi Tugas Besar 2 IF2123 Aljabar Linier dan Geometri 2025/2026.


Fitur Utama

1. Pencarian Judul (Text Search)

Mencari buku berdasarkan judul menggunakan algoritma Substring Matching yang cepat dan case-insensitive.

2. Pencarian Gambar (Image Retrieval)

Mengunggah gambar sampul buku untuk mencari buku yang memiliki kemiripan visual.

  • Metode: Principal Component Analysis (PCA).
  • Algoritma: Reduksi dimensi warna menggunakan SVD manual dan pengukuran kemiripan menggunakan Euclidean Distance.

3. Rekomendasi Semantik (Book Recommendation)

Fitur pada halaman detail buku yang merekomendasikan buku lain berdasarkan kemiripan konten/isi cerita.

  • Metode: Latent Semantic Analysis (LSA).
  • Algoritma: TF-IDF (dengan pruning & smart filtering) + SVD manual + Cosine Similarity.

Teknologi yang Digunakan

Backend

  • Bahasa: Python 3.9
  • Framework: Flask
  • Library Matematika: NumPy (Hanya untuk struktur array & operasi dasar).
  • Library Citra: OpenCV (Hanya untuk membaca & grayscale).
  • Keterangan: Seluruh perhitungan Eigenvalue, Eigenvector, dan SVD diimplementasikan dari nol (scratch) menggunakan metode Power Iteration dan Deflation.

Frontend

  • Framework: React (Vite)
  • Bahasa: TypeScript
  • Styling: CSS Modern (Glassmorphism & Responsive Design)

Deployment

  • Containerization: Docker & Docker Compose

Cara Menjalankan Program

Pastikan Anda telah mengunduh dataset dan menyimpannya dalam struktur berikut di root directory: /data /covers (Berisi file .jpg) /txt (Berisi file .txt) mapper.json

Cara 1: Menggunakan Docker (Direkomendasikan)

Ini adalah cara termudah dan tercepat. Pastikan Docker Desktop sudah berjalan.

  1. Clone repositori ini.
  2. Buka terminal di root folder.
  3. Jalankan perintah:
    docker compose up --build
  4. Tunggu proses build dan warming up backend (sekitar 1-2 menit untuk perhitungan SVD awal).
  5. Buka browser dan akses: http://localhost:5173

Cara 2: Menjalankan Secara Manual (Local)

1. Setup Backend:

cd src/backend
python -m venv venv
# Windows:
venv\Scripts\activate
# Mac/Linux:
source venv/bin/activate

pip install -r requirements.txt
python app.py

2. Setup Frontend: Buka terminal baru.

cd src/frontend
npm install
npm run dev

Struktur Folder

algeo2-velociraptor/ ├── data/ # Dataset (Dihiraukan oleh git) ├── src/ │ ├── backend/ │ │ ├── modules/ # Implementasi Matematika (SVD, TF-IDF) │ │ ├── utils/ # Pembaca File (Image/Text Reader) │ │ ├── app.py # Server Flask utama │ │ └── Dockerfile │ └── frontend/ │ ├── src/ │ │ ├── components/ # Komponen UI (Navbar, Card) │ │ ├── pages/ # Halaman (Home, Detail) │ │ └── services/ # Koneksi API │ └── Dockerfile ├── docker-compose.yml # Orkestrator Docker └── README.md

Penulis

Dibuat untuk memenuhi Tugas Besar Aljabar Linier dan Geometri (IF2123).

Fabian Radenta Bangun 13522105 Ahmad Wafi Idzharulhaqq 13523131 Daffa Muttaqin Tetaputra 13524108

About

algeo25-algeo2-tb2-template created by GitHub Classroom

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors