Skip to content

Repository files navigation

ROtoshokanD 📚

Platform: Android Language: Kotlin UI Framework: Jetpack Compose OCR: Google ML Kit License: MIT

ROtoshokanD is a native Android application built with Kotlin and Jetpack Compose that modernizes your physical library browsing experience.

Using your device's camera, the app captures text layouts from book covers, extracts them into structured individual lines using on-device machine learning (Google ML Kit), and allows you to dynamically select specific lines to compile a clean search query. This query is then sent to a remote, upcycled server endpoint running on an old smartphone to fetch digital eBook links from the Google Books library database.



📸 Demo & Visual Workflow

Here is exactly how the on-device text-tokenization pipeline parses real-world items into clean metadata packages:

Step Action Description Visual Guide
1 Point & Frame The interface utilizes CameraX to frame book covers and draw real-time bounding boxes around text.
2 Map Lines & Select Terms The text lines are mapped into interactive chips; users tap specific terms to dynamically stitch together their search query.
3 Dispatch Payload & Fetch Match The action trigger sends the filtered string to the server, which returns the clean digital record link.

🚀 Key Features

  • Interactive OCR Query Builder: Instead of sending unpolished or chaotic raw text data, the app splits parsed text blocks into clean, horizontal lines. These are fed into a scrollable LazyRow layout as individual SuggestionChip components. You tap exactly which text fragments (like specific Title or Author names) to bundle into your final search query.
  • Low-Latency CameraX Integration: Utilizes androidx.camera with an optimization profile (CAPTURE_MODE_MINIMIZE_LATENCY) bound directly to the Composable component's active lifecycle context.
  • Material Design 3 Dashboard: Designed completely with modern Material 3 assets including a real-time targeting scanner overlay, conditional loading states, and an isolated SelectionContainer layout scope so you can easily copy returned digital URLs.
  • Asynchronous Network Resiliency: Implements non-blocking background queue execution using OkHttpClient to handle payload delivery and catch transmission exceptions smoothly.

🛠️ Tech Stack & Dependencies

Category Technology Used Version / Details
Language Kotlin Modern Android Native
UI Framework Jetpack Compose Material 3 Components
Camera API CameraX v1.3.1 (Core, Camera2, Lifecycle, View)
OCR Engine Google ML Kit v16.0.0 (Text Recognition - Latin)
Networking OkHttp v4.12.0 (Asynchronous Requests)

🔗 Architecture & System Data Flow

graph TD
    A["📱 ROtoshokanD Android App<br>(CameraX Capture + ML Kit OCR)"] -->|1. POST JSON Search Payload| B("🌐 Ngrok Tunnel Gateway")
    B -->|2. Forward Proxy Route| C["🔌 Termux Node.js Server<br>(Hosted on Old Smartphone)"]
    C -->|3. Fetch Book Link Metadata| D["📚 Google Books API"]
    D -->|4. Return Download JSON| C
    C -->|5. Deliver Target URL| A
Loading

🤝 Companion Repository

This frontend repository relies completely on a live, responsive endpoint listening interface managed by your server script setup. To explore the automation terminal scripts, hosting environments, and payload processing routes running on the upcycled device hardware layer, check out the backend workspace:

👉 Termux-Backend-Ngrok-Server-For-Old-Phones


📝 License

Distributed under the MIT License. See the LICENSE file for more details.

About

Auto-Searching E-Books in all of library just with your camera to google books, every knowledge in the world with one click of a button.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages