Mercurial > hg > toolbox
comparison TODO.txt @ 0:b0942f44413f
import from git://github.com/mozilla/toolbox.git
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Sun, 11 May 2014 09:15:35 -0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:b0942f44413f |
|---|---|
| 1 TODO: "plain text" base format | |
| 2 ------------------------------ | |
| 3 | |
| 4 Add an import/export model a la | |
| 5 http://k0s.org/portfolio/python/python-tools.txt; example: | |
| 6 | |
| 7 """ | |
| 8 * https://pypi.python.org/pypi/bidict | |
| 9 bidirectional (one-to-one) mapping data structure | |
| 10 {data structure} | |
| 11 | |
| 12 * https://pypi.python.org/pypi/etherpad_lite | |
| 13 Python interface for Etherpad-Lite's HTTP API | |
| 14 https://github.com/devjones/PyEtherpadLite | |
| 15 | |
| 16 * https://pypi.python.org/pypi/gitdb | |
| 17 git object database | |
| 18 {storage, versioning} | |
| 19 """ | |
| 20 | |
| 21 | |
| 22 TODO: Tool Sources | |
| 23 ------------------ | |
| 24 | |
| 25 In addition to manually indexed tools, toolbox is intended to harvest | |
| 26 index data from distributed sources. Several scrapers should be | |
| 27 written and run on a scheduled basis (i.e. with a cron job or | |
| 28 preferably something that could actually be reliably depended on and | |
| 29 automatable via python). Useful project sources are: | |
| 30 | |
| 31 * setup.py for python projects | |
| 32 * addons.mozilla.org pages | |
| 33 * OpenWebApps: https://developer.mozilla.org/en/OpenWebApps/The_Manifest | |
| 34 * userscripts: e.g. https://www.squarefree.com/userscripts/tidybox.user.js | |
| 35 | |
| 36 | |
| 37 TODO: (Alternate) Links | |
| 38 ----------------------- | |
| 39 | |
| 40 Currently, each tool has one canonical URL. | |
| 41 Since toolbox is an index, this has the distinct advantage of | |
| 42 associating a single URL with the project. It is assumed that the | |
| 43 linked-to resource should point to auxilliary resources as necessary. | |
| 44 | |
| 45 However, as an index is useful for correlating information -- | |
| 46 connecting the dots -- allowing a variety of links both allows the | |
| 47 browser to have information at their fingertips, but also to allow | |
| 48 mapping and intelligent manipulation of tools by their link types. | |
| 49 Several types of links may be recorded: | |
| 50 | |
| 51 * repository | |
| 52 * how to report bugs | |
| 53 * wiki | |
| 54 * pypi | |
| 55 | |
| 56 | |
| 57 TODO: Directory Structure | |
| 58 ------------------------- | |
| 59 | |
| 60 Each function should live in its own module:: | |
| 61 | |
| 62 . | |
| 63 +-README.txt | |
| 64 +-ABOUT.txt | |
| 65 +-INSTALL.sh | |
| 66 +-setup.py | |
| 67 +-paste.ini | |
| 68 | | |
| 69 toolbox | |
| 70 | | |
| 71 +-web.py | |
| 72 +-factory.py | |
| 73 +-json.py | |
| 74 | | |
| 75 handler | |
| 76 || | |
| 77 |... | |
| 78 | | |
| 79 model | |
| 80 || | |
| 81 |... | |
| 82 | | |
| 83 static | |
| 84 || | |
| 85 |... | |
| 86 | | |
| 87 templates | |
| 88 | |
| 89 | |
| 90 URLs | |
| 91 ---- | |
| 92 | |
| 93 A more RESTful proposed URL schema: | |
| 94 | |
| 95 /{{project}} | |
| 96 * PUT: replace the project | |
| 97 * GET: return the project | |
| 98 * POST: update the project | |
| 99 * DELETE: remove the project | |
| 100 | |
| 101 /{{project}}/{{field}} | |
| 102 * PUT: replace all field values | |
| 103 * POST: for lists, add field values | |
| 104 * GET: return field value(s) | |
| 105 | |
| 106 /{{project}}/{{field}}/{{value}} | |
| 107 * DELETE: remove value from a list field | |
| 108 | |
| 109 /{{field}} | |
| 110 * POST: rename a field value: /{{field}}?jahml=jhammel | |
| 111 * should also take a description | |
| 112 |
