Racing Web is an online tool for generating race schedules, and running the races live from a computer or smartphone.
This race schedule generation method is inspired by the Young and Pope Perfect-N Chart Generator.
- Ignore extra lanes when the number of lanes exceeds the number of cars
- Each car will race in each lane
- The number of heats is the same as the number of cars
- All lanes are used in each heat
- Heats are re-ordered to try and avoid a car racing in two heats in a row
- Car order is offset slightly to encourage cars to race against different opponents
See generated doxygen reference
This project is built on Wt, which (at least to me) is somewhat difficult to manage in Windows. Therefore, this project targets mainly Linux hosts. The primary target is Ubuntu 20.04 AMD64, though if other architectures and target environments are feasible, pull requests to improve compatibility are always welcome.
# build toolchain sudo apt install make cmake automake gcc g++ # optional development tools sudo apt install gdb doxygen cppcheck clang clang-format clang-tidy llvm valgrind linux-tools-common sudo apt install python3-pip && sudo pip install pre-commit cpplint # download source git clone --recurse-submodules https://github.com/ckxng/racingweb.git cd racingweb # Wt and dependencies sudo apt install libboost-all-dev libgraphicsmagick-q16-3 libpq-dev libssl-dev libfcgi-dev cd dep/wt mkdir build; cd build cmake .. make make -C examples # optional sudo make install sudo ldconfig cd .. # if you will be submitting changes, enable pre-commit pre-commit install pre-commit run # compile racingweb cmake .
Depending on your IDE or build method, the racingweb executable might be located directly inside the git repo, or possible under a subdirectory created by CMake. These examples assume that the binary is directly inside the source repo, but you can adjust the commands depending on your environment.
cd racingweb cp -r dep/wt/resources docroot/ # only do this one time ./racingweb --docroot docroot --http-listen localhost:8080
Copyright (c) 2022 Cameron King. Dual licensed under MIT and GPLv2 with OpenSSL exception. See LICENSE for details.
In short, I prefer more permissive licenses, so the code specifically related to this project is released under the MIT license. This would allow any future developer to take portions of this project code and incorporate it into another project under the MIT license terms. However, since Wt has been released under the GPLv2 license with an OpenSSL exception, anyone who wishes to distribute binaries linked to the Wt libraries must do so under the terms of the GPLv2.