Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tddschn/todo-cli-tddschn
A simple command-line Todo app made with typer and sqlite
https://github.com/tddschn/todo-cli-tddschn
cli sqlite todo typer
Last synced: 19 days ago
JSON representation
A simple command-line Todo app made with typer and sqlite
- Host: GitHub
- URL: https://github.com/tddschn/todo-cli-tddschn
- Owner: tddschn
- License: mit
- Created: 2022-04-22T07:20:27.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-07-20T11:40:01.000Z (over 1 year ago)
- Last Synced: 2024-10-12T10:06:14.551Z (about 1 month ago)
- Topics: cli, sqlite, todo, typer
- Language: Python
- Homepage: https://pypi.org/project/todo-cli-tddschn
- Size: 2.58 MB
- Stars: 6
- Watchers: 3
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# todo-cli-tddschn
A simple command-line Todo app made with typer, sqlite and a REST API.
- [todo-cli-tddschn](#todo-cli-tddschn)
- [Features](#features)
- [Install, Upgrade and Uninstall](#install-upgrade-and-uninstall)
- [pipx (recommended)](#pipx-recommended)
- [pip](#pip)
- [Usage](#usage)
- [todo](#todo)
- [todo ls](#todo-ls)
- [todo serve](#todo-serve)
- [todo config](#todo-config)
- [todo info](#todo-info)
- [todo utils](#todo-utils)
- [Configuration](#configuration)
- [Changelog](#changelog)
- [Migration Guide](#migration-guide)
- [Why do you made this?](#why-do-you-made-this)
- [SQLite database schema](#sqlite-database-schema)
- [Screenshots](#screenshots)## Features
- Creating, reading, updating, and deleting todos;
- Nicely formatting the outputs (with color);
- `todo ls` lists all todos, ordered by priority and due date, the todos without a due date are put last (nullslast).
- Not only the command line interface - you can also CRUD your todos by making HTTP requests to the [REST API](#todo-serve).## Install, Upgrade and Uninstall
### pipx (recommended)
- Install
```bash
pipx install todo-cli-tddschn
```
- Upgrade
```bash
pipx upgrade todo-cli-tddschn
```
- Uninstall
```bash
pipx uninstall todo-cli-tddschn
```About [`pipx`](https://pypa.github.io/pipx)
### [pip](https://pypi.org/project/todo-cli-tddschn)
- Install
```bash
pip install todo-cli-tddschn
```
- Upgrade
```bash
pip install --upgrade todo-cli-tddschn
```
- Uninstall
```bash
pip uninstall todo-cli-tddschn
```## Usage
### todo
You can add, modify, or remove (all) todos with the `todo` command:
```
todo --helpUsage: todo [OPTIONS] COMMAND [ARGS]...
tddschn's command line todo app
Options:
-v, --version Show the application's version and exit.
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to copy it or
customize the installation.--help Show this message and exit.
Commands:
a Add a new to-do with a DESCRIPTION.
clear Remove all to-dos.
config Getting and managing the config
g Get a to-do by ID.
info Get infos about todos
init Initialize the to-do database.
ls list all to-dos, ordered by priority and due date.
m Modify a to-do by setting it as done using its TODO_ID.
re-init Re-initialize the to-do database.
rm Remove a to-do using its TODO_ID.
```### todo ls
List and filter the todos.
```
todo ls --helpUsage: todo ls [OPTIONS] COMMAND [ARGS]...
list all to-dos, ordered by priority and due date.
Options:
-d, --description TEXT
-p, --priority [low|medium|high]
-s, --status [todo|done|deleted|cancelled|wip]
-pr, --project TEXT
-t, --tags TEXT
-dd, --due-date [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
-ddb, --due-date-before [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
-dda, --due-date-after [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
-dab, --date-added-before [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
-daa, --date-added-after [%Y-%m-%d|%Y-%m-%dT%H:%M:%S|%Y-%m-%d %H:%M:%S]
-fda, --full-date-added Include time in the date_added column
--help Show this message and exit.Commands:
project Filter to-dos by project.
tag Filter to-dos by tag.
```### todo serve
Serve the REST API (built with FastAPI)
```
todo serve --help
Usage: todo serve [OPTIONS]serve REST API. Go to /docs for interactive documentation on API usage.
Options:
--host TEXT [default: 127.0.0.1]
--port INTEGER [default: 5000]
--log-level TEXT [default: info]
--help Show this message and exit.
```### todo config
Get or edit the configurations
```
todo config --helpUsage: todo config [OPTIONS] COMMAND [ARGS]...
Getting and managing the config
Options:
--help Show this message and exit.Commands:
db-path Get the path to the to-do database.
edit Edit the config file. # Opens in default editor
path Get the path to the config file.
```### todo info
Get the info and stats about the todos.
```
todo info --helpUsage: todo info [OPTIONS] COMMAND [ARGS]...
Get infos about todos
Options:
--help Show this message and exit.Commands:
count Get todo counts
```### todo utils
Utility commands.
```
todo utils --help
Usage: todo utils [OPTIONS] COMMAND [ARGS]...Options:
--help Show this message and exit.Commands:
export Export todos to todo commands that can be used to re-construct your todo database
fill-date-added-column fill date_added column with the current time if it's null # used for migrate to v1.0.0
```## Configuration
The yaml configuration file is located at `todo config path`.
See [Configuration](migration.md#migrate-to-v200) for the details.
## [Changelog](CHANGELOG.md)
## Migration Guide
You may find the [migration guide](migration.md) useful if you've upgraded the major version, e.g. from v1.0.0 to v2.0.0.
## Why do you made this?
For practicing my python and SQL skills.
If you're looking for an awesome CLI todo app, try [taskwarrior](https://taskwarrior.org/).
## SQLite database schema![schema](images/todo-cli-tddschn-erd-v1.png)
## Screenshots
Thanks to [@gudauu](https://github.com/gudauu) for these screenshots.
![screenshot](images/v2/ls-add-modify-info.png)
![screenshot](images/v2/utils-export.png)
![screenshot](images/v2/add-modify-info.png)
![screenshot](images/v2/ls-ddb.png)
![screenshot-2](images/v2/ls.png)![todo-serve](images/todo-serve.png)
![api-docs](images/api-docs.png)