diff --git a/README.md b/README.md index d184644..cf5bbed 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ Anniversary Special Event. # Installation ## Prerequisites -* A websever running PHP 7.4 or better with the mysqli native client library +* A websever running PHP 8.0 or better with the mysqli native client library +This code should work with earlier versions of PHP but is not supported. * A database running MariaDB 10.0+ (or MySQL 5.6+) * ImageMagick 6.x or better with the ImageMagick PHP library (imagick) installed * Basic ability to use an xxMP stack (e.g. LAMP, WAMP, etc.) @@ -19,14 +20,12 @@ Anniversary Special Event. 3. Copy all of the files to your webserver directory 4. Ensure the `cards` subdirectory is writable by the webserver. If this is being installed in a hosting provider than this is likely the default. -4. Load the qsl.sql into your MySQL server -5. Setup some form of cron or other automated task to run the qslmaint.php -on a periodic basis (recommended 1hr for busier sites; see note bleow). +5. Load the qsl.sql into your MySQL server ## Basic Coniderations The application is designed to have simple, user-friendly URLs. For example, -putting the base files in a subdirectory /qsl resultes in the URL -https://example.com/qsl for the main application and https://example.com/qsl/load +putting the base files in a subdirectory `/qsl` resultes in the URL +`https://example.com/qsl` for the main application and `https://example.com/qsl/load` for the ADIF loader. All references to includes, configs, images, etc. are all relative pathed so the application should be installable virtually anywhere. @@ -34,11 +33,13 @@ In order to make this as platform agnostic as possible, all temporary informatio is stored in the MySQL database. In order to accomodate large ADIF imports, the staging column type for the pre-commit data is a MySQL LONGTEXT field. This will create a tremendous amount of empty-but-used space in MySQL when using -InnoDB. Ensure that the qslmaint.php script is being executed periodically as -one of its tasks is to run an OPTIMIZE TABLE on the transaction commit log. +InnoDB. Ensure that the `qslmaint.php` script is being executed periodically as +one of its tasks is to run an `OPTIMIZE TABLE` on the transaction commit log. +The `qslmaint.php` script is run randomly on an index.php page with a 1 in 4 +randomized chance by default. # Using Smooth QSL -For hams, all the hams need is the "load key" set in qslconf.php. Smooth QSL +For hams, all the hams need is the "load key" set in `qslconf.php`. SmoothQSL operates on a semi-trust basis in that hams are relied upon to use their legitimate call signs as is expected throughout amateur radio. Set a strong "load key" as that is the only protection against mischef such as loading @@ -46,18 +47,18 @@ bogus QSOs or malicious actors attempting to DoS the database by filling it up or overworking the system. The load process uses the following workflow: -1. Navigate to https://example.com/qsl/load +1. Navigate to `https://example.com/qsl/load` 2. Enter the callsign of the station operator, the load key, and select the ADIF file. Upload the ADIF file. 3. Review the ADIF checkload on the next screen. Click Commit -4. A "receipt" page will apepr. +4. A "receipt" page will appear. The QSL retrieval process is straight forward: -1. A ham navigates to https://example.com/qsl +1. A ham navigates to `https://example.com/qsl` 2. Enters their callsign 3. Selects the QSO(s) they want to print on the card or certificate 4. Requests the print -5. Saves the PDF to their computer (or prints it directly) +5. QSL card is displayed. Save or print as desired. # Printing QSOs on the template Smooth QSO uses ImageMagick to "draw" text on top of the QSL template @@ -85,7 +86,3 @@ this is a part-part-part time project for me. I will help as I can with installation-related questions insofar as they deal with unclear directions or bugs on particular platforms but I will not help with general installation and configuration of a webserver, PHP, MySQL, etc. - -# Platform -This system was designed and tested on a Raspberry Pi 3B running -Raspbian 8 Jessie + backports. The webserver was Apache. diff --git a/index.php b/index.php index b3bdee6..c538bb8 100644 --- a/index.php +++ b/index.php @@ -75,7 +75,17 @@

Site information ©  
- Powered by Smooth QSL

+ Powered by Smooth QSL
+ This page load + 3){ + include("qslmaint.php"); + print("ran"); +} else { + print("did not run"); +} +?> + maintenance.