/quickbox

Quick Event - Orienteering Software

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Build status Translation status Stargazers Contributors Issues License

QuickBox

QuickBox is a set of applications for organizing Orienteering Events.

Single, multi-day events and relays can be organized. The program is stable for general use, however, keep in mind it is still under development and bugs might occur. Tester feedback is greatly appreciated, feel free to organize your training or events using the QuickEvent application and tell us your experience in the issue section. Releases are available on the release page. The goal is to create a free full-featured software set for organizing orienteering events.

The QuickBox is built upon the Qt framework, targeted for Linux and Windows and released under the GPL-2.0 License. The project is actively maintained by a collective of Czech orienteering runners in their free time.

Components

  • QuickEvent - event organization
  • QuickShow - show start lists and results via application
  • QuickHttpd - show start lists and results via webserver

Features

  • competitors management
  • SI card readout
  • receipts print
  • course import (OCAD TXT | IOF XML)
  • start lists creation with classes layout
  • results print and export (PDF | IOF XML)
  • export results for Liveresultat and Emma client
  • Weblate localization - thanks to Michal Cihar and https://weblate.org/ for free localization hosting
  • integration with ORIS - Czech orienteering federation information system
    • import events
    • sync entries
    • import clubs and registrations

Documentation

For now, most of the documentation is in Czech.


Build

Qt6 version

git clone https://github.com/Quick-Event/quickbox.git
cd quickbox
git switch qe3
git submodule update --init
cmake -S . -B build -DCMAKE_PREFIX_PATH:PATH=~/app/qt/6.6.1/gcc_64 -DQF_BUILD_QML_PLUGINS=ON --install-prefix `pwd`/build/install
cd build
cmake --build . -j8
# to install
cmake --install .
# to run
LD_LIBRARY_PATH=../lib:~/app/qt5/6.6.1/gcc_64/lib ./install/quickevent

If you want to use system Qt for build, then remove CLI option -DCMAKE_PREFIX_PATH:PATH=/home/fanda/app/qt5/6.6.1/gcc_64

Install

Windows

  1. download the installation package (*.exe) from https://github.com/Quick-Event/quickbox/releases
  2. follow the installation wizard (keeping the default installation path is recommended)

Linux

  1. download universal AppImage from https://github.com/Quick-Event/quickbox/releases
  2. make it executable
chmod +x quickevent-*-x86_64.AppImage 
  1. add yourself to dialout group (required by SI reader unit)
sudo usermod -aG dialout $USER
  1. add yourself to lp group (required by character printer)
sudo usermod -aG lp $USER 

SQLite vs PostgreSQL

If you do not need to connect to the database simultaneously with multiple computers, you do not have to use a bulky database and opt for the SQLite instead. Event data will be stored as a single file with a .qbe extension. When starting QuickEvent and Connect to database dialog will pop up, select Single file and choose a working directory where event files will be stored.

You can later connect to a PostgreSQL database and import the event stored as *.qbe file created earlier.

Setting up for PostgreSQL

Windows

Debian

sudo apt install postgresql

RHEL/CentOS/Fedora

sudo yum install postgresql

Create a Postgres database

QuickEvent needs a database named quickevent. Open psql shell: [PostgreSQL home]\bin\psql -U postgres, enter superuser password and type:

CREATE USER quickevent_admin PASSWORD 'good password';
CREATE DATABASE quickevent OWNER quickevent_admin;

Enable database access from network

If you need access to the database from other computers, you need to enable access from other IP addresses. By default, only localhost connections are enabled.

Add following line to your [PostgreSQL home]\data\pg_hba.conf file:

hostnossl    all          all            0.0.0.0/0  md5

Ensure following line is present in your [PostgreSQL home]\data\postgresql.conf (though this is default):

listen_addresses = '*'

Restart the PostgreSQL service.


Contributing

Contributions are what makes the open source community such an amazing place to learn, inspire and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please see the Code style. Before opening a merge request, open related issue to discuss the upcoming changes first.


License

Distributed under the GNU GPL v2.0 License. See LICENSE for more information.