Pocket Archive Road Map

The first goal is to build a working prototype, with all the basic functional components, even if not entirely developed or only usable in a specific development environment, to demonstrate the overall workflows and functionality.

The second step is to produce a basic application, which is fully functional and available for use by the intended audience.

Beyond the basic application, new features and bug fixes will be driven by usage and opportunities for expanding adoption in relevant areas.

❏ = pending
⚒ = in progress
⎊ = blocked or on hold
✓ = complete
✖︎ = not implemented

✓ Prototype (design -> alpha)

  • Configuration + config parser
    • Application
    • Content model
      • Validation rules
  • Submission module
    • SIP building
    • Metadata from LL
    • Brick structures
    • Structure inference
  • HTML generator
    • Index
    • Resource
    • Static assets
  • Non-HTML generators
    • RDF (turtle)
    • Transformers
    • JS search engine index
  • CLI
    • Init archive
    • Deposit
    • Generate site
    • Generate LL (single resource)
    • Generate RDF (single resource)
  • Front end
    • JS search engine
    • Add collections to index page
    • Basic styling
      • Default type icons
  • QA
    • ~50 resource data set

⚒ Basic application (alpha -> beta -> v1.0)

  • ✖︎ Management UI & API
    • ✖︎ Deposit via single tar or zip file submission
  • ✓ submission
    • Watch local folder and trigger submission
      • Option to regenerate site after submission
      • Option to clean up sources & LL on success
    • Submission report
    • Deleting resources
    • Allow updating a file's metadata if it's only present in the archive
    • Protect some properties when creating and/or updating resource
  • ✓ Proper collection handling
    • Dedicated template
    • Link to markdown doc for presentation page
    • Handle artifacts as members
  • ✓ Content model
    • Generate content model documentation (HTML)
    • Content model dump (CLI)
    • Local overrides
  • ✓ Documentation
    • Break main sections off README
    • Watchdog process guide
    • Submission guide
    • Content modeling introduction (archivist)
    • Content model setup manual (sysadmin)
    • Glossary
    • Site generation guide
    • Migrate doc platform to Mkdocs & publish separately
    • Management UI guide
  • ✓ Management UI
    • Submission listing page
    • Sub LL API download URL (+ UI link in sub listing page)
    • Single resource edit page + POST
    • List resources in submission & link to edit page
  • ✓ Testing
    • Unit tests
      • Setup & tear-down
      • Content model
      • Submission
      • Removal
      • Presentation generation
    • Integration
      • Roundtrip submission, download LL, update, resubmission
    • 100 resource data set

  • ⚒ SIP examples
    • Postcard
    • Collection
  • ✓ Presentation
    • ✓ Generate LL for submission
    • ✓ htmlgen option for local file or webserver URL generation
    • ✖︎ Generate RDF (multi) [addressed by dump archive RDF]
    • ✓ Mobile-friendly layout
    • ✓ Improve search indexing
    • ✓ Category browsing
    • ✓ Enhanced styling and access
  • ✓ Preservation
    • Preservation documentation
    • Dump archive RDF
    • Backup full environment (including config)
    • Restore whole archive from RDF & data folder
    • Document full backup & restore
  • ✓ External
    • ⎊ Get fixes in Penlight rock [copied function locally until upstream merged]
    • ⎊ Get updates in ftcsv rock [spun off fork until released]
  • ✓ Multilingual content support
    • Support multiple language entries using RDF lang tag
    • Display ML fields in presentation grouped by language
    • Display language options in admin UI
    • Submit multilang fields in UI
  • ⚒ Bugfixes & adjustments
    • ✓ Members created implicitly create duplicate bricks
    • ✓ Timestamp showing in numeric format in submission list in admin UI
    • ✓ Invalid submitted date in search results
    • ✓ Integration test creates corrupted relationships
    • implicit_bricks test LL doesn't create collection membership
    • ❏ Hard to read & incorrect labels for members in presentation

❏ Post-release wishlist

(will be grouped into separate release plans)

  • Provided checksum verification
  • More test coverage
    • Add to existing modules
    • CM doc generation
    • CLI
    • HTTP server
    • Watchdog
  • Option for archive with simple (brick-less) structures
  • Structured values
  • Rework ML fields as structured
  • Allow numeric comparisons in search (>, <)
  • Implement search facets
  • Schema definition validator
  • Custom templating
  • Full SIP download
  • Generate site for one collection only
  • Auto relationships inference
  • Markdown support for property values
  • Incremental build
  • Rebuild only site assets
  • API documentation (ldoc + separate site)
  • Stream laundry list generation
  • Parallelize presentation generation
  • Parallelize submission