Skip to main content

A simple command line utility that manages your ToDos

Project description

ToDo List Manager


A simple command-line utility for managing a ToDo list, using SQLite for storage.

This Tool can also be used in an collaborative environment. By adding the created hidden file todos.db to the repository, you can share todos with other, who can also manipulate that file using this command-line-tool.

Features

  • Initialize a new ToDo list database
  • Add ToDo items with details
  • Show all ToDo items
  • Show history of completed ToDo items
  • Remove ToDo items and add them to history

Classes

ToDos

A class to handle ToDo list operations.

ToDo

A data class for representing a ToDo item.

Fields

  • todo: The name of the ToDo item.
  • weekday: The day of the week for the ToDo item.
  • description: A description of the ToDo item.
  • importance: The importance level of the ToDo item.
  • comments: A comment left after completing a ToDo.
  • status: The state the current ToDo is in. It is either Pending ..., In Progress or Finished.
  • action: An action that has been taken.

Usage

  1. Initialize the database: Run the script with todo init to a create the database for the current Directory. Therefore each Directory can have their own ToDo-Manager.

    todo init
    
  2. Add a ToDo item: Use todo add <todo-name> <weekday> to add a new item.

    todo add some_todo sunday
    

    The next prompts give you the opportunity to further describe your todo

    Description: some description
    
    Importance: high
    
  3. Show ToDo items: Use todo show to display all items or todo show [criteria] for specific items. You can search for the name, id, day and importance.

    todo show 
    

    or

    todo show some_todo_name
    

    or

    todo show 1
    

    or

    todo show sunday
    

    or

    todo show high
    

    Output looks something like this:

     +------+---------------------------------+-----------+--------------+------------------------------------------+-------------+
     |   ID | ToDo                            | Weekday   | Importance   | Description                              | Status      |
     +======+=================================+===========+==============+==========================================+=============+
     |    1 | collaborations                  | sunday    | high         | Implementing collaboration functionality | Pending ... |
     +------+---------------------------------+-----------+--------------+------------------------------------------+-------------+
     |    2 | uploading first version to pypi | friday    | high         | Uploading current version to pypi        | Pending ... |
     +------+---------------------------------+-----------+--------------+------------------------------------------+-------------+
    
  4. Remove a ToDo item: Use todo remove <id_or_name> to remove an item and add it to the history.

    todo remove 1 
    

    or

    todo remove some_todo_name
    
  5. Updating Status of ToDo: Use todo update <id_or_name> to update the status of a ToDo from pending to in progress.

    todo update 1 
    

    or

    todo update some_todo
    
  6. Show History of completed ToDos: Use todo history to display all items or todo history [criteria] for specific items. You can search for the id, name and importance.

    todo history 
    

    or

    todo history some_todo
    

    or

    todo history 1
    

    or

    todo history high
    

    Output looks something like this:

     +------+----------------+------------------+--------------+------------------------------------------+-----------------------------------------------------+----------+
     |   ID | ToDo           | Finished         | Importance   | Description                              | Comment                                             | Status   |
     +======+================+==================+==============+==========================================+=====================================================+==========+
     |    1 | collaborations | 29 December 2023 | high         | Implementing collaboration functionality | I should implement this feature in the next version | Finished |
     +------+----------------+------------------+--------------+------------------------------------------+-----------------------------------------------------+----------+
    
  7. Show Logs, which includes all actions: Use todo logs to display all actions, that has been taken so far.

    todo logs
    

    Output looks something like this:

     +------+---------------------------------+------------------+-----------------+-------------+
     |   ID | ToDo                            | Time             | Action          | Status      |
     +======+=================================+==================+=================+=============+
     |    1 | collaborations                  | 28 December 2023 | Adding ToDo     | Pending ... |
     +------+---------------------------------+------------------+-----------------+-------------+
     |    2 | uploading first version to pypi | 29 December 2023 | Adding ToDo     | Pending ... |
     +------+---------------------------------+------------------+-----------------+-------------+
     |    3 | uploading first version to pypi | 29 December 2023 | Updating Status | In Progress |
     +------+---------------------------------+------------------+-----------------+-------------+
     |    4 | collaborations                  | 29 December 2023 | Removing ToDo   | Finished    |
     +------+---------------------------------+------------------+-----------------+-------------+
    

Limitations

  • The script expects command-line arguments for certain operations.
  • Database initialization must be performed before any other operations.
  • Error handling is primarily done through sys.exit with error messages.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cli_todo_manager-0.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cli_todo_manager-0.1.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file cli_todo_manager-0.1.0.tar.gz.

File metadata

  • Download URL: cli_todo_manager-0.1.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for cli_todo_manager-0.1.0.tar.gz
Algorithm Hash digest
SHA256 baea0f78d409f38aed0c753e6f3fe729dbdc134155d125a47f97623499b66c7d
MD5 149c57d6a9ecea830d2c005faf9d25fb
BLAKE2b-256 fa6cbdaed4acd6c05ca7e9fa317a39e06a73d35577bb2fff06b658fd8c05afec

See more details on using hashes here.

File details

Details for the file cli_todo_manager-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cli_todo_manager-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2062dd16d75266c4bdc21b903bb3655a9a662b89c0e794878330c7d532327075
MD5 d0944530797d5e69dc3637f744c59995
BLAKE2b-256 5067dfb514b770422348d279a7cf03ffc67cee91839a4c411931d52c442c2371

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page