This project is a simple Todo application designed for Linux with support for DAV (Distributed Authoring and Versioning). It allows users to manage their tasks and sync them with a DAV server.
- Create, update, and delete todo items.
- Sync tasks with a DAV server.
- User-friendly interface for managing tasks.
- Offline capability with automatic synchronization when connected. (Soon)
- Task categorization and priority management. (Soon)
linux-dav-todo/
├── src/
│ ├── main.py # Entry point of the application
│ ├── dav_client.py # Handles DAV server connection
│ ├── todo.py # Defines the Todo class
│ ├── ui/ # Contains UI components
│ │ ├── __init__.py
│ │ ├── main_window.py # Main application window
│ │ ├── login_window.py # Login functionality
│ │ └── task_widget.py # Represents individual todo items
│ └── utils/ # Utility functions
│ └── __init__.py
│ └── config.py # Configuration handling
├── tests/ # Unit tests for the application
│ ├── __init__.py
│ ├── test_dav_client.py # Tests for DavClient
│ └── test_todo.py # Tests for Todo class
├── config/ # Configuration files
│ └── settings.ini # Configuration settings
├── requirements.txt # Project dependencies
├── setup.py # Setup script for installation
├── LICENSE # Project license information
└── README.md # Project documentation
- Clone the repository:
git clone https://github.com/sppidy/linux-dav-todo.git
- Navigate to the project directory:
cd linux-dav-todo
- Install the required dependencies:
pip install -r requirements.txt
The configuration is managed through the settings.ini file located in the config/ directory.
1. Copy the example configuration file:
cp config/settings.example.ini config/settings.ini
2. Edit the configuration file to match your DAV server settings:
nano config/settings.ini
Use login page
- Create Todo DAV Client for Linux
-
Add Tasks
-
Add Refresh Button
-
Add Login Page
-
Modify Add Task to have more detailed info:
- Due Dates
- Summary
- Priority levels
-
Add notifications for due tasks
-
- Implement secure credential storage
- Pack into Linux Package (DEB/RPM)
- Add offline mode with local storage
- Add task categories/tags
- Implement recurring tasks
- Create mobile companion app
To run the application, execute the following command:
python src/main.py
To run the unit tests, execute the following command:
pytest
Contributions are welcome! Please open an issue or submit a pull request for any enhancements or bug fixes.
This project is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0). See the LICENSE file for more details.