Learn CW Online
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Fabian Kurz aa1281678c Improve QTC training (abbreviated times, chronological order 4 months ago
adm reset-testuser: default to jscwlib 4 years ago
api Fix MorseMachine count validation for >999 characters. 3 years ago
config put vim + .vimrc into docker image 4 years ago
db Improve QTC training (abbreviated times, chronological order 4 months ago
ext text2cw: embeddable player now using jscwlib 4 years ago
inc Improve QTC training (abbreviated times, chronological order 4 months ago
js Improve QTC training (abbreviated times, chronological order 4 months ago
pics Allow users to flag personal messages as spam (tnx ksk) 3 years ago
tools Add Czech proverbs to plain text training (tnx OK4MR) 11 months ago
.gitignore Initial commit after cleanup. New open source repository. 4 years ago
.htaccess robots.txt: Generate programmatically, disallow * for DEV version 3 years ago
403.php Initial commit after cleanup. New open source repository. 4 years ago
Dockerfile Docker: Use phusion/baseimage:focal-1.0.0, fix build (missing certs), use jscwlib as default player for users 2 years ago
README.md Change callsign DJ1YFK -> DJ5CW 2 years ago
babel.html Initial commit after cleanup. New open source repository. 4 years ago
babel.js convert site to utf8 4 years ago
babelfish.php Maintenance: Upgrade to jscwlib 0.2.2 and update translator permissions. 2 years ago
docker_build.sh Initial commit after cleanup. New open source repository. 4 years ago
docker_run.sh Initial commit after cleanup. New open source repository. 4 years ago
docker_ssh.sh Initial commit after cleanup. New open source repository. 4 years ago
favicon.ico Initial commit after cleanup. New open source repository. 4 years ago
index.php MorseMachine: Remember selected character set. For non-Koch character set, always activate all characters 3 years ago
mediaplayer.swf Initial commit after cleanup. New open source repository. 4 years ago
robots.php robots.txt: Generate programmatically, disallow * for DEV version 3 years ago
robots.txt Initial commit after cleanup. New open source repository. 4 years ago
style.css add dark mode (closes #24) 3 years ago
styledark.css Improve contrast of play button and menu links in dark mode. 3 years ago
styleiframe.css Initial commit after cleanup. New open source repository. 4 years ago

README.md

LCWO - Learn CW Online Code Repository

This is the source repository for Learn CW Online, a website to learn and practice Morse code in the browser. The official website of LCWO is https://lcwo.net/. The code can be found at https://git.fkurz.net/dj1yfk/lcwo

The code is licensed under the GNU AGPL 3.

Running LCWO

The fastest way to get a running instance of LCWO is by using Docker. There's a shell script called docker_start.sh which builds and runs the Docker image and fires up an instance of LCWO which you can reach at http://localhost:8000/. There's an user admin with the password admin.

On Ubuntu, install Docker and add your user to the docker group first:

sudo apt-get install docker.io    # unless you already installed docker
sudo usermod -a -G docker $USER   # you must log out and in again to make this work

Then simply clone the repository and run the container:

git clone https://git.fkurz.net/dj1yfk/lcwo.git
cd lcwo
./docker_build.sh
./docker_run.sh

(The build script assumes that you have a public ssh-key in ~/.ssh/. If this is not the case, please create one with ssh-keygen, otherwise the build process will fail.)

Note that this Docker image is mainly meant for development and testing purposes, to give you a fully working LCWO instance from scratch without any effort. For a deployment as a public website this may not be what you want.

Configuration

Most configuration options are set in inc/definitions.php. A template is included in the official sources, which is also used for the Docker image.

If you want to change the configuration you could change this file directly, but the clean way of doing this is by copying this file to inc/definitions.custom.php. If this file is present, the default file will be ignored.

Database

The database table schemata and contents needed to run LCWO are located in the directory db. Have a look at the Dockerfile on how to set up a minimum database that LCWO runs on.

Architecture

How to read the code

TODOs

Code Quality

The code quality of LCWO varies strongly between the different parts, from terrible spaghetti code to somewhat structured and modular. Refactoring needed.

Authors

LCWO was written by Fabian Kurz, DJ5CW (ex DJ1YFK) <fabian@fkurz.net>.

Thanks to the following authors for contributing code: