[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/