tododay is designed with the following principles in mind:
- Checking off a todo is satisfying
- Completing a list of todos is satisfying
- Starting each day with a clear plan is productive
At the moment this project is compile-from-source only 🙌
For installation instructions, see the "Development" section below
Documentation around the architecture of this application can be found in the architecture directory
Make sure rust and cargo are installed - (installation guide)
Using cargo, install the tauri cli
cargo install tauri-cli
To run the development server (includes hot reloading on file changes):
cargo tauri dev
To package and install the application:
cargo tauri build
This project uses SQLx to interact with the SQLite database powering the backend. If any changes are made to the prepared SQL queries in this project, the offline SQLx file must also be updated (to allow for compile-time checks).
Generating a new offline sqlx file
Make sure that the SQLx-cli is installed, with the sqlite
feature added:
# supports all databases supported by SQLx
cargo install sqlx-cli
# only for sqlite
cargo install sqlx-cli --no-default-features --features native-tls,sqlite
Change the current directory to src-tauri
:
cd src-tauri
Run SQLx's "prepare" method, passing your database URL:
cargo sqlx prepare --database-url sqlite:///Users/your_name/Library/Application\ Support/com.tododay.dev/tododay.db
This example is macOS specific, for your Linux / Windows paths, check the tauri documentation
Note: "prepare" requires a database to exist, so tododay must have been run at least once (to generate a DB)