Table of Contents
Preview

Aklish is a web app that crowdsources Aklanon-English translations. The platform lets users contribute translations with quality control (dictionaries and spellcheckers) and engagement (leaderboards and word games) strategies.

This project is currently inactive since I’m working on a similar project called Kulasisi where it covers all Philippine languages, not just Aklanon.

Why I built it

Aklish was initially developed as a SHS Research Capstone Project to help preserve and enrich the Aklanon language, my mother tongue, which is classified as a Low-resource language (LRL).1 I built it to:

  • Expand language resources: create reliable, accessible resources to help grow the language.
  • Encourage community collaboration: let native speakers and learners take part in translating and improving content.
  • Support learning: make it easier for people to practice and learn the language.

How it turned out

The interface

Looking back, now that I’ve used TailwindCSS and modern UI libraries, it’s kind of hard to remember how I built this interface with just Django templates and Bootstrap. The interface turned out to be user-friendly and easy to navigate. It’s also responsive and has dark mode for better accessibility.

Homepage Dark
Homepage

Bidirectional input of translations

Users can enter phrases in either Aklanon or English, and provide multiple translations in the opposite language.

Add EntryAdd Translation

Users can easily explore entries through a well-organized interface with proper pagination. They can also quickly find specific entries with options to filter and sort results.

Browse EntriesSearch Entries

Voting system

Users can evaluate translations by upvoting (+1) or downvoting (-1) them. This helps build consensus on the best translations, making it easier for users to know which ones to trust.

Voting System

Aklanon-English dictionary

Provides users with words and their definitions, examples, related terms, and other properties to help in maintaining consistency in their translations. The dictionaries were created by parsing the XML version of the GCIDE dictionary and a PDF Aklanon dictionary.

Dictionary CatalogDictionary Entry

Aklanon and English proofreader (spellchecker)

Highlights potential errors in translations, such as misspellings, by referencing the dictionary. It suggests likely corrections, which users can choose to accept or ignore. The spellchecker uses the SymSpellPy library, along with LemmInlect and AklStemmer libraries for English and Aklanon word stemming to under the hood.

Proofreader

Points (reputation) system

A reputation-based points system, similar to Stack Overflow’s, rewards active contributors and promotes accountability within the community.

Reputation Guide

Leaderboard system

Recognizes active participants by showcasing top contributors, ranked by their reputation in the points system.

Leaderboard

Games

Interactive games provide a fun and engaging way to learn and practice both Aklanon and English.

Wordle

A Wordle-inspired game where users guess words in either language to expand their vocabulary through repeated exposure.

Wordle

Synonym-antonym match

A synonym-antonym matching game that helps users understand relationships between words.

Match

Authentication

Users can create accounts, log in, log out, and manage their contributions securely. The registration form ensures that users provide a unique username and a strong password.

LoginRegister

How I built it

Technologies I used

Front-EndJS ES14, React 18, HTML 5, CSS 4, SASS 1, Bootstrap 5
Back-EndPython 3, Django 5
DatabaseMySQL
APIsREST
TestingPyTest
DeploymentRailway

How well it worked

Through a comprehensive assessment of its functionality, performance, accessibility, adherence to modern standards (AMS), search engine optimization (SEO), usability, and engagement, Aklish was determined to be functional (82.01%), perform well (81.33%), be accessible (96.79%), adhere to modern standards (100%), be search engine optimized (99.21%), be usable (61.29%), and relatively low in engagement based on several metrics.2

What I learned

Working on Aklish taught me how to build a full-stack app from scratch and actually ship it. It’s the first web app I’ve built that I deployed to production and have users to test it with. I got better at managing a large codebase and debugging the kinds of issues that only show up in production.

Aside from the statistical results, I also noticed that users were more interested in the games than the actual idea of “contributing translations”. It taught me that building a community for this kind of platform is harder than it looks. It’s not just putting a CRUD interface out there and hoping for people to just contribute.

Finally, building tools for a low-resource language like Aklanon made it clear how much infrastructure is missing. Even simple things like spellcheckers or dictionaries took a lot of manual setup. I wouldn’t call it clean work, but it gave me a clearer idea of what needs to exist for these kind of languages to have a real digital presence.


Footnotes

  1. A Low-resource Language (LRL) refers to a language with limited available digital data and tools, making it difficult to support with modern computational methods.

  2. Based on the evaluation and results from Aklish: Developing and Evaluating a Web Application for Crowdsourcing Aklanon-English Translations (Maagma & Salido, 2024), conducted for Research Capstone Project and Inquiries, Investigation, and Immersion