Learn Shandong Hua

Learn Shandong Hua is a project I embarked on as I extended my learning of the Chinese language past Mandarin. I noticed that as a complementary Chinese dialect, without the proper romanized characters, I was unable to properly pronounce the Shandong vocabulary. I created my own romanized version of Shandong, which I call "Luyin". This site will serve as a platform for English-speakers to learn the Shandong dialect.


Learn Shandong Hua is a platfrom for students of the Chinese language that would like to study the Shandong dialect. Shandong is a province in North East China. In order to better understand the pronunciation of the Shandong dialect, I have created a romanized version of the Shandong dialect called "Luyin".

This language platform is currently expanding to provide phrases, lessons and an interactive dictionary, which will allow the user to search for terms based on their English, Mandarin or Chinese script counterparts.


This application was built using Angular 4 and designed using a complete component-based architecture. The HttpClient module was used to consume all endpoints that were generated by using the Google Firebase real-time database. One of the amazing features of Google's Firebase database is real-time change of data without having to refresh the page where the data is presented.

Learn Shandong Hua was developed around the same time that I developed the Bamum Project. For both sites, 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.


Like the Bamum Project, 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 Google Firebase was that I could not perform embedded 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 (including Elasticsearch) 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.

UPDATE (2018/9/1)

2019 will see the creation of two sub-projects for Learn Shandong Hua: Project Adam and Project Eve.

Along with the word translations, students will also be provided with spoken versions of each word. This will include both male and female voices. I have commissioned two native Shandong dialect speakers—one male and one female—to record the male and female vocabularly and phrases separately.

I will most likely utilize Amazon Web Services cloud for storage with this project.