This Python project is a Command-Line Interface (CLI) Todo application with scheduling capabilities and SMS sending functionality. It allows users to manage their tasks, set priorities, schedule them, and receive reminders via SMS.
The project is divided into two main files:
- SMS_Sender.py: Handles the SMS sending functionality and scheduling logic.
- Todo_app.py: Contains the main logic for the Todo application and the option to run SMS sending functionality as a daemon.
- Python 3.x
- Twilio account (for SMS sending)
- Docker (optional)
- Clone this repository to your local machine.
- Install the required Python packages using
pip install -r requirements.txt
. - Set up your Twilio account and obtain your ACCOUNT_SID and AUTH_TOKEN.
- Create a
.env
file and set theACCOUNT_SID
andAUTH_TOKEN
environment variables. - Run the application using
python Todo_app.py
.
add_todo
: Add a new todo with optional priority.edit_todo
: Edit an existing todo.list_todos
: List all todos or a specific todo.delete_todos
: Delete a todo by index.delete_all
: Delete all todos.schedule_todo
: Schedule a todo.about
: About the application.
# Add a new todo
python Todo_app.py add-todo "Finish project" --priority= "m"
# List all todos
python Todo_app.py list-todos
# Schedule a todo
python Todo_app.py schedule-todo -i 0 --date "2024-03-20 10:00"
# Delete a todo
python Todo_app.py delete-todos --index 0
# Edit a todo
python Todo_app.py edit-todo -i <index> "<new_todo_text>" --priority=<new_priority> --date=<new_date>
-To run the project using Docker, follow these steps:
docker build -t todo-app .
docker run --env ACCOUNT_SID="YOUR_ACCOUNT_SID" --env AUTH="YOUR_AUTH_TOKEN" todo-app
This project is still an expiremental release, I am still testing it, it might contain some bugs, I wanted to share it with the community, so feel free to use it, modify it and improve it as you like. Happy Coding!
Ilyes Chaabane
Thanks to Twilio for their SMS API. Feel free to contribute to this project by forking it and submitting pull requests!