Imagine ordering food by typing something like this into your terminal :
./feedme -f sandwich
In case someone wanted to build such kind of tool what technologies/tools, setup, architecture etc would be needed? Sounds like a cool idea and I am interested in discussing feasibility, technical challenges etc regarding this.
I would love to know about the architecture, challenges, techniques that come to your mind and am happy to give my inputs and ideas as well.
Most of the comments are primary talking about how to achieve this when there is an existing service. But someone could really build this kind of terminal utility as well as a backend. This service should target developers first (because we are most comfortable with the terminal).
When someone wants to order an item they could simply pass various params to specify details about the order as @GriessbreiLP mentioned. If you are not aware of various available options, the tool can show all the details in help (like ./feedme --help). You can then make a CURL request to your backend and place the order. The users can even see a progress bar in the terminal to track status. This will be super cool for developers.
It can be written in Ruby or Python because most developers use MacBooks which has these languages preinstalled.
We don't need only this, but an in-game food delivery service also!
Imagine you are playing, like every day, 12 hours on the row world of warcraft. You feel like your stomach starts to eat itself so you think "Bro, why don't we order something neat?"...
And now comes the handy part, instead of looking hours for the right delivery service and hope that he has still open, you just go to an in-game vendor, where you can order your food. If you have a real adress on your account, it will automatically be delivered to you!
So now honestly. To order food like it's no big deal would be a great idea. Right now, it is always a pain to look for a delivery restaurant, which is open, which has the right food and which doesn't taste like rotten butt.
But the problem is, when you just order it like ./feedme -f pizza -g ["Salami", "Corn", "extra cheese"] you don't know where you will order it. So you have to use an extra parameter like -sv "papa pizza", maybe you need a specific time, so you need -t 7200. Also how do you tell where you live? -h "fantasy street 421" and for sure your name -u "GriessbreiLP". So, you will come out with something like
./feedme -f "pizza" -g ["salami", "corn", "extra cheese"] -sv "papa pizza" -t 7200 -h "fantasy street 421" -u GriessbreiLP
And honestly, that doesn't look so tasty...
If you want to build this as a cool tool for your learning, yes. But if you want to build a business around it, I don't think so. Everyone is moving to mobile.
Tool of choice: Python or Go. Why? Because I know them :-). Choose a tool that you want to learn.
How to go about it: Since there will be an offline delivery, it would be better to hook into an API of a food delivery service to retrieve menu, and order processing.
I'd recommend using Ruby and messing with that first. Ruby is a great language for making command line tools. You also have tons of gems available to you so you can make a quick prototype in a few hours!
What i noticed is, it will be tough to inform yourself, what kind of meals are available. I mean, you have to do something like
and there is then listed what ingredients are used, like food colors etc. And that could be really annoying. :/
Jan Vladimir Mostert
Idea Incubator
The best kind of interface for achieving this is called takeaways, the telephone / email is the implementation for that interface and dialing a number on the telephone to place an order is called instantiating the takeaway delivery process - so in other words, phoning a company to deliver you pizza is probably easier than building a command line app.
What is your command line app going to look like?
./feedme --food=pizza --company=pizzahut --toppings=[tomato, parsley] --deliverat=[123 Abc Street, ......] --creditcardnumber=4000000000000002 --creditcardexpiry=1214 --phonenumber=0842573511
This will send an email to somebody sitting next to a phone who make the phone call, version 1 done and dusted.
Version2 you'll need to integrate into all these takeaway places, each who will have somebody sitting there and waiting for emails / feedme-requests so they can give instructions to their staff on the incoming orders. Otherwise you need to integrate into delivery companies who will then make the phone call to place the order.
These guys are already doing it and turned it into a business: en.wikipedia.org/wiki/Mr._Delivery