Command Line Based Todo Script

Overview

Todo-CLI

Features

Full-Fledged Command Line Based Todo List with the following features planned:

  • Interactive Interface
  • OS Notifications
  • Save and Remove Todo
  • Persistent Todo Storage
  • Todo Data Encryption

To Run the Program

  1. Install dependencies
    pip install -r requirements.txt
    
  2. Run the Script
    python Main.py
    

To Use the Program

After following the above steps, you will be prompted to input a command into the command line. Currently, the following commands are available:

Add:

The 'add' command will add a new task to the todo list. It takes two required arguments - 'Todo Title' and 'Todo Description' - both of which should be enclosed in quotes if more than one word. For example:

add Word "This is a multi-word description so needs to be enclosed in quotes"

Will add a new todo with:

  • A title of 'Word'
  • A description matching the quoted section above
  • A deadline set to the current default of 1 minute

This brings us to the deadline argument. This optional argument sets a deadline for the todo item. Once this deadline is reached, you will be alerted to it by a notification through your operating system (examples shown below) and a message on the command line.

This deadline can be given in two different formats each with its own flag - if both are given, the --time argument will be used:

  • The --offset flag: How long, in minutes, after the task is added you would like to set the deadline for. Decimal values aren't required but they are supported. For example:
add "Adding a Deadline with the Offset Flag" "This todo item has a deadline set five and a half minutes from now" --offset 5.5
  • The --time flag: Will accept entries formatted "dd/mm/YYYY H:M". This sets the deadline for the specified date and time. For example:
add "Adding a Deadline with the --time flag" "This todo item will have a deadline of the 1st of Feburary 2022 at 3:30pm" --time "01/02/2022 15:30"

Note:

  • The argument is in quotes
  • There is a space between the date and time portions of the argument
  • All values are zero-padded - i.e. February is given as '02' not just '2'
  • The 'hour' portion of the time is given as a 24hr value

View:

The 'view' command will display all of your todo items in the command line. The items will be ordered according to their deadlines with the items whose deadlines are closest to the current time at the top of the list. There are currently no arguments required for this command so simply enter it in to the command line when prompted to do so.

view

Exit

To exit the program, and save your pending todos, in an encrypted file, simply enter the 'exit' command when prompted:

exit

--help

Entering an invalid command, or no command at all, will display usage instructions but this can be manually invoked with the --help command.

--help

To get the usage instructions for one of the commands mentioned above, pass --help as an argument to it. For example, to see how to use the 'add' command enter the following:

add --help

Sample Notifications

Notifications will look similar to the following:

Windows

Windows

Linux

Linux (linux)

MacOS

Mac

Maintainers

Contributors

Made with contributors-img.

Contributing

Thank you for your interest in contributing to our repo! Before making any PRs, we strongly suggest you go through our contribution guidelines to see how you can contribute to this project.

Hacktoberfest 2021

img

All of the valid PRs made to this repository before the 31st of October will be labelled with 'hacktoberfest-accepted'. For more rules visit the Hacktoberfest Website.

License

The code in this repo is licensed under the MIT license. Feel free to use and share it as per the license.


Who are we?

We are DSC-IIEST. Feel free to join our community here.

gdsc-iiest

