# Assignment Manager
A terminal based assignment-manager written in python.
It can handle both one-time tasks and recurring
assignments. Also allows you to track your progress.
<p align="center">
<img src="docs/demo/showcase.gif" alt="animated" />
</p>
## Features
The following features are present in the current version
- Reoccuring assignments
- Track progress on each assignment
- Display assignments in sorted table
- Make back up of assignment data
- Edit existing assignments
And these features still need to be implemented
- [ ] Special class of one-time assignments
- [ ] Undo last action taken
## Prerequisites
All you need in order to use this repo is `python>=3.8`.
Note that there are some python dependencies, however
most of them should be available for all OS's.
## Installation
If you have [pipx](https://pypa.github.io/pipx/), run
```
pipx install assignment-manager
```
otherwise you can just run
```
pip install assignment-manager
```
Note that if you are using `pip`, you may want to
[setup a venv](https://docs.python.org/3/library/venv.html).
## Usage
You use the following two keywords as entry points
```
assman
assignment-manager
```
To view the help panel, write
```
$ assman --help
Usage: assman [OPTIONS] COMMAND [ARGS]...
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion [bash|zsh|fish|powershell|pwsh] Install completion for the │
│ specified shell. │
│ [default: None] │
│ --show-completion [bash|zsh|fish|powershell|pwsh] Show completion for the specified │
│ shell, to copy it or customize the │
│ installation. │
│ [default: None] │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────╮
│ add │
│ backup │
│ remove │
│ rename │
│ show │
│ update │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
```
Note that some commands have some subcommands
```
$ assman backup --help
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ copy Copy the data file. This will OVERWRITE the BACKUP file │
│ paste Paste the backup file. This will OVERWRITE the DATA file │
╰──────────────────────────────────────────────────────────────────────────────╯
$ assman show --help
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --one --no-one [default: no-one] │
│ --sort --no-sort [default: no-sort] │
╰──────────────────────────────────────────────────────────────────────────────╯
```
## Contributing
Contributions of any kind to this project are very welcome!
Raw data
{
"_id": null,
"home_page": "https://github.com/PraxTube/assignment-manager",
"name": "assignment-manager",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8, <4",
"maintainer_email": "",
"keywords": "manager,task,assignment,task-manager,assignment-manager",
"author": "Prax",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/0b/d6/335dbdac4c2de075cffbe5d90202a23aa498b63c381a321549dcf3566d56/assignment-manager-0.1.8.tar.gz",
"platform": null,
"description": "# Assignment Manager\n\nA terminal based assignment-manager written in python.\nIt can handle both one-time tasks and recurring\nassignments. Also allows you to track your progress.\n\n<p align=\"center\">\n <img src=\"docs/demo/showcase.gif\" alt=\"animated\" />\n</p>\n\n## Features\n\nThe following features are present in the current version\n\n- Reoccuring assignments\n- Track progress on each assignment\n- Display assignments in sorted table\n- Make back up of assignment data\n- Edit existing assignments\n\nAnd these features still need to be implemented\n\n- [ ] Special class of one-time assignments\n- [ ] Undo last action taken\n\n## Prerequisites\n\nAll you need in order to use this repo is `python>=3.8`.\nNote that there are some python dependencies, however\nmost of them should be available for all OS's.\n\n## Installation\n\nIf you have [pipx](https://pypa.github.io/pipx/), run\n\n```\npipx install assignment-manager\n```\n\notherwise you can just run\n\n```\npip install assignment-manager\n```\n\nNote that if you are using `pip`, you may want to\n[setup a venv](https://docs.python.org/3/library/venv.html).\n\n## Usage\n\nYou use the following two keywords as entry points\n\n```\nassman\nassignment-manager\n```\n\nTo view the help panel, write\n\n```\n$ assman --help\n\n Usage: assman [OPTIONS] COMMAND [ARGS]... \n\n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 --install-completion [bash|zsh|fish|powershell|pwsh] Install completion for the \u2502\n\u2502 specified shell. \u2502\n\u2502 [default: None] \u2502\n\u2502 --show-completion [bash|zsh|fish|powershell|pwsh] Show completion for the specified \u2502\n\u2502 shell, to copy it or customize the \u2502\n\u2502 installation. \u2502\n\u2502 [default: None] \u2502\n\u2502 --help Show this message and exit. \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\u256d\u2500 Commands \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 add \u2502\n\u2502 backup \u2502\n\u2502 remove \u2502\n\u2502 rename \u2502\n\u2502 show \u2502\n\u2502 update \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n```\n\nNote that some commands have some subcommands\n\n```\n$ assman backup --help\n\n\u256d\u2500 Commands \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 copy Copy the data file. This will OVERWRITE the BACKUP file \u2502\n\u2502 paste Paste the backup file. This will OVERWRITE the DATA file \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\n$ assman show --help\n\n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 --one --no-one [default: no-one] \u2502\n\u2502 --sort --no-sort [default: no-sort] \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n```\n\n## Contributing\n\nContributions of any kind to this project are very welcome!\n",
"bugtrack_url": null,
"license": "",
"summary": "Manage reoccuring assignments and tasks.",
"version": "0.1.8",
"project_urls": {
"Bug Reports": "https://github.com/PraxTube/assignment-manager/issues",
"Homepage": "https://github.com/PraxTube/assignment-manager",
"Source": "https://github.com/PraxTube/assignment-manager"
},
"split_keywords": [
"manager",
"task",
"assignment",
"task-manager",
"assignment-manager"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ddcfecd4b33ccc867a83ebd6d53792ca857e355087d6d818fa18b31244374c75",
"md5": "e130a45a7c35af6c4b0737559d8e8084",
"sha256": "df441147c7d7b46c63e8a9a5f0a6908854ce3b62ebeed82cc4372caa512e0daf"
},
"downloads": -1,
"filename": "assignment_manager-0.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e130a45a7c35af6c4b0737559d8e8084",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8, <4",
"size": 7799,
"upload_time": "2023-05-15T14:30:32",
"upload_time_iso_8601": "2023-05-15T14:30:32.671494Z",
"url": "https://files.pythonhosted.org/packages/dd/cf/ecd4b33ccc867a83ebd6d53792ca857e355087d6d818fa18b31244374c75/assignment_manager-0.1.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0bd6335dbdac4c2de075cffbe5d90202a23aa498b63c381a321549dcf3566d56",
"md5": "34c8701890bcc9972b595d02ba001a7a",
"sha256": "5a35ab6c69a9acbd9cb8bfc27a9704e2e65d97735afc0c12e61c4da131cf191f"
},
"downloads": -1,
"filename": "assignment-manager-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "34c8701890bcc9972b595d02ba001a7a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8, <4",
"size": 8224,
"upload_time": "2023-05-15T14:30:34",
"upload_time_iso_8601": "2023-05-15T14:30:34.481780Z",
"url": "https://files.pythonhosted.org/packages/0b/d6/335dbdac4c2de075cffbe5d90202a23aa498b63c381a321549dcf3566d56/assignment-manager-0.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-15 14:30:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PraxTube",
"github_project": "assignment-manager",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "black",
"specs": [
[
"==",
"23.3.0"
]
]
},
{
"name": "bleach",
"specs": [
[
"==",
"6.0.0"
]
]
},
{
"name": "blessed",
"specs": [
[
"==",
"1.20.0"
]
]
},
{
"name": "build",
"specs": [
[
"==",
"0.10.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2022.12.7"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.15.1"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.1.0"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.1.3"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.6"
]
]
},
{
"name": "commonmark",
"specs": [
[
"==",
"0.9.1"
]
]
},
{
"name": "cryptography",
"specs": [
[
"==",
"40.0.2"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.19"
]
]
},
{
"name": "flake8",
"specs": [
[
"==",
"6.0.0"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.4"
]
]
},
{
"name": "importlib-metadata",
"specs": [
[
"==",
"6.6.0"
]
]
},
{
"name": "inquirer",
"specs": [
[
"==",
"3.1.3"
]
]
},
{
"name": "jaraco.classes",
"specs": [
[
"==",
"3.2.3"
]
]
},
{
"name": "jeepney",
"specs": [
[
"==",
"0.8.0"
]
]
},
{
"name": "keyring",
"specs": [
[
"==",
"23.13.1"
]
]
},
{
"name": "markdown-it-py",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "mccabe",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "mdurl",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "more-itertools",
"specs": [
[
"==",
"9.1.0"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"23.1"
]
]
},
{
"name": "pathspec",
"specs": [
[
"==",
"0.11.1"
]
]
},
{
"name": "pkginfo",
"specs": [
[
"==",
"1.9.6"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"3.5.1"
]
]
},
{
"name": "pycodestyle",
"specs": [
[
"==",
"2.10.0"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.21"
]
]
},
{
"name": "pyflakes",
"specs": [
[
"==",
"3.0.1"
]
]
},
{
"name": "Pygments",
"specs": [
[
"==",
"2.15.1"
]
]
},
{
"name": "pyproject_hooks",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "python-editor",
"specs": [
[
"==",
"1.0.4"
]
]
},
{
"name": "readchar",
"specs": [
[
"==",
"4.0.5"
]
]
},
{
"name": "readme-renderer",
"specs": [
[
"==",
"37.3"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.28.2"
]
]
},
{
"name": "requests-toolbelt",
"specs": [
[
"==",
"0.10.1"
]
]
},
{
"name": "rfc3986",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"12.6.0"
]
]
},
{
"name": "SecretStorage",
"specs": [
[
"==",
"3.3.3"
]
]
},
{
"name": "shellingham",
"specs": [
[
"==",
"1.5.0.post1"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"2.0.1"
]
]
},
{
"name": "twine",
"specs": [
[
"==",
"4.0.2"
]
]
},
{
"name": "typer",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"1.26.15"
]
]
},
{
"name": "wcwidth",
"specs": [
[
"==",
"0.2.6"
]
]
},
{
"name": "webencodings",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.15.0"
]
]
}
],
"tox": true,
"lcname": "assignment-manager"
}