GithubHelp home page GithubHelp logo

kareadita / kavita-webui Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 2.0 17.67 MB

The UI to Kavita.

License: GNU General Public License v3.0

JavaScript 0.22% TypeScript 67.27% HTML 24.46% SCSS 8.05%
kavita manga-reader manga self-hosted kavita-webui

kavita-webui's People

Contributors

asong91 avatar leo2d avatar majora2007 avatar therobbiedavis avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

leo2d branchial

kavita-webui's Issues

Admin: Run ad-hoc library scan

Implement the ability on the admin dashboard to run an ad-hoc scan of libraries to find new/removed series. This would run on all libraries or can specify which one to run against.

Create User & Login

Implement:

  • the ability for a user to log into the application
  • create a new register
  • register an admin user (first time user flow)
  • http interceptor to attach jwt token automatically after login
  • add admin protected route and submodule

Manga Reader

Upon opening a volume or chapter, the underlying file will be presented for reading.

The goal of this US is to provide an experience nearly identical to Ubooquity and enhance UX later.

The user should be able to:

  • Open a manga and be presented with first page
  • Navigate to the next/previous pages by tapping respective sides
  • 2 page panels (1 image scan is both left and right) has ability to be split into 2 pages and ordered correctly
  • Images are pre-loaded into memory to make next page instantaneous. Same with previous pages, we keep a few in memory and roll them out from a pool.
  • Ability to go directly to a page
  • Sync read progress periodically and on close
  • Inform server when a user has a book open and closed, so server resources can be optimized.
  • Provide keyboard shortcuts to make reading easy for PC users and present these shortcuts on overlay

Libraries landing page

Upon landing on the libraries page, a user should be able to see their libraries in card format.

Each library should display a cover image if specified else a default image with the library name. Upon clicking a library will redirect to Library Detail Page.

Setup basic framework

Framework basics should include:

  • Material Design with a custom theme
  • Nav bar
  • Admin module with protected routes (depends on User Register/Login functionality)
  • Error Interceptor with toasts
  • /libraries landing page

Ability to write a review for a Series

On leaving or updating a rating (stars), the user is prompted to write a review (modal).

If the user already has a review written, the review can be edited via icon button next to it and a star update wont trigger the prompt.

BUG: Kingdom of Z doesn't render all images on Fire Tablet.

File: Kingdom of Z v01 (2020) (Digital) (danke-Empire).cbz
Image: Kingdom of Z - c001 (v01) - p000 [Cover] [dig] [An Unexpected Encounter] [Seven Seas] [danke-Empire] {HQ}.jpg

For this manga, many files fail to render in the canvas for the Fire Tablet.

Confirmed via USB Debugging that the image payload comes correctly. Caching works fine, but rendering fails. The 2nd page renders fine though.

General Settings:

Configure Cache Directory
Configure Log Level

I'm not going to allow Cache Directory to be modified by the user. But will display it in General settings.

User Management

This story should allow an admin to:

  • Create new user accounts
  • Delete existing user accounts
  • Visualize last active, when created, name, admin status, libraries they have access to

Library Detail Page

Library Detail page is the view for a given library (library/libraryId). This page should include all the Series included in that library in alphabetical order.

UX wise, each series would make up a card with image or default, title, in-progress/complete/not-read indicator (default all to not-read since those APIs aren't implemented yet).

Upon clicking on a Series, the Series Detail page will load. (library/libraryId/series/seriesId)

Series Detail Page

The series detail page shows metadata around a series/manga like "Black Bullet".

In this first pass, all details from the card on library detail page should be shown front and center.

Below, there should be a grid system of Volume/Chapter cards.

In addition, there should be an edit icon to allow an Admin to overwrite data generated by the system and lock those fields to their overrides.

Library Management

The admin has the ability to:

  • Create a new Library
  • Rename Library
  • Delete a Library
  • Add a library to a user
  • Remove a library from a user
  • Update a library (part of create, should include adding directories) - Note that type cannot change. If we need to change type, just delete and recreate.

Admin: Log Viewer

All log files should be viewable and downloadable via the web ui for admins.

First pass should include the ability to see logs (and refresh to get latest - unless SignalR can be easily implemented) and ability to zip and download since user may be accessing via reverse proxy outside their network.

Second pass would be SignalR for realtime log writing and some formatting for logs, like ERRORs in red, etc.

Unit Testing: Jest Integration

I need to setup and test my components and pages via Jest.

This does not need 100% coverage, but should establish testing and in future releases, testing will be added in.

Update ng-bootstrap

There is a bug in ng-bootstrap that doesn't let webpack properly remove dead code. This causes the bundle size to be the same between using 1 package and 11 packages.

This is a reminder to myself to update once it's fixed.

ng-bootstrap/ng-bootstrap#3914

UX: Mobile phone responsive breakpoints are off

On mobile phone, the search bar is too wide and causing nav bar to push content down and hence everything is off. Nav bar dropdown also is partially offscreen.

Reading manga, the fit to width doesn't allow you to then close the menu.

Image is showing on series detail

BUG: Image distorition

During testing, some images are facing artifacts when very detailed with certain patterns. No compression is done, so this should not happen.

image

Input Validations

All forms need to be refactored to handle backend errors and inline validations (required).

Server went down

When server goes offline, we need to inform the user by redirecting to a route and not loop APIs or get UI in a weird state.

Implement paginated series view with virtutal scroller

I need the ability to paginate series, volumes, chapter apis so as to not bog down the UI. Should use virtual/offscreen DOM pooling and infinite scroll. Should work with future filtering and search.

After a day of experimenting with different libraries, going to switch to using Page based pagination (buttons) AND a jumpbar for easy navigating.

After some performance testing, I am not implementing pagination for volumes due to fact that in worst cases, I'm getting 600ms loads for heavy pages of 200 volume/chapters. I can revisit if users report slowness.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.