Overall

        **Languify** is a mobile application that identifies the language of a given input — whether text, PDF, or image — and presents the user with additional contextual information such as **language facts, distribution maps, and common phrases**. The system is designed around the **Blackboard architectural style**, where multiple independent experts contribute hypotheses to a shared knowledge space, coordinated by a central controller. To complement this, the system also leverages **Pipe & Filter** for preprocessing and **Repository** for result presentation, ensuring modularity, extensibility, and maintainability.

Project Background and Goals

Architectural Diagram

architectural diagram.png

languifyicon.png

Applied Skill

Kotlin

System Architecture

The design integrates three subsystems, with the Blackboard as the core for recognition:

  1. Reader (Pipe & Filter): Normalizes diverse inputs (image OCR, PDF extraction, plain text) into UTF-8 text via sequential filters, eliminating redundancy and ensuring clean input to the blackboard.
  2. Identifier (Blackboard): Houses the shared workspace where experts propose hypotheses. The Expert Manager acts as the controller, invoking the Latin, Arabic, and Unique Script experts, consolidating their evidence, and making the final decision when conflicts arise.
  3. Display (Repository): Stores and retrieves fact data (language cards, phrases, maps) efficiently for user presentation, ensuring scalability and support for concurrent requests.

The deliverables also documented alternative architecture evaluations (Batch Sequential, Master–Slave, MVC, Repository in place of Blackboard) and provided clear justification for choosing the current hybrid design.

Outcome and Impact

By adopting a Blackboard architecture, Languify effectively supports uncertainty resolution and extensibility (new experts can be added easily). The Pipe & Filter Reader ensures robustness across input formats, while the Repository Display guarantees smooth access to fact data. Together, the system not only answers the basic question — “What language is this?” — but also provides an engaging and educational experience through its knowledge cards and photo-based recognition feature.

Input of Image

https://youtube.com/shorts/tSf3aMRD98w?feature=share

Input of PDF

https://youtube.com/shorts/KJECO2ZA_3o?feature=share

Input of raw text

https://youtube.com/shorts/04St3P-vvZY?feature=share

Development Process

Deliverable 1

Deliverable1_Group5_Revision (1).pdf