Code

- add comment to clarify semantics if pytz is installed
[roundup.git] / doc / features.txt
1 ================
2 Roundup Features
3 ================
5 Roundup is a simple-to-use and -install issue-tracking system with
6 web, e-mail and command-line interfaces. It is based on the winning design
7 from Ka-Ping Yee in the Software Carpentry "Track" design competition.
9 *simple to install*
10  - installation (including web interface) takes about 30 minutes
11  - instant-gratification ``python demo.py`` :)
12  - two templates included in the distribution for you to base your tracker on
13  - play with the demo, customise it and then use *it* as the template for
14    your production tracker
15  - requires *no* additional support software - python (2.3+ but not 3+) is
16    enough to get you going
17  - easy to set up higher-performance storage backends like sqlite_,
18    mysql_ and postgresql_
20 *simple to use*
21  - accessible through the web, email, command-line or Python programs
22  - may be used to track bugs, features, user feedback, sales opportunities,
23    milestones, ...
24  - automatically keeps a full history of changes to issues with
25    configurable verbosity and easy access to information about who created
26    or last modified *any* item in the database
27  - issues have their own mini mailing list (nosy list)
28  - users may sign themselves up, there may be automatic signup for
29    incoming email and users may handle their own password reset requests
31 *highly configurable*
32  - web interface HTML is fully editable
33  - database schema is also fully editable (only the "user" class is required)
34    with a full set of data types (including dates and many-to-many relations)
35    across all storages available
36  - customised automatic auditors and reactors may be written that perform
37    actions before and after changes are made to entries in the database,
38    or may veto the creation or modification of items in the database
39  - samples are provided for all manner of configuration changes and
40    customisations
42 *fast, scalable*
43  - with the sqlite, mysql and postgresql backends, roundup is
44    also fast and scalable, easily handling thousands of issues and users
45    with decent response times
46  - database indexes are automatically added for those backends that
47    support them (sqlite, mysql and postgresql)
48  - indexed text searching giving fast responses to searches across all
49    messages and indexed string properties
50  - support for the Xapian full-text indexing engine for large trackers
52 *documented*
53  - documentation exists for installation, upgrading, maintenance, users and
54    customisation
56 *web interface*
57  - fully editable interfaces for listing and display of items
58  - extendable to include wizards, parent/meta bug displays, ...
59  - differentiates between anonymous, known and admin users
60  - may be set up to require login, and may also only allow admin users
61    to register new users
62  - authentication of user registration and user-driven password resetting
63    using email and one time keys
64  - may be run using WSGI or through CGI as a normal cgi script, as a
65    stand-alone web server, under mod_python or through Zope
66  - searching may be performed using many constraints, including a full-text
67    search of messages attached to issues
68  - file attachments (added through the web or email) are served up with the
69    correct content-type and filename
70  - email change messages generated by roundup appear to be sent by the
71    person who made the change, but responses will go back through the nosy
72    list by default
73  - flexible access control built around Permissions and Roles with assigned
74    Permissions
75  - generates valid HTML4 or XHTML
76  - detects concurrent user changes
77  - saving and editing of user-defined queries which may optionally be
78    shared with other users
80 *e-mail interface*
81  - may be set up using sendmail-like delivery alias, POP polling or mailbox
82    polling
83  - may auto-register users who send in mail and aren't known to roundup
84  - nosy list configuration controls how people are added and when messages
85    are sent to the list
86  - auto-filing of "unformatted" messages into a particular class
87  - e-mail attachments are handled sanely, being attached to the issue they're
88    intended for, and forwarded on to the nosy list
89  - sane handling of content-type and content-encoding of messages (text/plain
90    preferred in all situations)
91  - email packages that display threading will show issue messages correctly
92    threaded
93  - users may send in messages from multiple addresses and be associated
94    with the same roundup username
95  - built-in security features like TLS and APOP
97 *command-line*
98  - may be used to interactively manage roundup databases
99  - may be scripted using standard shell scripting
100  - roundup's API may also be used by other Python programs - a sample is
101    provided that runs once a day and emails people their assigned issues
102  - a variety of sample shell scripts are provided (weekly reports, issue
103    generation, ...)
105 *xmlrpc interface*
106  - simple remote tracker interface with basic HTTP authentication
107  - provides same access to tracker as roundup-admin, but based on
108    XMLRPC calls
110 .. _sqlite: http://www.hwaci.com/sw/sqlite/
111 .. _mysql: http://sourceforge.net/projects/mysql-python
112 .. _postgresql: http://initd.org/software/initd/psycopg