So I was laying in my bed late at night, just scrolling through my phone when I got invited via email to take part in the Hackathon. I obviously accepted the invite without any idea as of what to build. So I put my phone away and closed my eyes. Things quickly started to come in my mind. Things I regularly need in my daily life. So I decided to build out of demand. Hence InCompany is created.

What it does

Ok so, normally when I want to order some food via our company restaurant, I will need to call the employee and give my order via phone. The employee is taking all the orders. Passing them to the kitchen and processing the order, payment etc. Payment is done in cash and is tedious. My app InCompany fixes all these issues, orders can now be easily placed via the Facebook Messenger bot and payment will be processed via (by card). The orders are send to the kitchen whenever they are paid for. So no more "fake" orders.

You can order anything you want that they sell in the restaurant. And the process is pretty fast.

How I built it

I wanted to learn node.js. Had no prior experience with node.js but I had JavaScript experience. So I read a bunch of tutorials online about node.js and just started. I started from the bottom. First just a simple reply on any message that is send via the Facebook messenger. Later I started to implement the bot details. Finally I connected the entire node.js application to another application that handles the payments. Also connected the bot to another application for processing orders to the kitchen.

Challenges I ran into

A bunch. Mostly the "learn while you do" was hard. I am new to node.js but I know Java and Python pretty well. So wanting to do the same thing in node.js was not easy, because I did not know how what the right syntax was/is. It was a struggle to go back and forth in Google and my IDEA. Also the "promises" and "async" function in node were strange at first. Lucky I knew how the "observer/observable" design pattern works, so I got around it pretty quickly.

Accomplishments that I'm proud of

That I learned node.js in such a short time. I have done my fair share of API's and server backed programming. But learning node.js was a totally different thing. I am now confident enough to build enterprise applications in node.js.

What I learned

It's cool to see how Facebook has developed their API for messenger. It seems like such a simple thing "messenger". But being able to add an entire backend behind the scenes of messenger is pretty darn impressive. In my case, the entire InCompany backend, the order backend and the payment backend. These are two backends running on Heroku and accessible via the messenger chat and one third party. That's impressive technology that Facebook build and made public for usage!

What's next for InCompany

Well, implement the whole thing into an existing company that is as modern like InCompany is! Who wouldn't want to order food that is delivered to their desk while they are checking Jenkins and fixing code. All for the productivity baby.

Share this project: