Inspiration
As a person who is not very active, sometimes I feel too lazy to go out and buy lunch, and it is not convenient for the friends I know to 'dabao' lunch back for me. Hence, I thought - why not have a telegram bot that links up those who do not mind buying lunch for others for some pocket money, to people like me who are too lazy to go outside?
Although RHApp has a function that allows people to order supper together, it is not used frequently. Some drawbacks of it may be that it is not convenient to access this functionality, and some may find the interface to be a bit cumbersome. By using a Telegram bot, not only is it convenient fo those delivering to be immediately contacted by those interested in deliveries, but the interface is also very easy to navigate with Telegram's keyboard prompts.
What it does
You can select whether you want to be a deliverer or order food. As a deliverer, you can choose the venue that you are ordering from, indicating your order closing time, your latest time of arrival and your delivery fee. As the food orderer, you can choose the locations to order food, the bot will then filter out the deliverers that are available, taking into consideration the closing time, with their corresponding delivery fees. You can then select the deliverer you want, after which an alert will be sent to the deliverer and you can then contact the deliverer.
How we built it
We used python and imported primarily telegram libraries for our code.
Challenges we ran into
This is our first time coding a telegram bot, so it took a while to understand the different telegram functions. Moreover, the example in the hackathon workshop was quite different from our final product, so we got quite stumped while referring to the sample code given as we craft our code. A lot of troubleshooting was done before we realized our understanding of the majority of the telegram functions are wrong, so we rewrote the code from the scratch around 4 hours in, which felt quite demoralizing. However, we were able to pick up our pace after we manage to really understand the logic behind those functions. We are unable to debug the functions that need to be run in fixed time intervals. As a result, the lists cannot be cleared based on closing time. We have what we thought should have been the execution as comments in the programme.
Accomplishments that we're proud of
Although the task was daunting, we systematically wrote small parts of the code and debugged them after adding a small chunk at a time. Without doing so, we most definitely would have been lost in the various possible ways why our code would not work. We are also quite proud of how we brainstormed many possible hypotheses as to why our code did not work and systematically test them out which allowed us to spot bugs even without a full understanding of our functions.
We also brainstormed a lot throughout and came up with many ideas to improve our bot that we did not think of initially. Most of the features of this bot, such as admin access for easier general access and /remove that enable people to remove themselves, are quality-of-life features that we added much later into the coding. We are proud of how much more user-friendly our code got and the substantial expansion in the capabilities of our bot compared to what we initially imagined.
What we learned
We grew more confident about our learning skills and coding abilities. Bugs that felt impossible were eventually solved with good analytical skills and patience, while ideas that initially felt daunting were implemented exactly as envisioned with enough time and cross-referencing enough websites. Although we are not completely sure that we understood everything we used, the fact that we manage to produce this bot even then is a good confidence booster. With this experience, we feel more comfortable exploring uncharted territories alone beyond the scope provided by SOC, as we now have more faith in our learning and problem-solving skills to allow us to succeed in novel projects through only self-learning.
What's next for Student DeliveRHy
Fixing the bug for clearing lists after closing time for deliverers will be a top priority.
This Telegram bot is made while storing input data in local storage, so whenever the code is ran, the deliverers' list is reset. Our bot is made with the vision of the telegram bot storing its data in Telegram servers in mind, and this bot is a trial product for what this idea could have been.
Functionality can be added to filter deliverers whose delivery charge is below a certain amount. This would be an excellent quality-of-life addition that would not be difficult to implement.
The locations can be expanded. Should there be high popularity, possibilities of including more eateries such as Ameens, Niqqis or McDonalds can be considered. People who do not mind waiting a bit longer can now get supper delivery without paying high delivery fees because they are buying alone.
Log in or sign up for Devpost to join the conversation.