Scarry on Line
Project description
This project contains some tools that make it easier the organization of a championship of Carrom.
The main component is a Pyramid application serving two distinct user interfaces:
A very light, HTML only, read only view of the whole database, where you can actually browse thru the tourneys, seasons and players. You can see it in action on the public SoL instance at http://sol.metapensiero.it/lit/.
A complete ExtJS based desktop-like application, that expose all the functionalities described below in an easy to manage interface, that you can try out visiting http://sol.metapensiero.it/.
Brief history
Scarry was a Delphi application I wrote years ago, with the equivalent goal. It started as a “quick and dirty” solution to the problem, and Delphi was quite good at that. It has served us with good enough reliability for years, but since programming in that environment really boring nowadays, there’s no way I could be convinced to enhance it further.
SoL is a complete reimplementation, restarting from scratch: it uses exclusively free software components, so that I won’t be embaraced to public the whole source code.
Goals
These are the key points:
Multilingual application
Scarry spoke only italian, because the i18n mechanism in Delphi (and in general under Windows) sucks. Most of the code was written and commented in italian too, and that makes it very difficult to get foreign contributions
Real database
Scarry used Paradox tables, but we are in the third millenium, now: SoL uses a real, even if simple and light, SQL database under its skin
Easy to use
The application is usually driven by computer-illiterated guys, so little to no surprises
Easy to deploy
Gods know how many hours went in building f*cking installers with BDE goodies
Bring back the fun
Programming in Python is just that, since the beginning
High level description
The application implements the following features:
basic tables editing, like adding a new player, opening a new season, manually tweaking the scores, and so on;
handle a single tourney
compose a list of competitors: usually this is just a single player, but there are two people in doubles, or more (teams)
set up the first turn, made up of matches, each coupling two distinct competitors: this is usually done randomly, but the arbiter must be able to manually change the combinations
print the game sheets, where the player will write the scores
possibly show a clock, to alert the end of the game
insert the score of each table
compute the ranking
print the current ranking
possibly offer a way to retire some competitors, or to add a new competitor
compute the next turn
repeat steps c. thru i. usually up to seven turns
possibly offer a way to go back, delete last turn, correct a score and repeat
recompute the ranking, assigning prizes
handle a season of tourneys
each tourney is associated to one season
print the season championship
data exchange, to import/export whole tourneys in a portable way
Installation and Setup
Install SoL using easy_install:
easy_install http://darcs.metapensiero.it/our/sol/dist/SoL-X.Y-py2.6.egg
where X.Y is the version number, “2.0.1” as I’m writing this
Install ExtJS 4.2.0:
python -m metapensiero.extjs.desktop
Create a standard config file:
soladmin create-config config.ini
and edit it as appropriate
Setup the database:
soladmin initialize-db config.ini
Optionally load historic data from another instance:
soladmin restore config.ini http://localhost:6996/
You may omit the final address: the following will fetch a complete copy of the current database from http://sol.metapensiero.it/:
soladmin restore config.ini
If you have a backup on the local file system, you may load it specifying its file path:
soladmin restore config.ini local/file/path/of/the/backup
Run the application server:
pserve config.ini
Enjoy!
firefox http://localhost:6996/
or, for poor Window$ users or just because using Python makes you happier:
python -m webbrowser http://localhost:6996/
Documentation
More detailed information about the installation and effective usage of SoL may be found in the distribution (see the Manual entry in the main menu, that basically points to a local copy of manual, available in english or italian).
Development
The complete sources are available in a darcs repository:
darcs get http://darcs.metapensiero.it/our/sol
You can run the test suite with:
python setup.py nosetests
I18N / L10N
Once you install Babel you can update the message catalog (src/sol/locale/sol.pot) with:
python setup.py extract_messages
and update the localized messages with:
python setup.py update_catalog
You can start a new language with:
python setup.py init_catalog -l xx
where xx is a two-character code of the language.
Whenever the localized messages get updated, you need to compile them with:
python setup.py compile_catalog
See also http://progetti.metapensiero.it/sol/wiki/LocalizationHowto.
Changes
3.0
Ported to Python 3 and to ExtJS 4
Built on metapensiero.extjs.desktop and metapensiero.sqlalchemy.proxy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.