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
- Problem Context: When faced with unfamiliar text, the question “what language is this?” becomes critical. The project requirement was to implement a system with at least three replaceable experts, a central blackboard for evidence accumulation and conflict resolution, and support for user feedback loops. The system also needed to include at least one innovative feature.
- Scope: Users can upload images, PDFs, or raw text; the system preprocesses the input, engages three experts (Latin Expert, Arabic Expert, Unique Script Expert), and outputs the most likely language. The results are presented alongside supplementary knowledge cards with facts, distribution data, and example phrases.
Architectural Diagram


Applied Skill
Kotlin
System Architecture
The design integrates three subsystems, with the Blackboard as the core for recognition:
- 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.
- 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.
- 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
- Deliverable 1 (SRS): Defined scope, use cases, business events, and non-functional requirements; established product identity.
Deliverable1_Group5_Revision (1).pdf