Skip to main content
Repositories

Projects

19 repositories under @EvilFlowersCatalog. Filter by role below; each card links to the repo and its issues.

Core platform

Catalog server, portal, viewer, and importer — the components users interact with directly.

Core platformActive

EvilFlowersCatalog

OPDS publication catalog server. Stores publications, exposes them over OPDS 1.2 (Atom) and OPDS 2.0 (JSON), and hosts many libraries from a single install. Django backend, Pydantic schemas, optional Readium LCP lending.

  • OPDS 1.2 and 2.0 endpoints
  • Multi-tenant — separate catalogs, ACLs and themes
  • Borrow / reserve / renew / return via Readium LCP
Python0.13.0 → 0.14.0 (develop)pushed 2026-05-25
Core platformActive

elvira-portal

React + Vite frontend. Catalog browsing, search, user shelves, university SSO. Single codebase, themed per deployment.

  • Per-deployment theming (FIIT STU, Catholic University in Ružomberok)
  • Umami analytics
  • Feature flags
TypeScriptpushed 2026-05-25
Core platformActive

EvilFlowersViewer

Embeddable PDF viewer built on pdf.js. In-document search, citation export (BibTeX/BibLaTeX/RIS), annotation layer, page-range sharing, theming. Ships as an npm package.

  • Citation export — BibTeX, BibLaTeX, RIS
  • Share a page range, not the whole file
  • Annotation and highlight layer
Vuepushed 2026-05-19
Core platformActive

evilflowers-importer

Imports publications from Kramerius and WebDAV sources, then uses an LLM (OpenAI or Ollama) to fill in missing metadata — titles, authors, abstracts. Outputs JSON the catalog can ingest.

Pythonpushed 2025-06-27

Workers

Celery workers behind the broker. Text extraction, OCR, captioning, transcription, semantic search, LCP encryption.

WorkersActive

evilflowers-text-service

Celery worker. Extracts text from PDF publications and emits it back to the catalog for indexing and downstream analysis.

Pythonpushed 2026-05-14
WorkersActive

evilflowers-search-service

Semantic search over the extracted text corpus. Sits behind the catalog search endpoint and consumes output from the text service.

Pythonpushed 2026-05-14
WorkersActive

evilflowers-lcpencrypt-worker

Celery worker wrapping Readium lcpencrypt. AES-256-CBC encryption for EPUB 2/3, PDF, Readium Web Pubs and W3C Audiobooks. Filesystem storage only.

Pythonpushed 2026-03-14
WorkersActive

evilflowers-image-service

Extracts figures from publications and runs captioning (PaliGemma) and classification (ViT / ResNet50). Outputs captions and tags for accessibility and image search.

Pythonpushed 2025-04-27
WorkersActive

evilflowers-equation-service

Detects equations in PDF publications and reconstructs them as LaTeX using the Nougat model.

Pythonpushed 2025-04-27
WorkersActive

evilflowers-video-service

Transcribes audio tracks from video publications using Whisper large-v3. Output is searchable text aligned to timestamps.

Pythonpushed 2025-04-27
WorkersActive

evilflowers-analyzer-service

Pipeline orchestrator. Routes a newly ingested publication to the text, image, equation and video services and aggregates their results.

Pythonpushed 2025-04-27
WorkersActive

evilflowers-ocr-worker

Dockerised Celery worker wrapping ocrmypdf. Adds a searchable text layer to scanned PDFs ingested by the catalog.

Dockerpushed 2024-10-01

Protocol

OpenAPI definition of the EvilFlowers protocol, plus generated client bindings.

ProtocolActive

evilflowers-protocol

OpenAPI 3.1 definition of the EvilFlowers protocol — the wire contract between catalog, portal, importer and third-party clients.

OpenAPIpushed 2026-05-25
ProtocolActive

evilflowers-protocol-python

Python client and Pydantic v2 models generated from the protocol spec.

Pythonpushed 2026-03-31

Student team project

FIIT STU yearly team projects (TP). Student squads contributing features as part of their thesis work.

Student team projectActive

TP2025-T23

FIIT STU Team 23, 2025/26 academic year. Current student squad.

TypeScriptpushed 2026-05-08
Student team projectActive

elvira-ai-agent

In-portal chat assistant. Searches the catalog, summarises publications and answers questions about library holdings.

TypeScriptpushed 2026-02-11
Student team projectMaintenance

evilflowers-text-service-tp2025

Fork of the text service used by the 2024/25 team. Frozen at the version their thesis was defended against.

Pythonpushed 2025-12-21
Student team projectMaintenance

TP2024-T5

FIIT STU Team 5, 2024/25 academic year.

MDXpushed 2025-05-02
Student team projectMaintenance

TP2022-T16

FIIT STU Team 16, 2021/22 academic year. Where ELVIRA started.

TypeScriptpushed 2023-05-13