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