A smart, AI-powered deadline management system that automatically extracts deadlines from your Gmail and WhatsApp messages, sends intelligent notifications, and helps you stay on top of all your important tasks.
- Gmail Integration: Automatically scans your emails for deadline-related content
- AI-Powered NLP: Uses spaCy for intelligent date and task recognition
- Pattern Recognition: Detects hackathons, assignments, meetings, and project deadlines
- WhatsApp Integration: Extracts deadlines from chat messages
- Desktop Notifications: Native macOS notifications for upcoming deadlines
- Mobile Push Notifications: Firebase Cloud Messaging for mobile alerts
- Smart Timing: Contextual reminder scheduling
- RESTful API: Built with FastAPI for high performance
- Real-time Processing: Instant deadline extraction and storage
- Interactive Documentation: Auto-generated API docs at
/docs - Database Integration: SQLite for reliable data persistence
- Cross-Platform: iOS, Android, Web, and Desktop support
- Real-time Sync: Seamless integration with backend API
- Modern UI: Clean, intuitive interface for task management
- Push Notifications: Stay updated on all your deadlines
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Gmail/WhatsApp β β FastAPI β β Flutter App β
β Integration β ββ β Backend β ββ β Mobile/Web β
β β β β β β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β spaCy NLP β β SQLite DB β β Firebase β
β Processing β β Storage β β Notifications β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
- Python 3.13+ - Core language
- FastAPI - High-performance web framework
- spaCy - Advanced NLP for deadline extraction
- SQLAlchemy - Database ORM
- SQLite - Lightweight database
- python-dotenv - Environment variable management
- Flutter 3.32+ - Cross-platform mobile framework
- Dart - Programming language for Flutter
- HTTP - API communication
- Firebase Cloud Messaging - Push notifications
- Gmail IMAP - Email scanning and processing
- WhatsApp Web - Message extraction via Selenium
- Firebase - Mobile push notifications
- macOS Notifications - Desktop alerts
- Python 3.13+
- Flutter 3.32+
- Gmail account with app password
- (Optional) Firebase project for mobile notifications
git clone https://github.com/ajitreddy013/Deadline-Alert-Agent.git
cd "Deadline Reminder"cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Setup environment variables
cp .env.template .env
# Edit .env with your Gmail credentials- Enable 2-factor authentication on your Gmail account
- Generate an app-specific password
- Add credentials to
backend/.env:GMAIL_EMAIL=your-email@gmail.com GMAIL_PASSWORD=your-app-password
cd backend
python run_server.pyServer will be available at: http://localhost:8000 API Documentation: http://localhost:8000/docs
cd deadline_alert_app
flutter pub get
flutter run./start_project.sh- First run will open Chrome to https://web.whatsapp.com and may prompt a QR login.
- The WhatsApp Web session is persisted at:
~/.deadline_reminder/whatsapp_profile(so you usually won't need to re-scan). - Trigger ingestion for a chat by name (make sure the backend is running):
# Using curl
curl -X POST "http://localhost:8000/ingest/whatsapp?chat_name=Family"
# Or via the helper script
backend/scripts/ingest_whatsapp.sh "Family"Tip: Keep the WhatsApp Web session alive by staying logged in. Re-scan if necessary.
Create backend/.env from backend/.env.template:
# Gmail Configuration
GMAIL_EMAIL=your-email@gmail.com
GMAIL_PASSWORD=your-app-password
# Firebase Cloud Messaging (Optional)
FCM_SERVER_KEY=your-fcm-server-key
# Database
DATABASE_URL=sqlite:///./tasks.db- Go to Google Account Settings
- Enable 2-Step Verification
- Generate App Password:
- Select "Mail" as the app
- Copy the 16-character password
- Use this in your
.envfile
GET /tasks- List all tasksPOST /tasks- Create new taskPOST /ingest/gmail- Import deadlines from GmailPOST /ingest/whatsapp- Import deadlines from WhatsAppPOST /extract_deadline- Extract deadlines from textPOST /notify/desktop/{id}- Send desktop notificationPOST /notify/mobile- Send mobile notification
import requests
# Extract deadlines from Gmail
response = requests.post("http://localhost:8000/ingest/gmail")
print(response.json())
# Get all tasks
tasks = requests.get("http://localhost:8000/tasks")
print(tasks.json())# Test full project
python test_full_project.py
# Test specific components
cd backend
python test_api.py
python test_gmail.py
python test_whatsapp.pyβ
API Endpoints: Working
β
Gmail Integration: Working (10 emails found, 2 with deadlines)
β
WhatsApp Integration: Ready (requires manual QR scan)
β
Desktop Notifications: Working
β
Flutter App: Ready to run
- Students: Track assignment deadlines, exam schedules, project submissions
- Professionals: Monitor project milestones, meeting deadlines, deliverables
- Developers: Keep track of hackathon deadlines, code review deadlines
- Freelancers: Manage client deadlines, invoice due dates, project timelines
- Event Organizers: Track submission deadlines, registration cutoffs
This project follows security best practices:
- Environment variables for sensitive data
- No hardcoded credentials in source code
- Local-only storage of personal information
- Secure API key management
See SECURITY_GUIDE.md for detailed security information.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- spaCy for powerful NLP capabilities
- FastAPI for the excellent web framework
- Flutter for cross-platform mobile development
- Firebase for push notification infrastructure
If you encounter any issues or have questions:
- Check the Issues page
- Review the SECURITY_GUIDE.md for setup help
- Create a new issue with detailed information
Made with β€οΈ for better deadline management