HackRadar is a Discord Bot that tracks hackathons from 7 platforms (MLH, Devpost, Devfolio, DoraHacks, Unstop, Kaggle, Hack2Skill) and notifies your server with personalized filtering.
- Fully Automated: Auto-fetches and notifies every 12 hours
- 7 Platform Coverage: MLH, Devpost, Devfolio, DoraHacks, Unstop, Kaggle, Hack2Skill
- Dual-Level Filtering: Server-wide preferences + personal DM subscriptions
- Interactive Setup: Rich Discord UI with menus and buttons
- Powerful Search: Search, filter by platform, and browse events on-demand
| Command | Description |
|---|---|
/setup |
Configure bot preferences for your server (platforms, themes, notification channel). |
/pause |
Pause automatic hackathon notifications for your server. |
/resume |
Resume automatic hackathon notifications for your server. |
| Command | Description |
|---|---|
/search |
Search for hackathons by keyword (searches titles, tags, and descriptions). |
/platform |
Get the latest hackathons from a specific platform. |
/upcoming |
List hackathons starting in the next X days. |
| Command | Description |
|---|---|
/subscribe |
Subscribe to DM notifications for a specific theme. Get alerted when matching hackathons are posted. |
/unsubscribe |
Unsubscribe from a theme's DM notifications. |
/subscriptions |
View all your active theme subscriptions. |
| Command | Description |
|---|---|
/help |
View the full command guide with all available commands and usage examples. |
/about |
Learn about HackRadar, view platform statistics, and access support links. |
HackRadar sends visually rich notifications including:
- Title: Event name with a random fun emoji.
- Core Details:
- Duration (Start Date - End Date)
- Location
- Mode (Online/In-person/Hybrid)
- Status
- Additional Information (where available from platform APIs):
- Prize Pool & Rewards
- Team Size
- Eligibility Criteria
- Visuals: Event banner image (when available)
- Interactive Buttons:
π Check Details: Direct link to the official hackathon registration page
-
Configure Environment: Copy the example environment file and fill in your details:
cp .env.example .env
Edit
.envwith your Discord token and database credentials. -
Run with Docker Compose:
docker compose build docker compose up -d
The bot will start automatically and begin fetching hackathons.
- Python 3.13+ installed
- PostgreSQL installed and running locally
- A Discord Bot Token (see step 2)
- Kaggle API Token (optional, for Kaggle competitions)
-
Clone the repository:
git clone https://github.com/Spartan-71/Discord-Hackathon-Bot.git cd Discord-Hackathon-Bot -
Create a Discord Bot and Get Token:
- Go to Discord Developer Portal
- Click "New Application" and give it a name
- Go to the "Bot" section and click "Add Bot"
- Under "Token", click "Reset Token" or "Copy" to get your bot token
- Enable "Message Content Intent" under "Privileged Gateway Intents"
- Go to "OAuth2" β "URL Generator", select
botandapplications.commandsscopes - Copy the generated URL and open it in your browser to invite the bot to your server
-
Set up PostgreSQL Database:
# Create a new database (example) createdb hackradar # Or using psql psql -U postgres CREATE DATABASE hackradar;
-
Install dependencies: This project uses
uvfor dependency management.# Install uv if you don't have it curl -LsSf https://astral.sh/uv/install.sh | sh # Install project dependencies uv pip install -e .
-
Configure Environment Variables: Copy the example environment file:
cp .env.example .env
Edit
.envand configure the following allRequired:
DISCORD_TOKEN: Your Discord bot token from step 2DATABASE_URL: PostgreSQL connection stringKAGGLE_API_TOKEN: Your Kaggle API token (get it from Kaggle Account Settings)- Go to Kaggle β Account β API β Create New Token
- This enables Kaggle competition tracking
-
Initialize Database:
python -m backend.init_db
-
Run the Bot:
python bot.py
You should see a message confirming the bot is online and connected to your Discord server!
Hackathon-Bot/
βββ adapters/ # Platform-specific scrapers (MLH, Devpost, etc.)
βββ backend/ # Database models, CRUD operations, schemas
βββ docs/ # Documentation (privacy policy, terms of service)
βββ tests/ # Test suite
βββ bot.py # Main Discord bot application
βββ fetch_and_store.py # Scheduled hackathon fetching logic
βββ pyproject.toml # Project dependencies and configuration
- Python 3.13+ - Core language
- discord.py - Discord bot framework
- SQLAlchemy - ORM for database operations
- PostgreSQL - Database
- BeautifulSoup4 - Web scraping
- Pydantic - Data validation
- pytest - Testing framework
- uv - Fast Python package manager
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributions are welcome! Please check the CONTRIBUTING.md guide before submitting pull requests.