Slack bot: drink water reminder

user profile photouser profile photouser profile photo319 developers have joined this project.

What you will practice

You'll practice how to integrate an external API (in this case Slack's API) and how to use Sidekiq to schedule reminder jobs. These skills serve as the basis of production apps that integrate third-party APIs or require background jobs.

Introduction

As many of us Slack on a daily basis for work, school, or personal use, we want to use Slack to remind us to regularly drink water throughout the day.

Depending on your familiarity with Slack's API, Redis, and background jobs, this project may take 8-16 hours. Please know this is just a reference time frame!

Requirements

  • A Slack bot will send messages to remind user to drink water periodically
  • User can choose when the reminder will be triggered
    • Start time (e.g. 9 AM)
    • End time (e.g. 11 PM)
    • Time interval (e.g. every hour)
    • As an example, if the user chooses start time of 9 AM, end time of 11 PM, and a time interval of every hour, they'll receive notifications at 9 AM, 10 AM, 11 AM, and so forth until the last notification of the day at 11 PM.
  • User can specify the content of the reminder message

For an extra challenge: Have the Slack bot interact with the user to take their inputs for the reminder message and times through Slack.
Drink water Slack bot project demo

Suggested Implementation

  • For a Ruby stack, we suggest using Ruby or your chosen Ruby framework, alongside Sidekiq and Redis.
  • For a PHP stack, we suggest using PHP or your chosen PHP framework, alongside Bernard and Redis with PhpRedis.
  • We suggest simulating user input through command line or rails console, if you're using a Ruby on Rails stack.

References

  • Slack API documentation
  • Redis: An open source (BSD licensed), in-memory data structure store
  • Sidekiq: Simple, efficient background processing for Ruby
  • Bernard: A multi-backend PHP library for creating background jobs for later processing
  • PhpRedis: A PHP extension for Redis

Hit a programming wall?
Get help from our mentors

  • Post request free
  • First 15 mins free

Suggested languages and frameworks

RubyPHP

Difficulty

medium

Contributed by

Back-End Developer @ Codementor

Interested in this project?

Shorten your learning curve with on-demand programming help

The awesome set of verified mentors will provide guidance and mentoring help when you are stuck.

Suresh Atta

  • Post request free
  • First 15 mins free
Shorten your learning curve with on-demand programming help

Browse more projects

More coming soon...