[ANN] custom 0.3 released
Luke Kenneth Casson Leighton
lkcl@samba-tng.org
Sun, 29 Dec 2002 01:40:00 +0000
Note by the author
------------------
the history of this project is that it is a live-running and
also continuously developing project to meet a hard-nosed
businesses needs. the decision to make it open source has
been considered for some time, and recently actioned.
the primary motivation for releasing Custom as open source is
to make it possible for managers and developers to use Custom,
not just myself and the day-to-day staff at the business where
Custom is in use.
on with the release notes...
Custom
------
custom is an e-commerce solution for small to medium-sized
businesses that provides:
- a web front-end for customers and Point-of-Sale
staff to place orders
- for warehouse staff to manage stock
- for accountants and sales staff to manage and generate invoices
- for purchasing managers to keep track of suppliers and
competitive pricing.
Download
--------
http://sf.net/projects/custom
Requirements
------------
This package requires or uses the following software,
where the MySQL or MS-SQL package need not necessarily
be installed on the same server as the rest:
- Python 2.1 or greater
(http://python.org)
- EITHER:
- MySQL client libraries
(http://mysql.org)
- Andy Dustman's MySQLdb package (requires MySQL client)
(http://sf.net/projects/mysqldb)
OR:
- Pysxqmll (a Python / MS-SQL / XML client for MS-SQL 2000)
(http://sf.net/projects/pysxqmll) [what a stupid name.]
- The mxDateTime and DateTime packages
(http://starship.skyport.net/~lemburg/mxDateTime.html)
- PyCrypto version 1.9a1 or greater
(http://sf.net/pycrypto)
In case you were wondering, PostgreSQL is under
investigation to be added into the database abstraction
system that custom uses.
custom uses some features in the SocketServer class that
were introduced in Python 2.1.
If you wish to stick with Python 2.0, you may wish to
copy over the SocketServer.py file from the distribution
of Python 2.1 or greater, and use that (making sure that
you back up your original SocketServer.py file!)
SQL
---
You must also install MySQL or MS-SQL 2000 on a server,
where you may wish to install the SQL server on a
separate system.
A high-availability cluster pair is recommended,
under which circumstances, if you are considering HA,
you should NOT install the custom package on the same
box as the SQL database.
Yet.
Optional requirements
---------------------
A barcode scanning device, such as those available from
Worth Data (www.pcbarcode.com) that reads EAN and other
barcodes and pretends to be a USB keyboard, proves to
be very useful.
If you are running Linux, install the full HID USB
device module and the Input Device and Keyboard
support modules:
CONFIG_INPUT=m
CONFIG_INPUT_KEYBDEV=m
CONFIG_USB_HID=m
Do not be fooled into installing the partial HID USB
keyboard device (CONFIG_USB_KBD) on its own, because
it won't work, you MUST install the full HID support.
TODO
----
- Create website to describe custom
- Create user documentation
- Move as much administration into SQL as possible
NOTES
-----
Please read the INSTALL.txt notes in each directory.
The order of installation of the packages is not
important, however in order to run the start-up commands
specified in the INSTALL.txt notes, you should follow
the instructions to the letter, in the following order:
- pysqldb/
- cgi/
- Example/
- db/
The purpose of each package is explained below:
- pysqldb/
pysqldb contains the package DPyDB which is a
collection of SQL abstraction and configuration
management classes.
- cgi/
cgi contains the HTML dynamic content generation
scripts for your site. this is the back-bone
of the custom package.
however, the formatting and presentation of
the HTML is left to some base classes, and
you are expected to write your own formatting
classes, with the Example/ site presentation
classes as... well... examples :) for you to
base them on.
- Example/
Example/ contains some classes responsible
for presentation of your web site, and it also
contains the configuration file for the whole
package, /etc/custom.conf.
If you wish to start creating your own web
site immediately, you should copy this entire
subdirectory, global/search replace the word
"Example" in all files with your own appropriate
directory name, and start from there.
Typical examples of the functions used are
print_html and print_footer, which, funnily
enough, output the HTML content at the start
and end of every web page, respectively.
This is the bit where you may wish to consult
with other users of custom, or to hire the
author to help with your site design...
- db/
db contains all the database management routines
used by both the front-end and the back-end
of the custom package.
db depends on pysqldb, and in turn, the cgi
scripts and back-office program monitord.py
depend on db/