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 |