Comments
  • Update Notification Screenshot in README.md

    Update Notification Screenshot in README.md

    In #15, we added a new notification icon. This requires update in README screenshot in Linux and MacOS.

    • [x] Update Linux Screenshot in README
    • [ ] #32
    documentation good first issue Hacktoberfest 
    opened by Abhiroop25902 11
  • [New] Create Interactive Interface

    [New] Create Interactive Interface

    Addressing at least some part of issue #2, this PR establishes an interactive interface for the program using a While true loop and argparse to allow the triggering of various commands related to the to-do list.

    Still to do:

    • [x] Move thread creation and execution out of the loop
    • [x] Write docstring for parse_command() and help text for some of the parser's arguments
    • [x] Remove test todo items
    • [x] Change "deadline reached" format
    • [x] Command prompt reappears after "deadline reached"
    • [x] View of an empty todo list prints that there are no todos
    • [x] Make multi-word command passing clear or revert to input prompts

    Might also:

    • [x] Start/finish the view branch of the program
    • [x] Improve the display of todo's whose deadlines have been reached
    enhancement hacktoberfest-accepted Hacktoberfest 
    opened by IanFindlay 9
  • Persistent Todo Storage

    Persistent Todo Storage

    Currently the script saves the to-dos inside the program itself. This means that if the script is closed, all the saved to-dos will be lost.

    We need to do the following

    • [x] make to-dos save to some file when the script is closed
    • [x] make the saved file encrypted so as to avoid leaking of user data
    enhancement good first issue Hacktoberfest 
    opened by Abhiroop25902 9
  • Add String Based Time Support

    Add String Based Time Support

    Currently the command to add To-do is as follows add 'Todo heading' 'Todo Description' <time in minutes>

    • [ ] We need a way to generalize time to take datetime inputs (not just minute)

    Possible Link that may help: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

    enhancement good first issue Hacktoberfest 
    opened by Abhiroop25902 7
  • [FIX] MacOS Screenshot for README (#12)

    [FIX] MacOS Screenshot for README (#12)

    Hey there, I happened to include the MacOS screenshot for the read me I hope it’s fine ❤️

    Issue number: #12 Issue: MacOS notification Screenshot in README Fixes #12

    hacktoberfest-accepted Hacktoberfest 
    opened by Aron-R 6
  • Interactive Interface

    Interactive Interface

    Create a command line interface for the following:

    • [ ] Insert a todo with deadline, if any
    • [ ] Write in terminal if any todo's deadline is passed in meaningful way (currently it's in very rudimentary form)
    • [ ] make an interface to "gracefully" exit the script (something like exit() command to close the script, rather than to do Ctrl + C)
    enhancement good first issue Hacktoberfest 
    opened by Abhiroop25902 6
  • Update README to add info about the Interactive CLI

    Update README to add info about the Interactive CLI

    with #17 and #23, we have an Interactive CLI in the Todo-CLI, but it's instruction is not reflected in the Repository Docs

    • [x] update repository docs to match with the interactive menus
    documentation good first issue Hacktoberfest 
    opened by Abhiroop25902 3
  • Add Documentation about how to run the script

    Add Documentation about how to run the script

    Currently the repository does not have any instructions to guide new users to run the script itself. So we need

    • [ ] documentation about how to run the script

    Running the script as of now is very straight forward, you don't need any pip installs as of now, you just need to write python3 main.py to run the script

    documentation good first issue hacktoberfest-accepted Hacktoberfest 
    opened by Abhiroop25902 3
  • [Docs] Proofread and add usage instructions to the README

    [Docs] Proofread and add usage instructions to the README

    In relation to issue #25 I have proofread and added usage instructions to the README. Let me know if you spot any errors or have any changes you think should be made.

    enhancement hacktoberfest-accepted Hacktoberfest 
    opened by IanFindlay 2
  • OS Notification

    OS Notification

    Currently, the script just writes todo information in terminal when it's deadline is exceeded. This is does not grab attention of the user so much. Hence we need the following:

    • [ ] make the script push a OS notification to user, so that it hopefully grabs user attention
    enhancement good first issue hacktoberfest-accepted Hacktoberfest 
    opened by Abhiroop25902 1
  • [NEW] added custom icon notify-py module

    [NEW] added custom icon notify-py module

    Related Issue : #18

    Issue Name: Update Notification Screenshot in README.md Helps : #18

    • [x] Hacktoberfest2021 Participant
    • [x] Contributor

    Type of Change

    What sort of change have you made:

    • [x] added custom icon notify-py module to hopefully fix MacOS custom notification

    Checklist

    • [x] My code follows the guidelines of this project.
    • [x] I have performed a self-review of my own code.
    • [x] I have commented my code, particularly wherever it was hard to understand.
    • [x] My changes generate no new warnings.
    opened by Abhiroop25902 0
Owner
DSC IIEST
DSC IIEST is the developer and tech community of IIEST Shibpur.
DSC IIEST
A very simple and lightweight ToDo app using python that can be used from the command line

A very simple and lightweight ToDo app using python that can be used from the command line

Nilesh Sengupta 2 Jul 20, 2022
A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Stream your favorite shows straight from the command line.

A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Installation pip install -r requirements.txt It use

Jonardon Hazarika 17 Dec 11, 2022
A cd command that learns - easily navigate directories from the command line

NAME autojump - a faster way to navigate your filesystem DESCRIPTION autojump is a faster way to navigate your filesystem. It works by maintaining a d

William Ting 14.5k Jan 3, 2023
AML Command Transfer. A lightweight tool to transfer any command line to Azure Machine Learning Services

AML Command Transfer (ACT) ACT is a lightweight tool to transfer any command from the local machine to AML or ITP, both of which are Azure Machine Lea

Microsoft 11 Aug 10, 2022
Ros command - Unifying the ROS command line tools

Unifying the ROS command line tools One impairment to ROS 2 adoption is that all

null 37 Dec 15, 2022
Simple and convenient console ToDo list app

How do you handle remembering all that loads of plans you are going to realize everyday? Producing tons of paper notes, plastered all over the house?

null 3 Aug 3, 2022
A minimal todo list for your terminal.

todo A minimal todo list for your terminal. Installation Run the following command. pip install git+https://github.com/piero-vic/todo.git Usage todo

Piero Lescano 7 Aug 8, 2022
git-partial-submodule is a command-line script for setting up and working with submodules while enabling them to use git's partial clone and sparse checkout features.

Partial Submodules for Git git-partial-submodule is a command-line script for setting up and working with submodules while enabling them to use git's

Nathan Reed 15 Sep 22, 2022
🌌 A Python script to generate blog banners from command line.

Auto Blog Banner Generator A Python script to generate blog banners. This script is used at RavSam. The following image is an example of the blog bann

RavSam 10 Sep 20, 2022
Command-line script to upload videos to Youtube using theYoutube APIv3.

Introduction Command-line script to upload videos to Youtube using theYoutube APIv3. It should work on any platform (GNU/Linux, BSD, OS X, Windows, ..

Arnau Sanchez 1.9k Jan 9, 2023
A Python-based command prompt concept which includes windows command emulation.

PythonCMD A Python-based command prompt concept which includes windows command emulation. Current features: echo: Input your message and it will be cl

null 1 Feb 5, 2022
Text based command line webcam photobooth app

Skunkbooth Why See it in action Usage Installation Run Media location Contributing Install Poetry Clone the repo Activate poetry shell Install dev dep

David Yang 45 Dec 26, 2022
A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli.

ABOUT A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Installation pip install -r requirements.txt It use

Janardon Hazarika 17 Dec 11, 2022
Quo is a Python based toolkit for writing Command-Line Interface(CLI) applications.

Quo is a Python based toolkit for writing Command-Line Interface(CLI) applications. Quo is making headway towards composing speedy and orderly CLI applications while forestalling any disappointments brought about by the failure to execute a CLI API. Simple to code, easy to learn, and does not come with needless baggage.

Secretum Inc. 16 Oct 15, 2022
A python based command line tool to compare Github Users or Repositories

gitcomp A simple python package with a CLI to compare GitHub users and repositories by associating a git_score to each entry which is a weighted sum o

Anirudh Vaish 5 Mar 26, 2022
OneDriveExplorer - A command line and GUI based application for reconstructing the folder structure of OneDrive from the UserCid.dat file

OneDriveExplorer - A command line and GUI based application for reconstructing the folder structure of OneDrive from the UserCid.dat file

Brian Maloney 100 Dec 13, 2022
Automaton - python script to execute bash command based on changes in size of a file.

automaton python script to execute given command <= everytime size of a given file changes,hence everytime a file is modified.(almost) download automa

asrar bhat 1 Jan 3, 2022
commandpack - A package of modules for working with commands, command packages, files with command packages.

commandpack Help the project financially: Donate: https://smartlegion.github.io/donate/ Yandex Money: https://yoomoney.ru/to/4100115206129186 PayPal:

null 4 Sep 4, 2021
Library and command-line utility for rendering projects templates.

A library for rendering project templates. Works with local paths and git URLs. Your project can include any file and Copier can dynamically replace v

null 808 Jan 4, 2023