Code

use config.DATABASE in cases where 'db' was still hard-coded
[roundup.git] / doc / features.txt
index a09b1fc8d737706cb1388ab33a2e8047b10d6cc9..e1fa98eef211cc0558041db7c496bf3419e3b141 100644 (file)
@@ -2,30 +2,67 @@
 Roundup Features
 ================
 
-
 Roundup is a simple-to-use and -install issue-tracking system with
 web, e-mail and command-line interfaces. It is based on the winning design
 from Ka-Ping Yee in the Software Carpentry "Track" design competition.
 
+*simple to install*
+ - installation (including web interface) takes about 30 minutes
+ - instant-gratification ``python demo.py`` :)
+ - two templates included in the distribution for you to base your tracker on
+ - play with the demo, customise it and then use *it* as the template for
+   your production tracker
+ - requires *no* additional support software - python (2.3+ but not 3+) is
+   enough to get you going
+ - easy to set up higher-performance storage backends like sqlite_,
+   mysql_ and postgresql_
 
 *simple to use*
  - accessible through the web, email, command-line or Python programs
  - may be used to track bugs, features, user feedback, sales opportunities,
-   ...
- - keeps a full history of changes to issues
+   milestones, ...
+ - automatically keeps a full history of changes to issues with
+   configurable verbosity and easy access to information about who created
+   or last modified *any* item in the database
+ - issues have their own mini mailing list (nosy list)
+ - users may sign themselves up, there may be automatic signup for
+   incoming email and users may handle their own password reset requests
 
-*simple to install*
- - installation takes about 10 minutes for a basic installation
- - two "template" schemas included in the distribution for you to base your
-   tracker on
+*highly configurable*
+ - web interface HTML is fully editable
+ - database schema is also fully editable (only the "user" class is required)
+   with a full set of data types (including dates and many-to-many relations)
+   across all storages available
+ - customised automatic auditors and reactors may be written that perform
+   actions before and after changes are made to entries in the database,
+   or may veto the creation or modification of items in the database
+ - samples are provided for all manner of configuration changes and
+   customisations
+
+*fast, scalable*
+ - with the sqlite, mysql and postgresql backends, roundup is
+   also fast and scalable, easily handling thousands of issues and users
+   with decent response times
+ - database indexes are automatically added for those backends that
+   support them (sqlite, mysql and postgresql)
+ - indexed text searching giving fast responses to searches across all
+   messages and indexed string properties
+ - support for the Xapian full-text indexing engine for large trackers
+
+*documented*
+ - documentation exists for installation, upgrading, maintenance, users and
+   customisation
 
 *web interface*
- - fully editable interfaces for indexing and display of items
+ - fully editable interfaces for listing and display of items
+ - extendable to include wizards, parent/meta bug displays, ...
  - differentiates between anonymous, known and admin users
  - may be set up to require login, and may also only allow admin users
    to register new users
- - may be run through CGI as a normal cgi script, as a stand-alone
-   web server, or through Zope
+ - authentication of user registration and user-driven password resetting
+   using email and one time keys
+ - may be run using WSGI or through CGI as a normal cgi script, as a
+   stand-alone web server, under mod_python or through Zope
  - searching may be performed using many constraints, including a full-text
    search of messages attached to issues
  - file attachments (added through the web or email) are served up with the
@@ -33,11 +70,16 @@ from Ka-Ping Yee in the Software Carpentry "Track" design competition.
  - email change messages generated by roundup appear to be sent by the
    person who made the change, but responses will go back through the nosy
    list by default
+ - flexible access control built around Permissions and Roles with assigned
+   Permissions
+ - generates valid HTML4 or XHTML
+ - detects concurrent user changes
+ - saving and editing of user-defined queries which may optionally be
+   shared with other users
 
 *e-mail interface*
  - may be set up using sendmail-like delivery alias, POP polling or mailbox
    polling
- - issues have their own mini mailing list (nosy list)
  - may auto-register users who send in mail and aren't known to roundup
  - nosy list configuration controls how people are added and when messages
    are sent to the list
@@ -50,17 +92,22 @@ from Ka-Ping Yee in the Software Carpentry "Track" design competition.
    threaded
  - users may send in messages from multiple addresses and be associated
    with the same roundup username
+ - built-in security features like TLS and APOP
 
 *command-line*
  - may be used to interactively manage roundup databases
  - may be scripted using standard shell scripting
  - roundup's API may also be used by other Python programs - a sample is
    provided that runs once a day and emails people their assigned issues
+ - a variety of sample shell scripts are provided (weekly reports, issue
+   generation, ...)
 
-*highly configurable*
- - web interface HTML is fully editable
- - database schema is also fully editable
- - customised automatic auditors and reactors may be written that perform
-   actions before and after changes are made to entries in the database
- - samples are provided for all types of configuration changes
+*xmlrpc interface*
+ - simple remote tracker interface with basic HTTP authentication
+ - provides same access to tracker as roundup-admin, but based on
+   XMLRPC calls
+
+.. _sqlite: http://www.hwaci.com/sw/sqlite/
+.. _mysql: http://sourceforge.net/projects/mysql-python
+.. _postgresql: http://initd.org/software/initd/psycopg