[ANN] custom 0.7.1 released

Luke Kenneth Casson Leighton lkcl@samba-tng.org
Mon, 3 Mar 2003 10:09:47 +0000


Custom 0.7.1
------

	custom is an e-commerce solution for small to medium-sized
	businesses that provides:
	
	- a customisable 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


OS Requirements
---------------

	Custom is a pure Python application.  Therefore it is entirely
	your choice as to what OS you use, but it must obviously run
	python (see http://python.org).  Python is known to run on
	Linux, all version of Unix, all the BSDs, BEOS, MAC/OS 10,
	and many others.

Additional Features
-------------------

	The major changes since 0.6 are the inclusion of product
	reconciliation scripts.  Stock from multiple suppliers
	results in products with the same name: the database
	becomes quickly unmanageable...

	The major changes since 0.5 are the use of HTML templates
	which may be modified at the webmaster's discretion,
	independent of the source code.


Security Considerations (Internet use only)
-----------------------

	Please note that if you intend to put Custom on an Internet
	Server that you should consult with a security expert regarding
	your implementation, paying particular attention if you are in
	the UK to the Data Protection Act.

	Your choice of OS and your implementation of Custom should
	reflect your willingness to ensure that your customers'
	confidentiality (and credit card details) is protected from
	hackers.

	In other words, being blunt and spelling it out: please don't
	install Custom on a default installation of Windows with no
	security patches, no firewall, and then expect it to stay up
	on the Internet without getting hacked.

	Your data is ENTIRELY your responsibility.  By Law.


Software Requirements
---------------------

	This package requires or uses some additional software
	packages, which can all be obtained as RPMs, Debian
	Packages or compiled from Source if you feel the need.
	At each site, RPMs, DEBs and source are all typically
	available for download.

	RPMs can be found using rpmfind.net; Debian packages
	can be found using apt-cache search <packagename>,
	using dselect or going to debian.org; and the Source
	packages are available individually at the URLs shown
	below.

	You should always ensure that, if you are putting Custom
	on an Internet Server, that the latest security fixes have
	been applied (on an on-going basis), and that you keep
	up-to-date with security alerts, e.g. from bugtraq and
	NTbugtraq.


	Of particular note is that if you wish to use a separate
	SQL database server, then obviously you need to install
	the client-side SQL access software on the Custom server,
	but you will clearly not need to install the SQL server
	software on the same machine.

	You will need:

	- An up-to-date web server capable of SSL (if you need it)
	  and also capable of running CGI-bin scripts.  e.g. Apache2
	  (http://apache.org)

	- Python 2.1 or greater
	  (http://python.org)

	- the pysqldb package version 0.5 or greater
	  (http://sf.net/projects/pysqldb)

	- 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) 

	- Python HTML-TMPL (generates HTML from templates)

	In case you were wondering, PostgreSQL and SAPdb are 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!)

Debian install
------

	It's a lot easier if you are using Debian: here is a list of
	the package names.  It'll be even easier once the Debian
	packaging is released.

	- python-crypto
	- python-egenix-mxdatetime
	- python-mysqldb
	- python-htmltmpl
	- apache or apache2

	If you install the three python packages using apt-get or dselect,
	that should be enough to pull in all the dependencies
	(including Python 2.2 and MySQL)

	The development of the debian "custom" package is presently
	underway.


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.

	If you do so, as noted above you will need to put the
	MySQL or MS-SQL client libraries onto the Custom Server
	and

	For various reasons, a high-availability cluster pair is
	recommended for your SQL system, under which circumstances,
	if you are considering HA, you CAN install the custom
	package on the same box as the SQL database - if you know
	what you are doing (otherwise, run only one Custom server
	and use a separate SQL cluster).

	You WILL be able to run the Back Office program monitord.py,
	on a HA cluster, because it is designed to cope with several
	concurrent copies of monitord.py running off the same SQL
	server.


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.