Do you wish you had an assistant to remind you of pending tasks or probably just a pushing message to make you get back on track? Don't fret, because Producti-Bot is here to save the day.

With technology advancing these days, people prefer messaging to any other form of communication, and that also includes reminders. Producti-Bot implements the concept of using social media (in this case, Discord) as a way to make people aware of their chores/activities that they have to work on while still being able to stay online.

What it does

Producti-Bot is a Discord bot that helps set agendas for organisations of schedules for its users so you never miss a task ever again and improve your productivity! You can use the bot to build your schedule for any particular day consisting of the list of tasks to be done and the corresponding time of the day when they have to be done. The bot shall then sequentially remind you with a DM when its time for each task. You can also mark tasks as completed and gain rewards (in the form of memes) based on timely completion. This could act as motivation to ensure better productivity and beat procrastination.

The main command prompts that have been enabled on it (which have been made accessible by sending an !help command to the bot) are:

1) !task {time (using the 24 hour format)} {task description}helps a user organise their tasks by adding them to a queue.

2) !schedulewhich displays the current list of scheduled tasks and their statuses, completed or not.

3) task statuses — the emojis, checkmarks, cross marks, and an x, signify mark as complete, mark as incomplete and delete respectively.

4) !reminder {time (using the 24 hour format)} {reminder message}sets a reminder for a given time.

5) !timezone {UTC +/- offset}lets the user set their own timezone for task reminders.

N.B.: Only task creators can tweak the to-do lists they create, and completed tasks get rewards (memes) through direct messages to make it enjoyable.

How we built it

Producti-Bot was built using Node.js with the discord.js library- to allow easy access to the Discord API. We used sequelize and sqlite to build and manage the database. We also utilized Linode for the Virtual Private Server (VPS) to host the bot and PM2 to run it so that it could be accessible to anyone from anywhere and also ensuring a seamless experience.

Challenges we ran into

There were plenty of hurdles along the way. We were all working from various time zones so the amount of time we could effectively collaborate was quite less. Firstly, most of us had little to no experience with building a Discord bot. But the docs were really helpful and we were able to get started without much hassles except in case of async await and handling promises. Using sequelize and sqlite was also a bit challenging mainly due to lack of familiarity. We had to ensure that Producti-Bot sent only reminders for tasks that were yet to be completed and had to spent some significant amount of time to implement this. Afterwards, we also implemented a feature for users to set custom time-zones to ensure a smooth running of task reminders via direct messaging.

We also hadn't used Linode before, but in this case too the documentation was incredibly helpful in getting the job done.

Accomplishments that we're proud of

We are proud of have being able to create a Discord bot that could help in real-life situations for not only students but every other individual. We also take pride in the fact that we were able to learn quite a lot this weekend and consider it to be our most valuable takeaway from this hackathon.

From having little to no knowledge about Discord bots to building a fully functional bot and hosting it on a VPS, it had truly been an incredible experience.

What we learned

We improvised our design skills and better understood how to work with APIs (from Discord) and the discord.js library, how to code a bot with JavaScript, how to host it using a VPS on Linode and, how to make a bot perform specific tasks for various individuals.

What's next for Producti-Bot

We hope to provide a system by which a user can set task interval times (that is 5 - 10 minutes, etcetera) and also enable voice based commands. The bot could also provide features that could help block distractions as well. Implementing a much more comprehensive reward system is also on the cards and would greatly enhance the user experience. We also hope to influence other hackers or organizations to implement social media to-do list bots.

Share this project: