This is an advanced Python-based task management system that leverages Natural Language Processing (NLP) to allow users to input tasks in plain English. The system automatically parses the input to schedule tasks and send reminders, optionally using WhatsApp.
- Natural Language Task Input: Users can enter tasks in plain language, such as "Remind me to study physics tomorrow at 5 PM".
- NLP-Based Parsing: Uses
spaCyto extract task details like task description, date, and time from natural language. - Task Scheduling: Automatically schedules tasks and runs reminders using the
schedulelibrary. - Persistent Storage: Stores tasks in an SQLite database to ensure they persist across sessions.
- WhatsApp Integration (Optional): Sends task reminders via WhatsApp using
pywhatkit. - Real-Time Task Monitoring: Constantly checks for tasks due and sends reminders at the specified time.
To run the project locally, follow these steps:
Ensure you have the following installed on your system:
- Python 3.8 or above
- pip (Python package manager)
Install the required Python libraries:
pip install spacy schedule pywhatkit sqlite3Download and install the NLP model for spaCy:
python -m spacy download en_core_web_smFor WhatsApp reminders, you need to install and configure pywhatkit:
- Ensure you have WhatsApp Web logged in on your default browser.
- Make sure you set up your country code for phone numbers in
pywhatkit.
-
Run the Program: After setting up, run the main program:
python task_manager.py
-
Add a Task: When prompted, you can input tasks in natural language. For example:
Enter your task: Remind me to study physics tomorrow at 5 PM
The system will parse the task, date, and time from this input and schedule it.
-
Scheduled Tasks: The tasks are stored in an SQLite database and reminders are triggered at the specified times. If you have WhatsApp integration enabled, the system will send a reminder message to the specified contact.
.
├── task_manager.py # Main program
├── tasks.db # SQLite database to store tasks
└── README.md # Project documentation
- Task Input Parsing: The program uses
spaCyto analyze user input and extract meaningful information like task description, date, and time. - Scheduling: The
schedulelibrary runs tasks at specified times, checking every second whether a task is due. - Persistent Storage: Tasks are stored in an SQLite database, so they are retained across program sessions.
- WhatsApp Reminders: Using
pywhatkit, the system sends reminders to WhatsApp contacts when tasks are due.
- Changing Reminder Method: You can modify the
send_reminder()function to send reminders through email, SMS, or other methods if WhatsApp is not preferred. - Task Deletion or Modification: Currently, tasks are automatically executed at the specified time. You can extend the system to include task modification or deletion by querying and updating the SQLite database.
- GUI Integration: Add a graphical user interface using
TkinterorPyQt5for easy task management. - Extended NLP: Improve the NLP model to handle more complex task descriptions or integrate with more powerful language models like OpenAI.
- Calendar Integration: Add integration with Google Calendar or other calendar APIs for better task scheduling.
If you'd like to contribute to this project, feel free to submit pull requests or report issues. Any contributions are highly appreciated!