Have you ever wondered how your name is spelled in Japanese? Then Japanesify is your solution!
( Following information is correct as of 10th May 2016 )
Japanesify was created as a part of Makerthon, a group project week at the Makers Academy ( For those who aren't familiar with the name, Makers Academy is a London-based 12-week programming bootcamp ). How it looked like at the end of the week can be found on group-project-endpoint branch. The version presented here on master branch shows what I have been personally implementing on top of where we left off.
The idea for this project came into my mind when people on the course asked me to spell their names out in Japanese. I knew there are quite a lot of interests in Asian letters in general here in the UK, exemplified by the popularity of clothing brand Superdry (their Japanese is often beyond hilarious, by the way). The level of interests is evident even just by the number of Japanese tattoos I find on streets. So I thought it would be useful to have a web app that does name conversion for you.
I was fortunate to have an amazing group to realise this idea. Huge thanks and credits go to Anne, Caspar, Nick and Rhiannon, who were absolute joys to work with. We together created a cooperative, open and supportive environment, which allowed us to produce something we're so proud of! For more details on the project development, please refer to section 3.
So here it comes! The current version of Japanesify supports 100 syllables as an input and Katakana as an output. I am hoping to keep working on the conversion algorithm to support more names.
Japanesify is available both online and offline. Installation instructions are below.
Visit Japanesify on Heroku
- Fire up the terminal
- Make sure you have installed latest version of Node.js and npm
- Move to a directory where you want to create a clone of the app
- Run
$ git clone https://github.com/MisaOgura/japanesify.git
- Move into japasesify directory with
$ cd japanesify
- Run
$ npm install
- Run
$ bower install
- Sanity check (unit tests)
$ karma start test/karma.conf.js
- Sanity check (e2e tests)
$ protractor test/protractor.conf.js
- Run
$ npm start
- Open up a browser and type
localhost:8080
in the URL bar - TADA! Enjoy converting your name :)
Japanesify is a single-page application written in Javascript and built on AngularJS ( ver 1.5.5 ). We use Karma ( ver 0.13.22 ) for unit testing and Protractor ( ver 3.3.5 ) for end-to-end testing. For the full list of packages used and their versions, please have a look at package.json
and bower.json
located in the root directory.
Main aims we set out from the very beginning of the development were to:
- Implement Agile principles
- Strictly adhere to TDD
- Write a well-refactored clean code
Basically all the ' good stuff ' I've learned at the Makers Academy.
We focused on an active communication and constant feedback loop across the team. We held daily stand-ups in the morning to catchup on what has been & what to be done. We switched pairs at least once a day to make sure everyone had a chance to work on different areas.
One of the best decisions we made was to keep the application simple. Thanks to this, we managed to have a minimum viable product on day 3. This allowed us to spend the last 2 days purely for refactoring our algorithm and separating the logic further to smaller modules.
The conversion of alphabetical names into Katakana happens in two steps. The first and the most difficult step is to break names to correct syllables, for which we created our very own algorithm. As long as we get the first part right, the second part is easy! We go through the list of syllables, mapping each to a corresponding Katakana and stitch them all together.
The algorithm is still at the very early stage of its development and currently supports any syllables included in the names of February & April 2016 cohorts (plus some coaches) at the Makers Academy. My intention is to keep expanding the list so that more people can enjoy. For the full list of currently supported syllables, please refer to public/js/services/conversionConstant.js
.
Another feature I want to implement is to suggest a Katakana version of similar name if the programme fails to recognise one or more syllables. Similar names are often written and pronounced exactly same in Japanese (e.g. Gabriel & Gabrielle, Casper & Kasper & Caspar, Mary & Marie, etc...). So suggesting an alternative might just solve a problem, as users can click the sound icon and listen to the pronounciation at Google Translate.
Following on this line, I'm also going to add a "Report a problem" type of feature. If an alternative suggestion still fails to provide them with a satisfactory result, users can communicate with me, be it by sending an email or filling a form, so that I can improve the algorithm even better!
( Hyperlink to Github profile )