DEV Community

Alex Ayala
Alex Ayala

Posted on

Natural Language Understanding to Emoji 🗣️

For a good while now, I've been wanting to put together some kind of professional portfolio of my work so I can have something to show for myself and attract new clients. It's not like I can take the code I write for my day job as developer at a private company and publish it to Github 🤷🏾‍♂️. So, I started off with something relatively simple and fun. I came up with an idea of a small web app that uses natural language processing to match an emoji to the strength of an emotional sentiment for a piece of text. I just finished up my initial MVP of the app and you can check it out at nlpmoji.com. Feedback in the comments here is welcome!

I want this project to help me continue to flex and sharpen some of my Java muscles. Although I am a full stack developer, I work on whatever the team needs my help on. These days, that skews more towards front end work for our particular project. I also wanted to subscribe to the idea of writing code daily to become a better developer. Good literary writers are constantly writing, whether they're good ideas or not, to keep those skills sharp.

sharpened pencil

Stack

TypeScript

This is a must have for me whenever I do any front end development for any long lasting web app with more than a few dozen lines of JavaScript. Lot's of developers are still a bit apprehensive about static typing for JS, but once you try it, if you do it right, you won't want to do it any other way.

React

Gotta love my virtual DOM and JSX.

Bootstrap 4

The visual design aspect of web development is probably the least fun piece for me. I leave the styling of core components to folks that actually know what they're doing; so Bootstrap was the easiest choice for me, but I might make some design tweaks later on.

Java + Spring Boot ❤️

It was an absolute pleasure to work with Spring Boot. From easy setup to the documentation and resources for doing pretty much anything.

Infrastructure

Since this was a small hobby project, I wanted to keep costs as low as possible. With the combination of the below Gitlab, Google App Engine, and Firebase, unless I receive a ton of unexpected traffic, I should be able to run my entire application stack for free.

GitLab

I wasn't ready to open source the project just yet, so at this point I was looking for a solution that would give me private repos. Gitlab was also great with the issue management functionality and the nice UI that it provided. I took advantage to create my own Kanban board that I used to track items I wanted to complete for project MVP.

Google App Engine

With a sweet $300 credit for GAE resources for a year, and overall cheaper pricing than AWS, I decided to go with Google for deploying this thing. I'm not married to GAE in any way, and can switch over to another platform service provider without too much fuss.

Firebase

This is a great choice if you just have some small static files you want to host for free.

Services

  • IBM Watson Natural Language Understanding API for the actual NLP heavy lifting. I didn't care much to reinvent the wheel in this part of my app, and they offer a decent number of transactions for free every month.
  • Twitter SDK for Twitter natural language processing. They also have a decent number of transactions you can make for free if you stay under their rate limit (which I make sure to do by implementing Guava's rate limiter in the backend of the app).

Top comments (0)