jp-reader is a monorepository that includes backends in Go and Flask for processing images using Mokuro. It also provides an interface for uploading manga, viewing processing statuses, and accessing a reader.
The project is designed to aid in learning the Japanese language, facilitate manga reading, and reduce the need to work with the terminal for image processing through Mokuro. Instead, users can interactively upload manga and have free access to reading on their local devices.
Recommend - using Yomichan/Yomitan for more effective reading.
- Manga Uploading: The application allows users to upload manga images, which are processed using the Mokuro library for efficient text recognition.
- Image Processing: Mokuro is used for text recognition and image conversion to facilitate further content handling.
- Message Queues: RabbitMQ provides asynchronous data processing, organizing task queues for managing file uploads and processing.
- Processing Status Tracking: Users can view the status of their uploaded manga, providing insights into the processing progress and enabling a seamless reading experience.
- Go: The primary backend language, handling routing, database interactions, message queue management, and file processing.
- Flask (Python): Used for integrating with Mokuro and executing image processing tasks.
- Mokuro: A tool for text recognition on images, especially for working with vertical text.
- RabbitMQ: Manages tasks and message queues.
- PostgreSQL: The database for storing information about uploads and processing statuses.
- Monorepository: Includes directories for each microservice and shared code.
- Microservices: The Go backend handles file uploading and interaction with RabbitMQ, while the Flask subsystem performs processing with Mokuro.
- Asynchronous Processing: RabbitMQ distributes tasks between services.
- Processing Status Tracking: The system updates database records to show the current processing status of each uploaded manga.
- User Interface: The React-based frontend offers an intuitive interface for users to upload manga images easily, view processing statuses of uploaded files, access a reader for seamless manga viewing, Interact with features that enhance the reading experience.
If you want to use the jp-reader service locally without diving into development, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/your-repo.git cd your-repo
-
Run the entire application with Docker:
In the root directory, run:
docker-compose up
This will start all necessary services, including the Mokuro server, Reader API, PostgreSQL, and RabbitMQ.
-
Run reader app
Navigate to the reader-app folder
cd ./reader-app
Install dependencies
pnpm install
Build
pnpm build
For Access the Reader App
pnpm preview
Navigate to http://localhost:4173/ in your web browser to use the application.
From there, you can upload images, view the processing results and use reader.
For detailed instructions on running and modifying each service, please refer to the respective README files in each service directory:
Mokuro Server: mokuro-server/README.md
Reader API: reader-api/README.md
Reader App: reader-app/README.md
Note: The project is still under development. Please report any issues you encounter.
If you would like to contribute to the project, please follow these steps:
Fork the repository.
Create a new branch for your feature or bugfix.
Make your changes and commit them.
Push your branch and open a pull request.