This is the start page of the bot, which clearly states out the commands that can be used for the bot and the functions of each command.
Checking the machine status on level 9
This is the /using command of the bot. It allows the user to select the chosen floor and machine that they would like to use.
This is the summary of the options that the user have chosen in the /using function.
This is the /ping command that the previous user will receive to remind them to collect their laundry.
This is the /checktime command which will return the time remaining .
This is the reminder sent to users once their laundry is done.
Try getting the bot to say this ;)
Our entire team is from Tembusu Residential College. We often experience inconvenience when using the washer and dryer machine as we are not sure whether the machines are used. This causes our residents to waste an immeasurable amount of time constantly checking if the machines are available for use or have completed their cycle. Thus, we thought, "Why not let the users tell others whether the machines are being used?" This will help save our time and energy as assessing the availability of the machines is just a click away! We have witnessed Telegram Bots improving our quality of life, such as the SupperJio, CountMeIn bot and many more. Therefore, we are inspired to create this bot. :)
What it does
In Tembusu, there are 2 levels that contain laundry rooms. The bot provides information on the availability of the washers and dryers on each floor with the /check9 or /check17 function. Since the bot has a user-based system, residents of Tembusu have to use the bot to update the machine status. Residents can decide which washers or dryers they would like to use, update the bot, check the amount of time left and also receive notification when their load is done. Additionally, the userId of the resident on telegram would be tied to the washer/dryer, thus it is possible to send a message via the bot to the previous user to collect their clothes if they did not. Once the time is up, the washer/dryer would be available again.
How I built it
We wrote the bot with Node.js and Telegram-bot API, with the help of Firebase SDK.
Challenges I ran into
A major limitation of this bot is the fact that it is a user-based application. Without accurate users' contribution, the reliability of the information provided by the Telegram Bot may be questionable. We also find it difficult to incentivise more users to make use of the bot, so as to keep the machine status updated and accurate.
Accomplishments that we are proud of
We added a nudge function to nudge the last user of the machine to remind them to remove their clothes quickly. We find that this is a necessary function because some people may not remove their clothes immediately as they are preoccupied with other tasks. When users receive this nudge, they will know that there is someone waiting to use that machine and would go and clear their clothes
What I learned
We learned how to make a working Telegram Bot using node.js, linking to firebase and constantly thinking of better ways to optimise our code.
What's next for Tembusu Laundrobot
A possible improvement will be to install a sensor on the machines that detects whether a washer/dryer is in use. For example, it may be possible to detect a jump in the electricity current when a machine is in use. This will eliminate the need for user input to update the state of the machine, effectively overcoming the challenges stated above. We are aware that there is another group of Tembusians working on using light sensors to detect when the machines are being used, and we are planning to collaborate with them for future developments.
Since there may be a possibility that there are faulty machines, we plan to input a report function into our code, such that users can report to the bot that a certain machine is faulty, so that other users would be aware of the number of machines actually available for use. The report function will probably change the status of the machine to unavailable, until the college is notified and fixes the machine. There will also be an undo button once the machine is fixed, to change the status of the machine back to available for residents' use.