Skip to content

JonShort/tododay

Repository files navigation

tododay

tododay

What is tododay?

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

usage

Installation

At the moment this project is compile-from-source only 🙌

For installation instructions, see the "Development" section below

Architecture

Documentation around the architecture of this application can be found in the architecture directory

Development

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

Offline SQLx and the database

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)