Skip to content

[LMF]: Data modeling and thumbnail view

This is a huge PR for what amounts to a pretty small change in the web UI. Under the hood, there's a lot going on:

  1. This PR updates the database in preparation for most of the rest of the LMF work. We now have support for series, collections, statuses, tags, etc, though they're not exposed yet.
  2. Because the database schema is substantially more complex now, I ended up migrating us from my handwritten SQL queries to kysely. I'm a huge fan of the type-safety we get from this change. I managed to clean up a decent number of our queries, too!
  3. This PR introduces a breaking change in the API — object properties are now camelCase, and the shapes of some data types have changed. I'm going to go back and backport the endpoints that the mobile app uses so that mobile apps don't break, and then hopefully soon we can migrate the mobile apps to this new API.
  4. This adds the beginning of an Open API spec and API explorer for the API at /api/openapi. This isn't yet well typed, but it should become more featureful as @scalar/nextjs-openapi evolves.
  5. We add more metadata that can be read from EPUB files, including publication date, description, and series

In terms of user-facing changes, this really just:

  1. Updates the home page to display a grid of cover images, instead of a list of book detail cards
  2. Adds search and sort fields to the top of the grid
  3. Moves the sync details into the detail page for the book

image.png

Edited by Shane Friedman

Merge request reports

Loading