Skip to content

Bibliography Management Web Application #10

@Rindrics

Description

@Rindrics

Summary

Build a web application to manage a single .bib file as a database, enabling book review display across multiple personal blogs.

Motivation

  • Centralize bibliographic data in a single references.bib file
  • Support multiple blogs (Hugo, Astro) with blog-specific metadata
  • Simplify the workflow of adding books from Google Books
  • Maintain data integrity through validation and GitHub-based version control

Requirements

1. Search Window

  • Local search: Search existing entries in references.bib by keyword
  • Google Books search: Display search results in a side overlay
    • Show book cover, title, author, and other metadata
    • "Add to Library" button for each result

2. Add to Library Flow

When user clicks "Add to Library":

  1. Fetch BibTeX data via Google Books API
  2. Generate citation key in author-year-title format
  3. Validate required fields (user-defined)
    • If missing fields: display input form for manual entry
  4. Merge into existing references.bib
  5. Push update to GitHub via GitHub App

3. Custom Metadata Management

  • Maintain a separate JSON file (custom_info.json) for blog-specific metadata
  • Join with references.bib by citation key
  • Features:
    • Unified editing UI (user doesn't need to know about two separate files)
    • Freely add custom fields per blog/site
    • No backfilling: new fields don't propagate to existing records
    • Field name suggestion to prevent typos/inconsistencies

4. Future Extensions

  • Support academic journal searches (e.g., Elsevier-specific journal search)
  • Additional data sources beyond Google Books

Technical Considerations

  • Data storage: File-based (Git) vs Document DB (see ADR-0002)
  • GitHub App integration for authenticated pushes
  • Search indexing strategy for efficient queries
  • Schema validation for BibTeX entries

Acceptance Criteria

  • User can search local library and Google Books
  • User can add books from Google Books with validation
  • User can edit blog-specific metadata through unified UI
  • Changes are automatically pushed to GitHub
  • Field name suggestions work correctly
  • CI passes (format check + lint)

Child Issues

Related

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions