About
It scans twitter timeline, looking for transactions between users, for your currency.
Licenced under Affero GPL v3
Preparing your system
Install the following packages on your system
- subversion (to download the sources)
- graphviz (to generate graphs)
- apache2 (the web server)
- php5 (the scripting language to make TwitBank run)
- sqlite3 (the database system needed by TwitBank)
- php5-sqlite3 and php5-sqlite (to make sqlite3 run into php5)
Configure your apache server properly.
Getting the sources
First, download it:
Make sure that your apache installation points to the directory where twitbank was downloaded.
Managing your currency
Then, configure your currency manager :
Lets say your currency is called
karma .
First create an empty database :
Modify the file
common/config.php and adapt it to your needs (change currency name, database name, etc...)
- $config['currency'] = 'karma';
- $config['initial_balance'] = 200;
- $config['database'] = 'sqlite:twitbank.sqlite3';
Regulary call the "update.php" page (either by running a cron job on your server or by adding a javascript call to this page on every visit of the
TwitBank instance).
Overview
Currency transaction grammar should be very simple
- EXPR :=
- | SEND_ACTION USER AMOUNT CURRENCY TEXT
- | SEND_ACTION AMOUNT CURRENCY USER TEXT
- | REQUEST_ACTION USER AMOUNT CURRENCY TEXT
- | REQUEST_ACTION AMOUNT CURRENCY USER TEXT
- | REQUEST_ACTION AMOUNT CURRENCY TEXT
- | DROP_ACTION AMOUNT CURRENCY TEXT
- | JOIN_ACTION AMOUNT CURRENCY
where AMOUNT, CURRENCY and USER are defined as follow.
- AMOUNT := a non-null positive integer value (1, 2, 3, ..., 5, ...)
- CURRENCY := currency name, prefixed by # or $
- USER := a twitter user name, prefixed by @
TwitBank should also support multiple languages.
Actions
Giving money
- SEND_ACTION :=
- | "->"
- | "give" | "gives" | "gave" | "send" | "sent"
- | "donne" | "A donné "| "Envoie"
- | "δίνω" | "δίνει" | "Îδωσε" | "Îδωσα" | "Îστειλα"
- | ...
Dropping money
DROP_ACTION is an action to randomly give money to the system.
- DROP_ACTION :=
- | "-!"
- | "Drop" | "Dropped" | "Drops" | "Lose" | "Lost"
- | "Perd" | "Fait tomber" | "Fais tomber"
- | "Lâche" | "Libère"
- | ...
Joining the game
An amount of money is required.
- JOIN_ACTION := not yet defined)
Examples
In other words, twitbank language should look like real sentences :
- Give 5 #karma @xtof_fr for his great ideas
- Gave @mathieucoste 10 $karma for ...
- Donne 3 $karma @glenux to buy him a new server
Current version is
0.1
Release 0.1 (CURRENT)
Fixes
- code cleanup & factorization (re-usable templates, etc)
- register user at transaction import
Features
- store all messages related to currency (backup purpose)
- reimport all transactions from currency related messages (backup purpose)
- command line setup (create db, fill initial values)
Release 0.2 (WORK IN PROGRESS)
Fixes
- fix image cache update
- only display/compute transactions between real/existing users
Features
- import/export bank data for backup
- add a command to join/register the community
- only take in account registered users (config option)
- (?) add a debug mode (with log)
- shellscript installer (& mirror mode)
Release 0.3
Fixes
Features
- statistical module
- add a web transaction page (with authentication?)
- bank actions (inflation, etc?)
- twitbank installer
openmoney/joytopia/demurrage
other features
- the graphs should display only registered users (config option)
- display X transactions starting at offset O (template)
- generosity ranking
- @Galuel, le terme me semble inaproprié, il me semble plus juste de parler de "transaction ranking" si on veut classer les membres par quantité de monnaie reçue - donnée, ou sur le bilan...
- graph node color change depending on generosity
- @Galuel même remarque, "generosity" est un terme trop chargé de sens pour être lié à une monnaie, la monnaie n'est pas ce qu'on veut qu'elle soit, c'est simplement une quantité d'échanges, chacun y met l'émotion qu'il veut
openmoney
- requesting moneys transaction (appel d'offre)
- @Galuel, à mon sens ce n'est pas l'objet de la monnaie, c'est autre chose, un marché d'échange n'est pas lié à une monnaie, je pense que c'est hors projet, c'est éventuellement un autre projet. Chacun peut offrir des offres et services, ou des propositions d'achat indépendamment d'un lieu unique de transactions
- drop money
- inject money (transaction with the bank that adds credits into user's account)
Graph
- better use of cache
- client-side graph rendering :
Templates
- stats: top 10 / bottom 10 (balance, generosity, etc.)
- administrative page (managing euro<=>currency conversions, etc.)
Importing/Exporting data
- add more input sources (for intranets)
- download transactions graph
- download transactions list (CSV, TXT, XLS, etC.)
Usability & IHM
- internationalisation for transaction words (give, donne, etc.)
- simpler syntaxes/grammars
- better syntax/grammar analyzer (lex, yacc, etc.)
- easy interactive setup (test environment, create db, fill initial values)
- add a option for defining currency logo
Interesting suggestions/questions
@Glenux : Few of my friends don't want to play. Can #twitbank manage an exception list of ppl who don't want to receive #exploracoeur ?
@glenux je voudrais donner un #exploracoeur à tous les participants, possible de faire un envoi groupé ? lol
@glenux On dirait que les personnes populaires finissent par draîner les #exploracoeurs. Des stats nb followers/activité exploracoeur?
@Galuel : Ouvrir un compte TwitBank sur #exploracoeur , devrait se faire uniquement sur ouverture d'un compte valide, avec e-mail, adresse, et au moins la validation de quelques membres existants. Il faut éviter la création de multi identités, au moins la décourager, sinon la confiance dans la monnaie pourrait être ébranlée... Difficile de ne pas proposer une ouverture de compte via une page html twitbank au lieu de twitter...
@Galuel : Une interface d'administration permettant de choisir le système monétaire de la monnaie, et le modifier en cours d'utilisation ? (ex passer d'un crédit mutuel positif à un dividende monétaire, passer d'un dividende monétaire à 5%/an à un dividende monétaire à 8%/an, choisir la période où le dividende monétaire est versé, changer la période de valorisation du dividende (ex : 0,01% / 7 jours).
Frequently Asked Questions
How to participate
Joining the experiment is easy! Simply twit a specific message (see
TwitBankLanguage).
Open a twitbank account
How to send money ?
How to request money ?