Contest-Reminder-WhatsApp-Bot
Overview
Contest-Reminder-WhatsApp-Bot is an automated WhatsApp notification system designed to keep competitive programmers updated about upcoming coding contests from major platforms like CodeChef, Codeforces, LeetCode, and AtCoder. The bot sends daily contest schedules and automated reminders, ensuring you never miss an important competition.
Why This Project?
The Problem
As a competitive programmer, I found it challenging to keep track of contests across multiple platforms. Missing contests due to timezone confusion or simply forgetting about them was frustrating. Checking multiple websites daily for contest schedules was time-consuming and inefficient.
The Solution
Contest-Reminder-WhatsApp-Bot automates this entire process by:
- Centralizing Information: Aggregates contest data from multiple platforms in one place
- Proactive Notifications: Sends daily updates directly to WhatsApp groups
- Smart Reminders: Sets automated reminders 30 minutes before each contest starts
- Always Active: Unlike social media platforms that users check occasionally, WhatsApp is continuously active on users' devices, ensuring timely notification delivery
- Community Building: Keeps coding communities informed and engaged
Personal Motivation
This project was born from my passion for competitive programming and my desire to help fellow coders. I wanted to create a tool that:
- Saves Time: No more manual checking of contest schedules
- Builds Community: Keeps group members engaged and informed
- Improves Participation: Increases contest participation rates
- Learns Technology: Explore WhatsApp automation and scheduling systems
- Solves Real Problems: Address a genuine pain point in the competitive programming community
Key Features
Automated Daily Notifications
- Sends contest schedules every day at 5:00 AM IST
- Includes today's and tomorrow's contests
Smart Reminder System
- Automatic reminders 30 minutes before contest start time
- Checks every 30 minutes for upcoming contests
Multi-Platform Support
Currently supports:
- CodeChef
- Codeforces
- LeetCode
- AtCoder
Can be easily extended to include more platforms.
Quick Start
Prerequisites
- Node.js v14 or newer
- npm v6 or newer
- WhatsApp account
Installation
-
Clone the repository:
-
Install dependencies:
-
Create
.envfile: -
Start the service:
-
Scan the QR code with WhatsApp to authenticate
How It Works
- Scheduled Jobs: Uses
node-scheduleto run tasks at specific times - Contest Fetching: Retrieves contest data from Clist API
- Message Formatting: Creates messages with contest details
- WhatsApp Integration: Uses Baileys library to send messages
- Reminder Management: Stores and monitors upcoming contest reminders
Daily Notification Format
✨ Hello Chefs! 👨🍳 ✨
Today (Monday, 15/01/2024):
🏆 Codeforces Round #800
⏰ Time: 20:05
⏳ Duration: 2h
🔗 https://codeforces.com/contest/...
────────────────
Tomorrow (Tuesday, 16/01/2024):
💻 LeetCode Weekly Contest 350
⏰ Time: 08:00
⏳ Duration: 1h 30m
🔗 https://leetcode.com/contest/...
────────────────
Happy Coding and may your submissions be Accepted!😉
Reminder Format
Technologies Used
- Node.js: Runtime environment
- Baileys: WhatsApp Web API library
- node-schedule: Job scheduling
- Axios: HTTP client for API calls
- Pino: Logging library
Support
For issues, questions, or contributions, please visit the GitHub repository.
Documentation Links
Built with passion for the competitive programming community