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. ๐ฎโจ
- ๐ 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.
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)
.
โโโ 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
# 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
# Run PostgreSQL in Docker
docker run --name postgres_db -p 5432:5432 -e POSTGRES_PASSWORD=password -d postgres:latest
# Apply migrations
alembic upgrade head
uvicorn main:app --reload
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
Run /assign-team-channel
in a Discord channel to link it to a team.
Click the Add Today's Checklist button in your DM, enter your tasks (separated by '|'), and hit submit.
Blinky posts a card in the team channel with:
- โ Submitted Tasks
- ๐ User Avatar & Name
- ๐ Kudos Count
- ๐ฅ Streak Status
DISCORD_TOKEN=your_discord_bot_token
DISCORD_PUBLIC_KEY=your_public_key
DATABASE_URL=postgresql://user:password@localhost/dbname
Endpoint | Method | Description |
---|---|---|
/interactions |
POST | Handles Discord interactions |
/set-team-channel |
POST | Sets the team channel |
/submit-todo |
POST | Submits user tasks |
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! ๐
MIT License ยฉ 2025 Hridesh Sharma
Made with โค๏ธ to make teamwork fun & productive! ๐