How coreyarnold/libraryn works
Family Library is a self-hosted household collection app: a family member scans a book barcode in the browser, the server looks up metadata, and the member can add the result to their collection. It also supports DVDs, family accounts, collection browsing, condition and location tracking, loans, scan auditing, and Goodreads synchronization. The graph follows the documented book-scan flow and sampled server calls; some DVD and background-worker details are only partially excerpted, so unsampled relationships are omitted.
Main entry points: models.py Catalog and user records · retry_worker.py Scan retry worker · api.py Book API · dvd_api.py DVD API
Components 21
Web application
- Book scanner UI
app/static/js/scanner.js - DVD scanner UI
app/static/js/dvd-scanner.js
Book collection
- Book pages
app/routes/books.py - Book API
app/routes/api.py - Book metadata sources
- Goodreads sync
app/routes/api.py
Accounts and lending
- Login and sessions
app/routes/auth.py - User management
app/routes/users.py - Book loans
app/routes/api.py - DVD loans
app/routes/dvd_api.py
Shared services
- Application setup
app/__init__.py - Configuration
app/config.py - Flask extensions
app/extensions.py - Catalog and user records
app/models.py - Cover image storage
app/covers.py - Scan retry worker
app/retry_worker.py - Configured database
Other components
- Family member
Connections 30
- Family member → Book scanner UI: scans ISBN
README.md - Book scanner UI → Book API: requests lookup and add
README.md - Book API → Book metadata sources: looks up metadata
app/routes/api.py - Book API → Catalog and user records: reads and saves
app/routes/api.py - Book pages → Catalog and user records: queries collections
app/routes/books.py - Family member → DVD scanner UI: scans UPC
- DVD scanner UI → DVD API: submits scans
- DVD API → DVD metadata sources: looks up metadata
app/routes/dvd_api.py - DVD API → Catalog and user records: reads and saves
app/routes/dvd_api.py - DVD pages → Catalog and user records: queries collections
app/routes/dvds.py - Family member → Login and sessions: authenticates
README.md - Login and sessions → Catalog and user records: loads user
app/routes/auth.py - User management → Catalog and user records: manages users
app/routes/users.py - Book loans → Catalog and user records: updates loans
app/routes/api.py - DVD loans → Catalog and user records: updates loans
app/routes/dvd_api.py - Family member → Goodreads sync: connects account
- Login and sessions → Goodreads sync: starts sync
app/routes/auth.py - Goodreads sync → Catalog and user records: updates reading status
app/routes/api.py - Application setup → Configuration: loads settings
app/__init__.py - Application setup → Flask extensions: initializes extensions
app/__init__.py - Application setup → Configured database: creates tables
app/__init__.py - Flask extensions → Configured database: provides ORM
app/extensions.py - Catalog and user records → Flask extensions: defines ORM models
app/models.py - Book API → Cover image storage: stores covers
app/routes/api.py - DVD API → Cover image storage: stores covers
app/routes/dvd_api.py - Application setup → Scan retry worker: starts worker
app/__init__.py - Scan retry worker → Book API: retries book lookups
app/retry_worker.py - Scan retry worker → DVD API: retries DVD lookups
app/retry_worker.py - Scan retry worker → Catalog and user records: updates retry records
app/retry_worker.py - Scan retry worker → Cover image storage: stores covers
app/retry_worker.py