Bamum Project

The Bamum Project website was something I built as a hobby linguist to support the development of the Bamum script. The Bamum script was created by the seventh King Njoya of the Bamum kingdom in Cameroon. As I learned the script, I created this site to document my work and share my findings with others.


Summary

The Bamum Project was a project I started in early 2017. As a student of written and spoken Mandarin Chinese for over 7 years at that time, I returned to the United States with an additional hunger for language learning.

As an African-American, I searched for languages closer to my African heritage. I found out about the Bamum Kingdom and the invention of this script after searching many candidates for my study. The story of King Njoya and the journey of the Bamum script intrigued me, as well as the fact that I found out I was 38% Cameroonian!

Technology

At the time of this project, I had already created a few POC applications using Angular 2 and wanted to try my hand at a real world application using Angular 4. While many of my applications are LAMP stack with MySQL databases, I chose Google Firebase after seeing some real-time data manipulations that were reflected live on applications without having to refresh. That really blew my mind.

Angular 4 is used for the front end, Node.js is the application server and Firebase is used for data storage. Because of Firebase, all of the returned objects were in JSON format.

Notes

I realized that I was going to need to append a search engine functionality to this particular application, so I had to find a way to gracefully index certain column values. The only thing I didn't like about this stack is that I could not perform organic searches out of the box.

Without any additional configurations, Firebase is only able to return direct searches, not embedded searches, such as returning an object with the word "water" somewhere in the middle of the text. Two third-party frameworks were available at the time to perform this, but the R&D time required was too long for the deadline date I set for production.

UPDATE (2018/8/27)

As of August 2018, I have been building smaller projects with Laravel, a PHP MVC framework that works like Express. While you can create full-scale applications using only Laravel, you can also limit its functionality to just middleware, handling routing and API calls, while building the front end with a JavaScript framework like Angular, React or Vue.

I will require full embedded searches for a Bamum language online dictionary, so I will start with Laravel, MySQL and the Blade templating engine, then upgrade Blade to Angular 6 at an appropriate time.