Skip to main content

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:

  1. 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/.

  2. 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:

  1. 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

  2. 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

  3. Easy to use

    The application is usually driven by computer-illiterated guys, so little to no surprises

  4. Easy to deploy

    Gods know how many hours went in building f*cking installers with BDE goodies

  5. 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

    1. compose a list of competitors: usually this is just a single player, but there are two people in doubles, or more (teams)

    2. 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

    3. print the game sheets, where the player will write the scores

    4. possibly show a clock, to alert the end of the game

    5. insert the score of each table

    6. compute the ranking

    7. print the current ranking

    8. possibly offer a way to retire some competitors, or to add a new competitor

    9. compute the next turn

    10. repeat steps c. thru i. usually up to seven turns

    11. possibly offer a way to go back, delete last turn, correct a score and repeat

    12. 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

  1. 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

  2. Install ExtJS 4.2.0:

    python -m metapensiero.extjs.desktop
  3. Create a standard config file:

    soladmin create-config config.ini

    and edit it as appropriate

  4. Setup the database:

    soladmin initialize-db config.ini
  5. 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
  6. Run the application server:

    pserve config.ini
  7. 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

Project details


Release history Release notifications | RSS feed

This version

3.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SoL-3.0.tar.gz (4.9 MB view hashes)

Uploaded Source

Built Distribution

SoL-3.0-py3.3.egg (3.6 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page