view TODO.txt @ 18:87990e313a91 default tip

py3
author Jeff Hammel <k0scist@gmail.com>
date Tue, 24 Nov 2020 13:16:53 -0800
parents b0942f44413f
children
line wrap: on
line source

TODO: "plain text" base format
------------------------------

Add an import/export model a la
http://k0s.org/portfolio/python/python-tools.txt; example:

"""
* https://pypi.python.org/pypi/bidict
  bidirectional (one-to-one) mapping data structure
  {data structure}

* https://pypi.python.org/pypi/etherpad_lite
  Python interface for Etherpad-Lite's HTTP API
  https://github.com/devjones/PyEtherpadLite

* https://pypi.python.org/pypi/gitdb
  git object database
  {storage, versioning}
"""


TODO: Tool Sources
------------------

In addition to manually indexed tools, toolbox is intended to harvest
index data from distributed sources.  Several scrapers should be
written and run on a scheduled basis (i.e. with a cron job or
preferably something that could actually be reliably depended on and
automatable via python).  Useful project sources are:

* setup.py for python projects
* addons.mozilla.org pages
* OpenWebApps: https://developer.mozilla.org/en/OpenWebApps/The_Manifest
* userscripts: e.g. https://www.squarefree.com/userscripts/tidybox.user.js


TODO: (Alternate) Links
-----------------------

Currently, each tool has one canonical URL.
Since toolbox is an index, this has the distinct advantage of
associating a single URL with the project.  It is assumed that the
linked-to resource should point to auxilliary resources as necessary.

However, as an index is useful for correlating information --
connecting the dots -- allowing a variety of links both allows the
browser to have information at their fingertips, but also to allow
mapping and intelligent manipulation of tools by their link types.
Several types of links may be recorded:

* repository
* how to report bugs
* wiki
* pypi


TODO: Directory Structure
-------------------------

Each function should live in its own module::

 .
 +-README.txt
 +-ABOUT.txt
 +-INSTALL.sh
 +-setup.py
 +-paste.ini
 |
 toolbox
  |
  +-web.py
  +-factory.py
  +-json.py
  |
  handler
  ||
  |...
  |
  model
  ||
  |...
  |
  static
  ||
  |...
  |
  templates


URLs
----

A more RESTful proposed URL schema:

/{{project}}
* PUT: replace the project
* GET: return the project
* POST: update the project
* DELETE: remove the project

/{{project}}/{{field}}
* PUT: replace all field values
* POST: for lists, add field values
* GET: return field value(s)

/{{project}}/{{field}}/{{value}}
* DELETE: remove value from a list field

/{{field}}
* POST: rename a field value: /{{field}}?jahml=jhammel
* should also take a description