/[shmookey]/dispense2/README


UCC Code Repository

Contents of /dispense2/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 35 - (show annotations) (download)
Wed Nov 7 13:48:14 2007 UTC (11 years, 6 months ago) by shmookey
File size: 2854 byte(s)
using this file as a map of my thoughts

1 The OpenDispense Project MK2
2 =============================
3
4 Contents:
5 0. Introduction
6 1. What needs to be done?
7 2. The OpenDispense Protocol
8
9 0. Introduction
10 ---------------
11
12 Open-source versions of dispense have been attempted, and failed, many times. It's time we try again, this time armed with better languages and better libraries.
13
14 PowerPoint presentations and design documents and phases and stuff are cool, but they're not needed for a small group of unpaid students, and only serve to dissapate the limited pool of motivation we have to work with. It's likely that this was partly the cause of the death of the last attempt.
15
16 And as such, I'm going to keep this short.
17
18 1. What needs to be done?
19 -------------------------
20
21 1. Framework (basically needs to be done in order):
22 * DONE - Create basic twisted servers for the coke machine and for the central dispense system.
23 * DONE - Create some basic twisted client code, which will eventually be the python Dispense module.
24 * Fill out the three programs to speak the OpenDispense XML protocol properly to each other.
25 * Create interfaces for the coke machine, authentication and accounting mechanisms.
26
27 2. Implementation (can mostly be done simultaneously or in any order):
28 * Implement the authentication mechanism.
29 * Implement the accounting mechanism.
30 * Implement the coke machine mechanism.
31 * Round off the client code and make it into a simple to use Python module, and subsequently,
32 * Create interactive and command-line based clients.
33
34 2.5. Improvements (not a lot of incentive to do these until the system is already working)
35 * Add request tracking numbers to the protocol.
36 * Add failure/success status codes to the protocol.
37 * Clean up the protocol in general.
38
39 3. New core that supports pluggable vending machines and django on rails ssh load-balancing raytracing beer sex.
40 * Let's cross this bridge when we come to it.
41
42 2. The OpenDispense Protocol
43 ----------------------------
44
45 This protocol is incomplete and is added to and changed as required during development.
46
47 <Dispense>
48 <Message type="welcome">Welcome to Dispense!</Message>
49 <Login username="shmookey" password="password" />
50 <Message type="failure">Incorrect login. You have 3 tries left.</Message>
51 <Account username="shmookey" balance="128" incoke="false" indoor="true" />
52 <Request type="list" />
53 <Request type="dispense" slot="3" />
54 </Dispense>
55
56 Guidelines for development:
57 * Only one instruction allowed per document. This makes programming for it a lot simpler, and in a system like this network speed and efficiency are a non-issue.
58 * Show the user anything recieved in a <Message /> tag as it may contain important information.
59 * The response to a correct login is to send through the account details for that account.
60 * Respond to any disallowed instruction with a <Message type="failure">Reason</Message>
61

Managed by UCC Webmasters ViewVC Help
Powered by ViewVC 1.1.26