Skip to content

Blinky is a Discord bot designed to make daily tasks more interactive and fun for teams. It encourages team members to submit their daily to-dos, track their progress, and earn rewards like kudos and streaks. No more boring to-do lists! Blinky gamifies productivity in your Discord workspace. ๐ŸŽฎโœจ

Notifications You must be signed in to change notification settings

hridesh-net/Blinky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

header

Blinky - The Interactive Team To-Do Bot ๐ŸŽฏ

Blinky is a Discord bot designed to make daily tasks more interactive and fun for teams. It encourages team members to submit their daily to-dos, track their progress, and earn rewards like kudos and streaks. No more boring to-do lists! Blinky gamifies productivity in your Discord workspace. ๐ŸŽฎโœจ

๐ŸŒŸ Features

  • ๐Ÿ•’ Automated Daily Reminders - Sends scheduled reminders at 6:30 PM IST (configurable).
  • โœ… To-Do Submissions - Users submit their daily tasks through a modal input.
  • ๐Ÿ“Œ Team-Based Organization - Automatically assigns users to teams based on Discord channels.
  • ๐Ÿ† Streaks & Kudos - Tracks engagement with streak counters and kudos rewards.
  • ๐Ÿ“ก FastAPI Backend - Built on FastAPI for seamless API interactions.
  • โšก AWS Lambda Integration - Handles scheduled reminders efficiently.
  • ๐Ÿ”„ Database Persistence - Stores users, teams, and tasks in PostgreSQL using SQLAlchemy.
  • ๐Ÿ“Š Real-Time Updates - To-Do lists are posted in team channels with avatars & stats.

๐Ÿš€ Getting Started

Prerequisites

Ensure you have the following installed:

  • Python 3.12+
  • PostgreSQL
  • Docker (for DB setup)
  • FastAPI
  • Requests (for Discord API interactions)
  • Uvicorn (ASGI Server)
  • SQLAlchemy & Alembic (Database ORM & Migrations)

Directory Structure

.
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ alembic.ini
โ”œโ”€โ”€ app
โ”‚   โ”œโ”€โ”€ api
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ deps.py
โ”‚   โ”‚   โ””โ”€โ”€ v1
โ”‚   โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚       โ””โ”€โ”€ endpoints
โ”‚   โ”‚           โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚           โ”œโ”€โ”€ audit_log.py
โ”‚   โ”‚           โ”œโ”€โ”€ discord_interactions.py
โ”‚   โ”‚           โ”œโ”€โ”€ reward.py
โ”‚   โ”‚           โ”œโ”€โ”€ task.py
โ”‚   โ”‚           โ””โ”€โ”€ user.py
โ”‚   โ”œโ”€โ”€ core
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ cmd
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ slash_cmd.py
โ”‚   โ”‚   โ”œโ”€โ”€ config.py
โ”‚   โ”‚   โ””โ”€โ”€ config_prod.py
โ”‚   โ”œโ”€โ”€ crud
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ audit_log.py
โ”‚   โ”‚   โ”œโ”€โ”€ reward.py
โ”‚   โ”‚   โ”œโ”€โ”€ role.py
โ”‚   โ”‚   โ”œโ”€โ”€ task.py
โ”‚   โ”‚   โ””โ”€โ”€ user.py
โ”‚   โ””โ”€โ”€ utils
โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚       โ”œโ”€โ”€ post_utilities.py
โ”‚       โ”œโ”€โ”€ register_commands.py
โ”‚       โ””โ”€โ”€ security.py
โ”œโ”€โ”€ daily_sch.py
โ”œโ”€โ”€ datatest.py
โ”œโ”€โ”€ db
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ base.py
โ”‚   โ”œโ”€โ”€ migrations
โ”‚   โ”‚   โ”œโ”€โ”€ README
โ”‚   โ”‚   โ”œโ”€โ”€ env.py
โ”‚   โ”‚   โ””โ”€โ”€ script.py.mako
โ”‚   โ”œโ”€โ”€ models
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ audit_log.py
โ”‚   โ”‚   โ”œโ”€โ”€ notification.py
โ”‚   โ”‚   โ”œโ”€โ”€ reward.py
โ”‚   โ”‚   โ”œโ”€โ”€ role.py
โ”‚   โ”‚   โ”œโ”€โ”€ task.py
โ”‚   โ”‚   โ”œโ”€โ”€ team.py
โ”‚   โ”‚   โ””โ”€โ”€ user.py
โ”‚   โ””โ”€โ”€ session.py
โ”œโ”€โ”€ main.py
โ”œโ”€โ”€ register_cmd.py
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ schemas
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ audit_log.py
โ”‚   โ”œโ”€โ”€ reward.py
โ”‚   โ”œโ”€โ”€ role.py
โ”‚   โ”œโ”€โ”€ task.py
โ”‚   โ””โ”€โ”€ user.py
โ””โ”€โ”€ tests
    โ”œโ”€โ”€ __init__.py
    โ”œโ”€โ”€ test_audit_log.py
    โ”œโ”€โ”€ test_reward.py
    โ”œโ”€โ”€ test_task.py
    โ””โ”€โ”€ test_user.py

Installation

# Clone the repository
git clone https://github.com/hridesh-net/blinky.git
cd blinky

# Create a virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows use `venv\Scripts\activate`

# Install dependencies
pip install -r requirements.txt

Setting Up the Database

# Run PostgreSQL in Docker
docker run --name postgres_db -p 5432:5432 -e POSTGRES_PASSWORD=password -d postgres:latest

# Apply migrations
alembic upgrade head

Running the Bot

uvicorn main:app --reload

๐ŸŽฎ Usage

1๏ธโƒฃ Register the Bot

Invite the bot to your Discord server and register the following commands:

/assign-team-channel  # Assigns a team to a specific channel
/add-todo  # Adds your daily tasks
/check-todos  # Checks all submitted To-Dos

2๏ธโƒฃ Setting Up Team Channels

Run /assign-team-channel in a Discord channel to link it to a team.

3๏ธโƒฃ Submitting To-Dos

Click the Add Today's Checklist button in your DM, enter your tasks (separated by '|'), and hit submit.

4๏ธโƒฃ Viewing To-Dos

Blinky posts a card in the team channel with:

  • โœ… Submitted Tasks
  • ๐Ÿ… User Avatar & Name
  • ๐Ÿ’Ž Kudos Count
  • ๐Ÿ”ฅ Streak Status

๐Ÿ”ง Configuration

Environment Variables (.env)

DISCORD_TOKEN=your_discord_bot_token
DISCORD_PUBLIC_KEY=your_public_key
DATABASE_URL=postgresql://user:password@localhost/dbname

๐Ÿ“œ API Endpoints

Endpoint Method Description
/interactions POST Handles Discord interactions
/set-team-channel POST Sets the team channel
/submit-todo POST Submits user tasks

๐Ÿค Contributors

Thank you to all the amazing contributors who helped bring Blinky to life! ๐ŸŽ‰

๐Ÿ‘ค Hridesh Sharma - GitHub
๐Ÿ‘ค Your Name Here - GitHub

Want to contribute? Feel free to submit a PR or open an issue! ๐Ÿš€

๐Ÿ“„ License

MIT License ยฉ 2025 Hridesh Sharma


Made with โค๏ธ to make teamwork fun & productive! ๐Ÿš€

About

Blinky is a Discord bot designed to make daily tasks more interactive and fun for teams. It encourages team members to submit their daily to-dos, track their progress, and earn rewards like kudos and streaks. No more boring to-do lists! Blinky gamifies productivity in your Discord workspace. ๐ŸŽฎโœจ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published