arkadianriver / hqtodo

See your Todo list as a Gantt chart, view your velocity, and review finished items by week and by tagged category.
https://www.arkadianriver.com/posts/hqtodo/
MIT License
14 stars 3 forks source link
apexcharts gantt mermaid todo

= hqTodo :experimental: :toc: :toc-placement!: ifdef::env-github[] :tip-caption: :bulb: :note-caption: :information_source: :important-caption: :heavy_exclamation_mark: :caution-caption: :fire: :warning-caption: :warning: endif::[] ifndef::env-github[] :icons: font endif::[]

pass:[

build status

]

If you love keyboard shortcuts and things like Org mode, you might like hqTodo to present your complete agile workflow from one easily editable Todo list in VS Code. Rather than drag cards around and click and open various windows, use Fabio Spampinato's link:https://github.com/fabiospampinato/vscode-todo-plus[TODO+ extension] to capture status, categories, and estimates as individual todo items in a text file, with keyboard shortcuts to prioritize and close issues. His extension is awesome, and with this li'l hqTodo web app, all that information is summarized in an easily consumable report for you (and your team if you want).

pass:[

view a sample

]

//// pass:[

 

] ////

== Features

== Running the app

Prereq: NodeJS v12 or higher.

. Set things up. .. Copy the config/default.json file to config/production.json and add your info to the new file. Your own TODO file can be anywhere on the file system the app can access, such as a shared Cloud or Network mounted folder. .. Install server dependencies: + [source, bash]

npm install

.. Install client dependencies and build it: + [source, bash]

cd client-react-carbon npm install npm run build cd ..

. Thereafter, run the app with ... + [source, bash]

./run

+ ... and point your browser to http://localhost:3000. + kbd:[Ctrl+C] stops the server.

One way to deploy the app in "production" is to run it on a server with pm2, systemctl, etc., and add your TODO file to a folder on the server that's synced with your local workstation with SyncThing or similar cloud folder sync application.

//// == Deploy

For example with systemd on Linux:

[source,bash]

vi misc/hqtodo.service # change the absolute paths and user sudo cp misc/hqtodo.service /etc/systemd/system/ sudo systemctl start hqtodo sudo journalctl -f # to verify. Also test in a browser sudo systemctl enable hqtodo

////

== Maintaining your todo file

For the most part, link:https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-todo-plus#usage[update your TODO file] as you normally would. There are a few conventions to use for the app to work. link:TODO[See the sample TODO file] as an example.

Everything in your TODO file is ignored except ...

... where a todo item is a line starting with ☐ or ✔.

=== Active todo items

Syntax:

[source,bash]

☐ [@today|@high|@low] [@Nh] [@custom ]*

Example:

[source,bash]

☐ @high Work with so-and-so on such-and-such @4h @prja @prjb

=== Interruptions

You can let folks know about vacations and other "interruptions" to your steady velocity. Specify the duration and start date as business days only.

Syntax:

[source,bash]

☐ [Nd starting YYYY-MM-DD]: </h2> <p>Example:</p> <h2>[source,bash]</h2> <h2>☐ [5d starting 2020-05-18]: Whiz-Bang-Boom conference</h2> <p>=== Milestones</p> <p>Milestones have the same form as an interrupt, but with a length of zero days (<code>0d</code>).</p> <p>Example:</p> <h2>[source,bash]</h2> <h2>☐ [0d starting 2020-06-15]: Complete Project A @proja</h2> <p>Milestones show up in their own section above the others.</p> <p>=== Referencing a GitHub repo</p> <p>If you reference a particular issue in your todo text (for example if you use the linkme VS Code extension), the Gantt chart will link to the issue from the task bar and todo text.</p> <p>Edit the config file repo URL to point to your own repo. As set up now, it has two patterns:</p> <ul> <li>one pattern that links to the default repo that you specify in the config file <code>ghihq•4</code></li> <li>one pattern that links to whatever repo you specify in the todo file itself <code>ghi•ragnoroct/linkme•9</code></li> </ul> <p>You can of course change the patterns to link to whatever you want.</p> <p>=== Archived todos</p> <p>If you archive your done items (e.g. kbd:[Cmd+Shift+A]]), they will be available at the bottom along with a graph of the cumulative story points you've knocked out over time. Marvel at your progress!</p> <p>TIP: Use category tags in your todo items to see them grouped and totaled by category.</p> <p>=== The taginfo section</p> <p>Use this section if you want to provide a more descriptive title and link to more information on the project.</p> <p>The structure of each entry:</p> <h2>[source,bash]</h2> <h2>☐ @tagname full title of the project or category - url or linkme link</h2> <p>Example:</p> <h2>[source,bash]</h2> <h2>☐ @prja Project A - den•bRNzBMOVaqYl6i7C.html</h2> <p>I personally link to pages published with link:<a rel="noreferrer nofollow" target="_blank" href="https://dendron.so[Dendron">https://dendron.so[Dendron</a>], because I like to also use VS Code for my note taking, and Dendron has a cool feature where you can publish Notes to a web site.</p> <p>== What's next?</p> <p>See the link:<a rel="noreferrer nofollow" target="_blank" href="https://arkadianriver.github.io/hqtodo/ejs/hq.html[@hq">https://arkadianriver.github.io/hqtodo/ejs/hq.html[@hq</a> project] in the Classic-styled hqTodo file.</p></div> </div> <div class="footer"> <ul class="body"> <li>© <script> document.write(new Date().getFullYear()) </script> Githubissues.</li> <li>Githubissues is a development platform for aggregating issues.</li> </ul> </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script> <script src="/githubissues/assets/js.js"></script> <script src="/githubissues/assets/markdown.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/highlight.min.js"></script> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.4.0/build/languages/go.min.js"></script> <script> hljs.highlightAll(); </script> </body> </html>