/discord-standupbot

A generic daily standup bot for Discord

Primary LanguagePythonApache License 2.0Apache-2.0

Discord Standup bot

This generic bot will allow you to enable asynchronous configurable standups in Discord. By initializing the bot in a channel participants will be able to enter their daily/weekly tasks in a web form which will be bundled on a public or private website and posted in the channel in a pinned message.

Current status

  • Boilerplate bot code
  • Basic models
  • Creating new Daily Standup Channels
  • Creating the Admin interface
  • Allowing people to subscribe to the daily of a channel
  • Support multiple standup types with different questions (configurable)
  • Creating the web form on single use URLs
  • Allowing people to submit their report
  • Sending daily reminders
  • Updating and pinning the aggregated daily
  • Historical overview of standups on webpage
  • Implementing a basic design
  • Private mode (only participants get the standup URL)
  • Local timezone support
  • Read only participant support
  • Support for reporting X hours after initial start of standup
  • Support for browsing history in the browser
  • Support for snoozing DM's for X days (vacation mode, !mute_until)
  • Support for reminders when not filled

How to add the bot to your Discord server

Installation

  • Create a .env file with DISCORD_TOKEN=TOKENHERE in it
  • Tweak any settings in standup/settings.py to your needs
  • Run the Django server (python manage.py runserver for a dev server, production deploy with gunicorn or uwsgi on demand)
  • Run the python manage.py run_bot command in a seperate background process (supervisord)
  • Run python manage.py createsuperuser to create a admin user
  • Run python manage.py collectstatic to gather your static files for the website
  • Go to the admin on /admin in your browser, log in and....
    • Update the Site in Sites to match your servers URL
    • Set up the first standup types with questions
  • Start using the bot in Discord using the !newstandup and !addparticipant commands
  • See all available commands by executing !standup, the bot will DM a overview