SwimAdmin 0623 now runs on Ubuntu 22.04.2 LTS. This Ubuntu release is supported until April 2027, with an EOL of April 2032. New features in 0623 include:
This page can be used to download files from the server to your local computer. The files that can be downloaded are:
An entry report summarises any online entries which have been made to a gala. It includes a table with a row for each swimmer, sorted alphabetically, and a summary table, which includes costs. The entry report will change as new entries are made, and you should therefore download the report after the online entry closing date. This entry report is exactly the same file that the swimmers see from the front-end of the website. However, the file can only be downloaded from the Administration menu.
You will generally need to send the entry report to the gala organiser, together with the electronic entry files (see below). The entry report is an HTML file, with embedded styling. This means that your downloaded report can be viewed stand-alone in, for example, a browser or an email program. The downloaded report can therefore be attached directly to an email to the meet organiser.
The 'electronic entry files' are generated automatically from an entry report, and should be sent to the meet organiser, together with the entry report. You will need to find out whether the meet organiser is expecting a Hy-tek entry file, or a SportSys entry file.
Select Consolidated Entry File for SportSys meets. This generates a zip file, which contains two separate entry files: one for girls, and one for boys. You can send this zip file directly to the meet organiser, but it may be less confusing (to the meet organiser) if you first unzip the file into its two constituent '.txt' files, and send these two files instead.
The free (evaluation) version of 'SportSystems Meet Organisation' does not support the import of consolidated entry files. However, any version that supports the creation of meets will also support the import of these files.
Select SDIF for Hy-Tek meets.
The usual entry procedure when entering a Hy-Tek meet is to download a program called 'Team Manager Lite' from Hy-Tek. You must then manually enter the swimmers, events, and entry times, and generate a zipped entry file. This entry file contains an 'HY3' file, and is then sent to the meet organiser, who reads the HY3 file into 'Meet Manager'.
The online system instead automatically generates an 'SD3' file (this is an SDIF, or 'Standard Data Interchange Format' file). All Meet Manager versions support SD3 entry, but the meet organiser must have carried out a (free) online update to get a recent release of their version. If they have carried out this update, they can go to File → Import → Entries, and the file selection dialog will list SDIF files for import.
A 'Meet Description File' (or MDF) is an HTML file which describes a specific gala. It contains a number of tables which provide a general description of the gala, together with any qualifying and cut-off requirements. This file drives the online entry software. You can upload new description files to the server, and download existing files from the server.
You will normally only need to download an MDF in order to send it to another club, to allow them to enter your meet. You should do this even if the recipient club does not run SwimAdmin, since the file is viewable in a browser, and shows full entry information for the gala (qualifying and cut-off tables, dates, event prices, and so on).
You can create your MDF from the Administration > Create MDF page.
You should download this file and edit it (in Excel, or an equivalent program) to reflect your own club 'flash' policy. If you do not award flashes for LC events, for example, then you can simply delete the LC times in this file. You can also change the times themselves if necessary.
When you have completed your changes, you should upload your new spreadsheet (Administration > File upload > Flashes). This new file will become the flashes policy for your club. If you do not upload a new file, the standard CSPA times will be used.
Note that times in the CSPA file must be entered in the correct format. '1 minute 26.2 seconds', for example, must be entered as '1:26.2' (or '1:26.20'). See the Reference Manual (section 3.2) for details on how to enter times in a spreadsheet. The server will check your file and report any formatting errors.
This spreadsheet shows your current flashes policy. If you have never uploaded a new flashes policy, then it will simply contain the original CSPA events and times.
If you download this file, it will be returned as a CSV (Comma Separated Value) file ('flashes.csv', rather than 'flashes.xls'). You can modify the CSV file itself and upload it directly to the server as a new flashes policy. However, you should note that if you open 'flashes.csv' in Excel to edit it, then Excel is likely to change the time formatting from 'Text' to 'General', and the times may not display correctly. The CSV data itself will be correct. To avoid this issue, you should instead modify and upload the original CSPA spreadsheet (as described in 'CSPA times' above).
The entire online system is driven by a SQL database. SQL ('Structured Query Language') is a standard language for managing relational databases; it is generally pronounced as 'sequel' (although some people call it 'ess cue ell'). The database is, more specifically, an sqlite3 database.
You can download the current database at any time, and you should do so on a regular basis, to keep your own backup copies. You should, in particular, download the database before you make any major changes to it. If you make an error in your changes, then you can simply upload your saved version of the old database, instead of trying to fix the new database. The download will take a little while to complete, as the server has to create on 'online backup' of the database, which is a complex process. You can download the database even if several other people are currently modifying the database.
On a download, the server appends the current date and time to the database filename. If you have a collection of saved databases, and sort them by their name, they will therefore also be sorted by the date and time on which you saved them.
The database is a 'binary file'. In other words, you can't simply use a text editor or word processing program to read it, and you should not attempt to do so: your program may change the database in a way that makes it unusable.
You can, however, read and modify your local copy of the database, if you are familiar with SQL. You can download a command-line shell from the sqlite website, and this shell can be used to access and modify your local database. You may wish to do this, for example, to carry out complex searches or edits which the server does not provide.
You can upload a modified database to the server from the 'File upload' menu. New databases are always checked for validity during the upload process; corrupt or invalid databases will be rejected during the upload.
The zip file contains:
You have requested a database upload. If you continue, your file will be tested to confirm that it is a valid sqlite3 database; if so, it will replace the exisiting database on the server (if there is one). The old database will be lost. You should not continue unless you understand this, and you have taken a backup of the old database (from the File download menu).
Do you wish to continue?
This page can be used to upload files from your computer to the server. The files which can be uploaded are listed in the sections below.
The 'Browse' button can be used to select the required file or files to upload. In most cases, you can also select a zip file, or any group of files which contains the required files. If you are unsure which file in a results directory is the appropriate results file, for example, then you should select all files in the directory, and the server will automatically locate the required results file.
The 'Home Page' is the page which is visible when the user-level 'home' button is clicked. This will normally contain information on upcoming meets, instructions for entering meets, and so on. You can edit your current home page by downloading it (from the 'File Download' menu), modifying it, and then uploading it. You should select a single HTML file for upload; the server will rename the file as required.
In most circumstances, there will be no need to either download or upload the Home Page. You can instead edit the home page directly from Administration > Edit home page.
This should be used to upload member details and existing club records. To find sample spreadsheets to modify, select Administration > File download > Sample spreadsheet. See the online help on the file download page for more information. Note that:
The spreadsheets that you can download and modify are Excel spreadsheets, with an 'xls' or 'xlsx' file extension. These should normally directly upload after any modifications. If you are not using Excel, however, or the upload produces an error message, you may need to first save your spreadsheet as a CSV file, and then upload the CSV file instead. See section 3.3 in the Reference Manual for further details.
See the 'File Download' help page for more information on MDF (meet description) files. These are HTML files, and must have a '.htm' or '.html' suffix. You can select multiple individual files for upload, or you can upload a zip file containing one or more description files.
In normal circumstances, you will create your MDF from the Administration > Create MDF page. You can also create these files manually, if necessary.
Each MDF is checked for validity during the upload, and invalid files will be rejected (if an error is found, the upload of any remaining files will also be terminated). Valid files will immediately become visible to website users on the 'Gala information' page (under the 'Galas' menu item). Online entries to the gala will be automatically activated during the date range specified in the file.
Your new MDF will be listed in various locations in the user-level menus. The gala name will be preceded by a date in these menus. This date is automatically generated, and is the gala start date.
You can upload result files which have been created by Hy-Tek or Sport Systems software, or which have been entered on a spreadsheet. The supported results file formats are:
You should, if possible, obtain Lenex files (for Sport Systems meets), or HY3 files (for Hy-Tek meets). If these are not available, you can use NDF files, but NDF files do not contain additional information which may be found in Lenex and HY3 files (splits, DQs, positions, and reaction times). These three file types are also used by ASA rankings to record the results of a licensed meet. If there is any confusion about which files record the meet results, you should ask the meet organiser to send you the files which have been sent to Rankings. If the meet is unlicensed, the meet organiser may be willing to generate result files as if the meet had actually been licensed, and to send you those files.
You may find that results files are not available in some situations. This may be the case if you run a time trial, for example, or if you compete in an unlicensed team gala. You can manually enter results in these cases, one at a time, but this can be time-consuming and error-prone. You can alternatively enter these results on a spreadsheet, and upload the spreadsheet.
To find a sample spreadsheet to modify, locate 'ResultsImport.xlsx' from the sample spreadsheet download. You will need to modify the spreadsheet to specify a name, location, date, and course length for your time trial or meet. A spreadsheet import will normally be used for an unlicensed meet, so you cannot enter a licence level or number (if necessary, however, you can modify the meet in the database to add this information; see 2.13.2 in the Reference Manual). You will then need to complete a single row for each swimmer, with all their times. The sample spreadsheet contains instructions.
When you upload a results file, the system will not automatically create a new meet for you, because the results file does not generally contain all the required information. If the meet does not already exist on the system, the upload will fail, and will give you instructions on how to create the new meet. You should create the meet (Administration > Meets > Add meet), and then repeat the upload.
Every result in the database is cross-referenced to a specific meet and, if the meet was licensed, to the relevant licence level and number. However, Lenex, HY3, and NDF files do not contain any licensing information, and the meet name in these files is likely to be slightly different from the name that is recorded at the ASA. This can cause complications, because the new meet may already exist in your database (under a different name), and because the results will also be cross-referenced against any results recorded at the ASA. The software attempts to determine whether or not it already knows about the meet and, if not, it will ask you to create the meet before continuing.
You should note that results files may not contain the results of 25m events, and may not contain relay results. These will have to be manually entered (see Administration > Results > Add result ).
Select this option to upload a spreadsheet which defines your club policy on awarding flashes (events, and the times which must be achieved). If you do not upload a flashes file, the system will use the standard ASA CSPA events and times. Some clubs may find the standard definitions unsuitable if, for example, they do not award flashes for LC or distance events.
See the CSPA and Flashes help on the download page (Administration > File download) for more information.
See the 'File Download' help page for more information on database files. You must upload exactly one file (which may be a zip file). The file is checked to confirm that it is a valid sqlite3 database during the upload; if not, it will be rejected. The upload file may have any name; the name is ignored and the file, if valid, is renamed as required by the server.
The upload process deletes your existing database on the server. You will be reminded of this during the upload, and you will have to click-through a confirmation dialog.
It will not normally be necessary to upload database files to the server; the server creates and maintains the database entirely transparently. However, you should periodically back up the database (from the 'File Download' menu), and you should also back it up before carrying out major operations on the database. If necessary, you can then upload your saved database to 'roll back' any erroneous operations. If, for example, you mistakenly delete a swimmer from the database, then any meet results for that swimmer will also have been deleted. In general, it will be difficult to restore these results by re-reading results files, which could go back several years.
A 'Favicon' is a small icon, which can be used to personalise this site to your club. You should select a file which is called 'favicon.ico' to upload.
The favicon normally appears in two places: in the tab title of a browser page, and any bookmarks for those pages. If you have not uploaded a favicon, the browser will leave the image empty, or will use a default image. Some browsers will also allow you to create 'app shortcuts', and will use the favicon as the icon for that shortcut. In Chrome, for example, you could create an app shortcut for the admin page on this site, and then double-click on the shortcut icon. This page will then appear in a new browser window as if it was an 'app', rather than a webpage.
You can find pre-made favicons on the web, and there are a number of useful web pages which will tell you how to create your own favicon from an existing image. The more complicated procedures will allow you to create a single favicon.ico file which contains the image at several different resolutions.
Note that, when you have uploaded your new favicon, your browser may not immediately notice that it has changed. This problem is browser-specific, so one browser may show the new favicon, while another shows the old one. In general, you will need to use the browser menus to flush the image cache before the new image is displayed. There is not much that you can do about this, and your site users may not immediately notice that the image has changed.
All results in the database must reference a known meet (although, when importing results into a new database from a spreadsheet, you can use a special 'unknown' meet). You must create a description for the meet before importing any result files, or before manually adding meet results. The only exception is for result uploads when running 'Database update'. In this case, the software will create the necessary meets for you (if they do not already exist, and only after obtaining confirmation from you). However, you will still need to understand the information here (see, particularly, Identifying a meet below) in order to resolve any conflicts.
To create a new meet, fill in the meet name, location, dates, course length, and licence. The add operation will fail if a meet already exists in the database that might potentially be the same meet as the one you are trying to create. If this happens, a message will tell you which meet is in conflict, and you will have to resolve the conflict by changing either the old meet or the new meet.
You must be particularly careful when creating a new meet, because the information you enter is used to identify the meet to which a results file applies, and to identify the correct meet when synchronising your database to swimmingresults.org. In the worst case, it is possible that you will create two sets of results in the database for two meets which are apparently different, but which actually refer to the same event. See Identifying a meet below.
Meet 'identification' is required in the following circumstances:
In summary, some combination of the meet primary name, the meet secondary name, the meet licence number, and the meet dates, is required to correctly identify a meet; the actual combination depends on the circumstances.
When creating a licensed meet, you should note that:
The licence number you enter must agree with the licence number shown at swimmingresults.org. You may find that the assigned number is not identical to the one shown. For a level 4 meet, for example, the meet organiser might have been assigned 4ER4891, while the number which is eventually displayed at swimmingresults.org might actually be ER4891. In this case, you must create the meet with number ER4891. If you create the meet with 4ER4891, then you will find that a subsequent 'Database update' operation will ask you if it can automatically create a new meet with licence number ER4891. You should cancel your update request at this point, and edit the old licence number to match the expected one.
For a licensed meet, the licence number is not of itself sufficient to guarantee a correct import or update. The date of any result is also checked to confirm that it falls between the meet dates, as an additional error check. If it does not, you will be asked to fix the error before proceeding. This can occasionally cause confusion if you rely on a 'Database update' to create your meets for you. The update operation has no way of knowing what the first and last date of the meet was, and instead relies on the dates it finds attached to the results at swimmingresults.org. If it finds that the first result for a given licence number was on, for example, March 1st, and the last one was on March 2rd, then it creates a new meet which extends over these two days. However, if you carry out another 'Database update' a month later, you may find that a new result has appeared, which was achieved on another date (March 3rd, for example; this may happen when a previous PB 'expires' because it is more than a year old, and additional results from this meet have now become relevant). In this case, you will be asked to check and fix the meet description.
SwimAdmin divides site users into 'members' and 'officials'. The 'members' are the swimmers: in other words, the people who are in the squads, and who enter galas, and so on. The 'officials' are all the people who don't swim as a club member: the poolside helpers, the coaches, the committee, and so on. If an individual swims for the club, but also carries out some other function (coaching, for example), then that individual is both a 'member' and an 'official'.
Your own club may view things slightly differently but, from the point of view of the software, we simply have 'members' and 'officials'. Use this page to add new members (swimmers) to the database; you can add new officials from the 'Add official' page.
Adding members is a two-stage process: you must supply an ASA number on the first page, and then the remaining member details on the second page. Note that there is no requirement, when adding a new member, to add members who are actually listed at the ASA as being members of your club.
When creating a new member you must first enter their ASA number. This allows the software to determine if that person is already on the database (as an official, for example); if so, various fields on the second page are pre-loaded for you.
A member therefore cannot be added to the database if they do not have an ASA number. In some circumstances, however, you may wish to add a member without a number (if you haven't completed ASA registration, for example). In these cases, you should enter nothing in the 'ASA number' entry field, and click 'Continue'. The system will then generate a unique temporary number (this has a high value and cannot be confused with a real ASA number). However, you will have to correct this number at a later time when you receive an official number (see the 'Change ASA number' menu item).
Members are uniquely identified by the combination of their name and their ASA number. These are used to identify the member not only in the online system, but also in gala result files, and in the results pages at the ASA. If you enter the name or number incorrectly, result uploads will fail for the new member. You should be particularly careful with hyphens in double-barrelled names, which are the most likely cause of an error. The simplest way to ensure consistency is to visit the swimmer's Individual Best Times page at the ASA, if it exists, and to ensure that the ASA number, family name, and given name are identical to those that you enter here.
The member's 'Known as' name can be left blank if their 'Known As' and 'Given Name' are identical at the ASA. Note that the member's DOB and gender are not used for identification purposes, and so could potentially differ from those held at the ASA, but this is clearly not recommended.
All members and officials require a unique username to allow them to log in to the online system. A new default username is created for the member, and is shown in the 'Username' field. You will need to tell the member what their username is.
When the member logs in for the first time, a password will be generated and emailed to them. The member will then be able to change their username, or password, or both, if necessary.
A birth date is required to enter galas, and is also used by the online system when generating club rankings and records. The date entered here should agree with the date recorded at the ASA.
If the DOB is sensitive, it (and any derived age) can be removed from public pages by selecting the 'Hide age' flag. This can also be carried out for the entire club by setting 'Max display age' on the 'Club configuration' page. Display of this member's age will be suppressed if they are older than the (club-wide) 'Max display age', or if the 'Hide age' flag has been set for this member.
A correct DOB is not required if the member is inactive (see the 'Active' flag), or they do not intend to enter galas for which the organiser requires the swimmer age. In this case, you can enter an arbitrary DOB. You may wish to do this for Masters or Keep Fit groups, for example.
Newly-added members can be created as 'active' or 'inactive'. The selection defaults to 'active', which means that:
Active members may be set to inactive on the 'Edit Member' page (and vice-versa). Members may be temporarily set to inactive if, for example, they move to another club, but intend to return at a future date.
When adding members to a Master's or Keep Fit group, you should consider adding them as inactive members. This will ensure that they do not appear in gala entry pages, and will also allow you to enter an arbitrary Birth date for the new member (a valid DOB is not required for inactive members).
The 'Add Official' page must be used to create a new official in the database. You must enter an ASA number on the first page. If there is already a member with this ASA number, that member's details will be returned to populate the second page; otherwise, the relevant fields on the second page will be empty, and should be filled in.
If the official is not an ASA member, and so has no ASA number, you should leave the ASA number as blank, and the system will assign a temporary unused value. If the official is later assigned a valid ASA number, the 'Change ASA number' page should be used to correct the temporary number.
You must enter at least the official's name and role on the second page. All the other fields are optional. However, if you do not enter an email address, the new official will not be able to log in. The official will be assigned a new username to log in with.
The 'Add Result' page can be used to add individual results to the database. Gala results should normally be added automatically by uploading a results file (see the 'File upload' menu item). However, the meet organiser may not provide a results file in some circumstances (for some unlicensed galas, for example, or for team events). If this is the case, the results must be manually added from the 'Add Result' page.
Note that the database does not handle some result types, and these will have to be recorded elsewhere. The 'Add Result' page therefore does not support:
If you make an error while adding a result, you should first make a note of the database 'key' of the newly-created result. The key is the number that appeared in the 'Server status' area when you clicked 'Submit'. If, for example, you clicked 'Submit' and the server replied with the message 'Success: created result #9347', then the relevant key is '9347'. This key uniquely identifies the result that you have just created. You should now go to the 'Edit Result' page to delete or correct the new result. If you are not sure precisely which result you have just added, then you should compare your key against the keys listed on the right-hand side of the displayed results.
Select a swimmer, and click 'Continue'. You will now be able to edit any swimmer details, apart from the ASA number and username, which are fixed.
If you need to change a member's ASA number you should instead use the 'Change ASA number' menu item. An administrator cannot change a member username; however, the member can change their own username from the login page.
You should not generally delete a member when they leave the club. You can instead select 'Add new date' from the 'Membership dates' pull-down, and enter the leave date. This should be preferred because the member's times are then retained in the database, instead of being deleted. These times can then be used for historical rankings. You should also bear in mind that a swimmer may re-join the club at a later date, and would expect to have access to their historical times.
Select an official, and click 'Submit'. You will now be able to edit any official details. You must enter a name, a role, and at least one email address; all the other fields are optional.
The 'Edit Result' page can be used to view, edit, or delete any or all of the gala results stored in the database. This page is also a convenient way to display all the results achieved at a specific gala, or all the results achieved by a specific swimmer, without changing those results.
The full edit process must be carried out in two stages. If you simply want to display results, only the first of these two stages is relevant.
You must request a list of results which will returned from the database and displayed. To do this, select an individual swimmer (or use the default selection of 'All Swimmers'), and an individual gala (or use the default selection of 'All Meets'). When you click 'Submit', the server will return the requested results, which will be displayed in a table. The table is sorted by the swimmer's name, and then by event, and then by swim date.
Note that the database may contain many thousands of historical records, including all gala results for all current and past swimmers. If you leave the 'Swimmer' and 'Meet' selections at their defaults, and then click 'Submit', you will get all these results. This may take some time, and may create a very big table. You should normally select a swimmer, or a gala, or both.
Keep an eye on the 'Server status' area below your selection. This will tell you if your request succeeded and, if so, how many results were found in the database and returned.
Each individual result is returned as a row in a new table, which will appear below the 'Server status'. You can, if necessary, delete the entire row, or change any or all of the swimmer name, the meet, the swim date, the event, or the round. The new swim date must be consistent with the meet dates; the server will refuse to make the change if the date is before the meet start date, or after the meet end date. Note, however, that the server will allow you to edit a result such that it becomes identical to another, existing, result in the database. It is up to you to make sure that you either don't do this, or that you subsequently delete one of these duplicated results.
You will notice that the right-hand column is labelled 'Key'. The key is the row number of the displayed result in the database; it is a number which is unique to this result, and which identifies the result. The key will never be changed by an edit, even if the edit changes everything else in the result (unless you delete the row, in which case the key itself disappears and is never re-used). The key is frequently referenced in the status returned from the server and displayed in the 'Server status' area (this might say, for example, 'Success: updated result #1766', where '1766' is the key). The significance of the key is that it can be used to locate this row if you ever need to manually edit the SQL database, using an external third-party program.
To edit the result, click on the key. A pop-up will appear which will let you edit this single result. If you decide not to change the result, click 'Close' (or the cross in the top right corner of the pop-up). If you change any fields, and wish to record the new changes in the database, you should instead click 'Confirm'. The database will then be updated with the new values. The pop-up contains its own 'Status' area; make sure that you check this for any success or failure messages returned from the server.
When you have finished editing the result (whether or not you have changed it), you should click 'Close' (or the cross in the top right corner of the pop-up), and the pop-up will disappear. If the result was changed, the server will then repeat your original search, and will display the results of the search, following your edit. The row that you have just edited will be highlighted, so that you can easily locate it.
You may occasionally need to synchronise your database with the information held at Swim England, and at swimmingresults.org. You can do this to:
You can test a membership, IB, or results file by selecting 'Check file'. This will carry out a 'dry run', without updating the database. When you are satisified that you have a valid file, you can select 'Import file' and repeat the operation.
Swim England has currently chosen to allow SportSys to limit access to public results which are recorded at swimmingresults.org. This is a fluid situation, and is likely to improve in 2024, with personnel changes at Swim England. However, the current situation is that automated access is not possible. This means that you must manually download any pages of interest to your own computer, and then use this form to upload them to your server. The server therefore processes any pages that you have saved, rather than pages retrieved automatically from swimmingresults.org.
You should import a Swim England membership file when initially creating your database. This contains basic information about three categories of members:
Before importing a membership spreadsheet, you should consider adding a squad name column (this information is not in the SE spreadsheet). See the 'Squad information' section below for instructions. If you do not do this, then you will have to manually edit every swimmer to add this information, which is required to:
If you do not have access to a Swim England membership spreadsheet then you can easily create your own. The required format is described in 'Spreadsheet format' below.
Before adding any squad names to the SE spreadsheet, you must define the names. This can be done from the Administration > Edit configuration form. This contains a section with the title 'Squads and email aliases', which is pre-filled with some default values. You can add or remove squads by clicking on Add/remove. Change the squad names as required, and set an email alias. If, for example, you have a squad named 'County 1', and you want to send emails to them at 'c1@myswimclub.uk', then you should set the alias to 'c1'.
When you have created your squad names, you can assign swimmers in the spreadsheet to a squad. To do this, add a new column to the spreadsheet with the heading text 'Squad'. The simplest place to put this is after all the existing columns. Now, for each swimmer in the spreadsheet, add their squad name (or leave the squad blank if it is unknown). You will need to take some care here: if the name is not an exact match for one of the squad names entered above, it will be ignored (with a warning message), and the swimmer will be assigned to the 'Unknown' squad.
If you do not have access to a Swim England (SE) spreadsheet then you will need to create a compatible spreadsheet. This section gives the information that you will need to do this. When you have created the spreadsheet, you should check it by selecting the 'Check file' operation. If you are uploading an Excel file, make sure that the file has only one sheet. You may find, if you have used any unusual Excel features, that the file cannot be uploaded. If this happens, save the file as a CSV file, and upload the CSV. The Excel 'Save As' menu lists this file type as 'CSV (Comma delimited) (*.csv)'.
A membership spreadsheet is made up of zero or more commentary rows, followed by one header row, followed by zero or more member rows. The commentary rows are discarded. The header row must contain all the mandatory headers listed below. Once the header row is located, it is discarded, and any remaining rows must be member data.
The header row identifies the spreadsheet columns. The column which contains the member's first name, for example, must have the text 'First Name' (the 'header') in the relevant column. The columns can appear in any order, as long as they are correctly identified by the header text.
The table format is shown below. If you cannot see the final column ('Join Date') make this window wider. Note that the columns may appear in any order, and:
Member ID | Category | First Name | Surname | Known As | Date of Birth | Postcode | Address | Town | County | Telephone | Sex | Join Date | |
B | B | B | B | S | B | S | |||||||
E | E | E | E | E | E | W | W | W | W | W | W | E | E |
You can upload Individual Best (IB) pages which you have saved from swimmingresults.org. To find these pages, select Rankings > Individual Best Times, and enter a swimmer's membership number or name. The results page will be visible when you have proceeded past the reCAPTCHA challenge.
When you have a results page, you should save it as a single HTML file. To do this, right-click on the page, and select 'Save as', or 'Save page as', depending on your browser. You should now save the page as a 'Web page, HTML only'. This is important: if you save it as anything else (such as a 'Web page, complete' or a 'Text file') it may well be unusable. You should confirm that you can upload a single file before spending too much time saving a large number of files that can't be used.
In normal usage, you should save a number of IB pages; you can then upload them all in a single operation, by selecting multiple files. You can also upload a zip file which contains IB pages. You may find it simpler to create a new directory ('folder') on your computer, and save the IB pages to that directory.
When processing the files, SwimAdmin will report any errors using the file name. You should therefore save the files with different names to let you identify a specific file which may contain an error. You could, for example, save the file for the swimmer with membership number 123456 as '123456.htm'.
Note that you should repeat this operation for both the 'All times' and 'Last 12 months' selections. This is because any PBs shown on one page may not necessarily appear on the other page.
All results on the system are cross-referenced to a specific meet. This means that an IB upload proceeds in two steps. In the first, the system determines whether or not it already knows about the meet at which a time was achieved. If it already knows about all the meets shown in the IB pages, then it will complete the import without any further intervention.
The situation is more complex if there are any unknown or ambiguous meets in the results. In this case, you may be asked to add the unknown meets to the database before proceeding, or to modify any meets to align them with the new information. You may also be given an option to let the system automatically add any new meets. When you have completed this stage, you can repeat the upload, selecting the same files. The system will give you full instructions during the upload process.
Finally, note that you should not rely on IB imports to keep your system up-to-date. IB imports are useful for a new club setup, or a new member, or when you cannot obtain a meet results file. You should always upload results files when you can, because:
The 'Club configuration' page customises your website. You should use it to set club-specific information such as your website title, your record system, and your squad names; these are covered in detail below.
Apart from the information that you enter on this page, the only other parts of the site that you can configure are:
The Club name and codes are ASA-approved, and are therefore fixed. They were added during the initial site configuration, and cannot be changed. The 'Club name' is the full approved club name, while 'Code 4' and 'Code 12' are the 4-character and 12-character (maximum) club codes. The codes are required in order to generate gala electronic entry files, and to submit results to the ASA.
You can configure two titles:
If you change the titles, you will need to refresh your browser page before the new titles become visible.
The system will send SMS messages if you have an account with an SMS provider. You should enter your account details here.
You can select between displaying 'age group' records, or 'cumulative' records. Your selection affects only how records will be displayed in the user menus; it does not affect the database. This means that you can change your selection at any time, and the user 'Records' menu will update correctly. However, the system must be able to calculate the swimmer's age to make this possible, so the DOB and swim date must be recorded in full.
If you select 'Cumulative', the records for a given age will always be displayed as 'and under'. If a user selects the records for 14-year-olds, for example, the records displayed will be the '14/U' records. This causes some confusion in the meaning of 'Open'. Assume, for example, that you have selected a maximum age of 17, and that the age selector for Record ages now shows '9/U - 17/O'. The '17/O' records are actually meaningless - they are the Open records, since the 'and unders' will be shown as well. In this case, the user will be shown an age pull-down which includes only 9/U, 10, 11, 12, 13, 14, 15, 16, and Open. The actual records displayed in these 9 cases will be 9/U, 10/U, 11/U, 12/U, 13/U, 14/U, 15/U, 16/U, and Open.
This is not the case if you select 'Age group'. If you again select '9/U - 17/O' for Record ages, the user will be shown an age pull-down which includes 9/U, 10, 11, 12, 13, 14, 15, 16, 17/O, and Open, and these are the records which will be displayed to the user.
If you leave this at the default of 'Swim date', the age of the swimmer will be calculated and recorded as of the swim date. However, you can alternatively select a specific 'Age As At' date. You may wish to set this to December 31st, for example. If you do this, the swimmer's age on the swim date is ignored, and the age is instead set to his or her age on December 31st in the year of the swim. You should consider this carefully before changing the default; setting a date which is not the swim date introduces a permanent bias into the system. For this example, a swimmer born on January 1st will always be competing for records as the oldest in his or her age group, while a swimmer born on December 31st will always compete as the youngest in his or her age group.
You may change this selection at any time; the database contains enough information to re-calculate the record lists for either system. However, the system must be able to calculate the swimmer's age to make this possible, so the DOB and swim date must be recorded in full.
The database holds club records for swimmers of any age. It might, for example, contain records for 6-year-olds, and records for 96-year-olds. However, records are classified for display into age groups, which are set here. If you leave the defaults of '9' and '16', for example, then the record age groups will be 9/U, 10, 11, 12, 13, 14, 15, and 16/O. If the database holds records for 7- and 8-year-olds, as well as 9-year-olds, then the '9/U' category will then show the fastest time from the records for the 7, 8, and 9-year-olds.
Note that the precise meaning of an 'age group' depends on whether you have selected 'Age group' or 'Cumulative' in the Record system selector.
When adding a new swimmer to the database, or when editing an existing one, you can optionally specify the swimmer's current squad. This is useful for keeping track of squad numbers, and when sending emails to specific squads.
The current squad names are listed on the right-hand side of the page. If you have no squads configured, then nothing will be visible until you add a new squad (with the 'Add/remove' pull-down). You can set the squad names on this page, and change them at a later time if necessary. If you move your mouse over the 'Squad names' label (next to the 'Add/remove' pull-down) then a pop-up will appear, containing more information on the procedure for adding and removing squads.
The email alias provides a shorthand email address to send emails to an entire squad. If your club has code 'ABCD', for example, and you assign an alias of 'p1' to a squad, then authorised officials will be able to email the entire squad simply by sending an email to 'p1@abcd.swimadmin.org'.
The 'Size' field is optional, and gives the maximum size (capacity) of the relevant squad. If you enter the size of any squads, then an extra two columns will appear in the summary table when you generate a member list (from the 'Members > List members' menu item). These two columns give the total capacity of the club, and the number of vacancies. If you do not want a particular squad to appear in the summary table, then you can simply leave the size of that squad at the default value, or enter '0'. You might want to do this if, for example, you have a squad for a small number of occasional swimmers, and you don't consider this to be part of the available club capacity.
Note that if you change a squad capacity and then save your new configuration file, you may still have to do a page refresh before the new capacity appears in the member list summary.
You can enter additional club-specific fields into your database in this section. This is per-member data, and will appear in the member lists. See the pop-up for additional information.
When a swimmer enters a gala they will have to click through a confirmation dialog, which tells them how many events they have entered, and what the total cost will be. This dialog contains no payment instructions, since these instructions will be club-specific. You can enter text here which will be displayed as an additional paragraph after the confirmation text; this can be used for your own payment instructions. This additional text will not be displayed if there is no entry cost (if the swimmer is cancelling their entries, for example).
When a member enters a gala, the system automatically sends a confirmation email to that member. If you enter an email address here then all confirmation emails will also be copied to the specified address.
The age and birth date of a member is, by default, displayed in online gala entries, entry reports, and so on. This behaviour can be disabled for members who are older than the specified age. This could be used, for example, to prevent age display for Masters and mature swimmers.
This sets the level of detail recorded in the club log file. You should not normally change this unless asked to do so.
You should use this form to create historical club records, when initially creating the records database. You may also use this form to manually add new records, or update existing records, although you should not normally do so. Note that you cannot currenly create relay records; this is due to be fixed in an update.
In normal circumstances, you should use the 'Update records' menu item to automatically create or replace records from the times stored in the database. This procedure is automatic, and stores all the relevant information. However, you will need to manually enter any old records, using this form, before running an update for the first time.
When records are updated automatically, the swimmer's DOB and the swim date are already known, and the system can therefore calculate the relevant age. The system also knows which gala the record was achieved at, and all this information is stored as part of the new record. However, some of this information might not be available for historical club records. You might only know, for example, that a specific record was achieved in 1995, and your historical record list might show only the swimmer name and the time. This form will allow you to manually enter these records, and any other records for which you don't have a result file.
To use this form you must know, at a minimum, the swimmer's full name (both the given and family name), the course length (SC or LC), the event, and the time. You must also know the swimmer's age on the swim date. If you know and enter the swimmer's DOB and the swim date, then the system will calculate the age for you (if you also tick the relevant box in the 'Age' section of the form to allow the system to do this). You should, of course, enter as much additional information as possible, to allow others to verify the record.
The records are stored in the database independently of any swimmers, results, or galas recorded in the database. This means that you can delete swimmers, results, or galas from the database, but the stored records will be unaffected; they are effectively permanent. An existing record can only be changed or deleted when it is broken (which happens automatically in an 'Update records' operation), or when it is explicitly deleted (by a 'Delete record' operation), or when it manually changed using this form.
The record age groups for your club are defined as part of your configuration, and can be changed from the Administration menu (under 'Edit configuration'). The age groups default to 9/Under, 10, 11, 12, 13, 14, 15, and 16/Over. The user-level 'Records' menu item also allows the display of 'Open' records (in other words, the fastest records in the database, irrespective of swimmer age).
Note, however, that your club record age groups are not relevant when you enter or delete records. You must always enter the swimmer's actual age, rather than any age groups used by the club. The age groups are only used for record display. When a site user requests a records list from the user-level 'Records' menu, the system decides which records to display according to your defined age groups. You, as an administrator, are not concerned with age groups, unless you want to change them.
If you normally display records for swimmers aged 16/O, for example, and a swimmer aged 18 then creates a new record for 18-year-olds, then you must enter a new record for an 18-year-old. The system will find all records for swimmers aged 16 or over, and display the fastest of these records. In the event of a tie, the tie is first broken by swim date (the earliest takes precedence), and then by age (the records for 16-year-olds, for example, take precedence over the records for 18-year-olds).
This system alway calculates the swimmer age on the swim date. When you enter an age manually using this form, you should do the same. Some other historical systems may instead determine the record age from the swimmer's age on a specific day of the year (December 31st, for example), rather than from the swim date. We do not implement this system, because it is only fair to swimmers who have a birthday on the day after that date. For example, consider three 11-year-old swimmers who were born in a three-day period at the end of December and the beginning of January:
When the age is calculated on the swim date, a given swimmer will, on average, be competing for a given record with swimmers who are biologically older than her for 6 months of the year, and younger for the other 6 months. Given this, our swimmer is competing against other swimmers who are, averaged over the year, of the same biological age. However, this is not the case when the age is calculated on a specific date. For this second system, a swimmer born on December 31st (the second case above) will always compete against biologically older swimmers (apart from any swimmers who might share her birthday). On the other hand, the swimmer born on January 1st (the third case above) will always compete against biologically younger swimmers (again, apart from any swimmers who might share her birthday).
You should use this form to edit individual club records. If you need to change a record for a 14-year-old girl, for example, then:
There is a single unique record for every combination of course length, event, gender, and age (but note that not all of these records will be displayed to users if you are configured for 'Cumulative' records). This means that you cannot change the course length, event, gender, or age; these field are disabled, and cannot be edited. If the software allowed this, you would not be editing this record, but another, different, record. In other words, this form effectively changes the contents of a given record, rather than the type of the record.
If you do need to change one of these four fields (if you mistakenly created a record with the wrong gender, for example), then you will need to delete the incorrect record, and create the record again.
You may change the swim date and the swimmer's DOB. However, this will not re-calculate the 'Age' field, for the reasons discussed above. If you need to change either or both of the dates, and that change would lead to an age change, then you should again delete the incorrect record, and create a new record.
Results for which the swim date is unknown (in other words, the 'Unknown SC' and 'Unknown LC' galas) are never considered when updating the records, since the swimmer age at the swim date is also unknown. If a result from an unknown gala is required to be included in the records, then it must be manually added from the 'Add record' menu item. You will need to manually enter the swimmer age when doing this.
The database contains results for swimmers, rather than club members. This is an important distinction. A given swimmer might historically have been at other clubs, and may currently be swimming for more than one club. The database may, however, contain all the historical results for this swimmer. The database is therefore likely to contain results which are not club-specific, and which do not qualify for club records.
The system must therefore have a mechanism to exclude specific database entries when searching for club results. This is primarily handled by requiring swimmers to have a list of club 'Join' and 'Leave' dates. When a swimmer is first created from the 'Add swimmer' menu, a single Join date must be supplied. Additional Leave and Join dates can be added from the 'Edit swimmer' menu. These dates are always checked during a record update operation, and a database result is excluded if the swimmer is found not to have been a member on the swim date.
Under some circumstances, however, the Join and Leave dates may not be sufficient to decide whether a given result should be excluded. This will happen in at least the following cases:
The Member status is permanently recorded with the result (but may later be changed from the 'Edit result' menu). The complete algorithm to decide whether or not a result should be excluded is therefore as follows:
An official with database write permissions can give any other official permission to write the databases. You can therefore have as many site 'administrators' as you want. However, the system ensures that exactly one official has the username 'admin', and that this user has database write permissions, and that this user cannot be deleted. This ensures that there is always at least one official who can edit the databases. The 'admin' user may also receive specific emails from the server.
At some point, however, you may want to change the official who is the designated 'admin'. In order to do this, you must select the new admin from the drop-down list on the 'Change admin user' page, and click 'Submit'. The system will then assign the 'admin' username to this official, and give the previous admin user a default username. The system will also ensure that the new admin has full database permissions, if necessary.
If you want to delete the existing admin user (if he or she has left the club, for example), you must first select a new admin using this procedure. When a new user has been selected, you will be able to delete the previous admin.
A Meet Description file ('MDF') is required to enable online entries for a gala, or to check qualifying. You must create an MDF, or find an existing MDF, and upload it, for any galas which should appear on the system. You can use the top-level 'Administration' menu to create an MDF, to upload an MDF to the server, or to download an MDF from the server.
This page allows you to carry out various miscellaneous operations on MDF files:
The online entry and meet qualifying system is driven by a 'Meet Description File', or MDF, which must be created for any meet which is of interest. The system uses the MDF to determine which swimmer times can be considered for meet entry. Selecting a time for meet entry is not just a question of selecting a swimmer's current PB; several factors have to be taken into account. For example, some meets may require entry times to have been achieved at a specific licence level, while others might allow unlicensed times. Some meets will allow entry times which have been achieved on any date in the past, while others will require times to have been achieved since a specific date. Other variables include whether or not course-converted entry times are allowed, whether estimated times, or NT entries, are acceptable, what age-up date is to be used, and so on. The MDF specifies all this information.
If you are creating a meet that you will be running yourself, then you can create your MDF here. When you have finished, click 'Submit', and your new MDF will be downloaded. You can then send this MDF to any other clubs who will be attending your meet, or you can upload it to your own server to make it 'live'.
If you have been sent an MDF from another club, then you can upload it to your own server using the Administration > File upload menu item. You can then set your own online entry dates using the Administration > Set online entry dates menu item.
The help items below contain further information for each section of the MDF. You will also find this information in the manual, together with a description of the spreadsheet format which is required to specify qualifying or cut-off times.
This is the basic meet information: the meet name and venue, the course length, the meet dates, and the age-up date.
This information is optional, since you can also set the entry dates for this meet using the Administration > Set online entry dates menu item.
If you intend to allow online entries to a meet (and not just use it for qualifying time checks, for example), then you must, at some stage, specify when you want online entries to open, and when you want them to close. If you do not specify these dates then club members will not be able to enter the meet.
If the meet organiser is using Hy-Tek software, you can ignore this section. However, if the meet organiser is using SportSys software, you may need to enter additional information to correctly describe the meet. The required information is:
You can find this information using the instructions below; these are repeated in more detail in the manual. If the required information is entered here incorrectly, then the import of your club's entries will fail when the meet organiser attempts to load the entries into the SportSystems 'Meet Organisation' program (the program will complain that the events 'do not match'). If this happens, you must correct your MDF by entering the correct information in this section. Your should then re-create the MDF (by clicking 'Submit'), and then regenerate your entry file. You will not need to re-open online entries; the existing entries will be correct.
If the events are for 'Boys' and 'Girls', and the IM events are described as 100IM and 200IM, then you need do nothing; this is the most common case, and these are the defaults. To find the required information, you can do one of the following:
This section is optional. Any information that you enter here will appear on the Meet information page in the user-level menus (Galas > Gala information). This information is not used by the system; you should use it simply for commentary text.
This section allows you to specify the entrance requirements to your meet, together with the events and event costs, the age groups, and the event and session numbers. You must specify most of this information in either a qualifying spreadsheet, or a cut-off spreadsheet, or both. If you create both spreadsheets, then the events and age groups must be identical in both. You must also fill in the selections in this section to specify the remaining criteria. The required information is:
You will also need to provide some additional information on any entry times which are required for the meet. If you do not require entry times (in other words, if you have a qualifying spreadsheet in which all times are entered as 'NT'), then you can ignore these selections, and leave them at their defaults:
If licensed entry times are not required, then you can also select whether or not estimated entry times are acceptable. If so, the system will automatically use any estimated times in the database.
There is one final complication for meets which have cut-off times, but which do not have qualifying times. In this case, your cut-off spreadsheet will contain the cut-off times, but does not specify whether or not an entry time is actually required (in other words, whether 'NT' entries are acceptable). In this case, you can make an additional selection under 'Cut-off NTs' to specify whether or not NT entries are acceptable. You could alternatively achieve the same result by creating a qualifying spreadsheet with 'NT' for all entry times.
If you are not charging for your events, you can ignore this section.
If all your events have the same cost, then you should enter this as the 'Default cost'.
In some circumstances you will want to apply event-specific costs. You may wish to charge more for distance events, for example. If this is the case, you should select 'Add event' in the 'Add/remove' pull-down, and specify the event and the cost. You should repeat this as many times as necessary, and set the 'Default cost' to the cost of any remaining events.
If you are not charging an entry administration fee for this gala, then you can ignore this section.
If you are charging an entry administration fee, then you should include a short description of the fee under 'Description', and the required fee under 'Fee'.
The description has a default value of 'Administration Fee'. This text, together with the fee itself, will appear in the online entry form, and will be added to the total entry cost.
If you have a fixed-price gala with no individual event charges then you should leave the 'Event Cost' section empty and add the gala entry cost here. In this case you could, for example, enter 'Gala entry' in 'Description'.
Note that the text in 'Description' appears in a table in the online entry form, and so should be relatively short. If you enter a long justification here then it will simply stretch the table to the right of the page.
Online entries for any gala on the system are automatically enabled between an opening date, and a closing date. Entries are enabled at 00:00 on the opening date, and are disabled at 23:59 on the closing date.
If you receive an MDF (a Meet Description File) from another club, then the MDF may already contain opening and closing dates. However, you will probably want to change these; you can do so by setting the required dates in this form, and clicking 'Submit'.
You can change the dates at any time. You might, for example, want to use this form to extend the closing date for a gala by another day, or by another week.
You can edit the user-level home page from here. The user home page is the home page that is visible to club members; you should use this to notify members of upcoming galas, online entry opening and closing dates, and so on. You cannot change the administrator home page; this is used by SwimAdmin to notify you of any changes to the software.
You should make any necessary changes with the editor, and then click 'Update' or 'Cancel'. You can edit the home page only if you are an official with 'Edit other tables' permissions.
If you require formatting that is not available in the editor, then you have two options:
You can use this form to send SMS messages to your squads, or to individual club members. You must already have an account with an SMS provider, and the account details must be entered on the Club Configuration page (see 'Administration -> Edit configuration').
In order to send a message, you will have to go through a 2-step procedure. When you click 'Send' after creating your message, the software contacts your SMS provider, and asks for the message cost. A new pop-up window will appear, showing you the message cost, and asking you to confirm that you wish to send the message. Your message will only be sent if you click 'Continue' at this stage; you can instead click 'Cancel'. Your account will only be debited if you click 'Continue'. If you do not have sufficient credit on your account, the pop-up will instead report that you cannot send the message.
You will need to exercise some caution when sending messages to multiple squads or individuals, particularly if you have chosen to send the message to all the mobile numbers recorded for an individual. Please make sure that your read the message in the pop-up before clicking 'Continue'.
To send a message, you must select the recipients, you must write the message itself, and you must say who the message is from. Messages you create here are not associated with a specific sender phone number: you must provide the 'From' information yourself. These steps are covered in the sections below.
Some club members will have multiple contact numbers in the database. By default, text messages are sent only to the first mobile phone number in the member's contact list, to minimise costs. You can change this behaviour by selecting 'All member numbers' here.
Note that you can prevent specific mobile phones from receiving text messages by entering 'NOSMS' in the comment for the phone number. All member phone numbers in the database may have a comment, if required; this is anything which appears before a colon character. The numbers recorded for a specific member might look like this, for example:
01362 000001 Mum: 07850 123456 Neighbour NOSMS: 07850 123457
The software automatically determines that this member has two mobile numbers. However, it will never attempt to text the neighbour's phone (because the comment contains 'NOSMS'), even if you have selected 'All member numbers' here.
Texts can be send to entire squads, or to individual members, or some combination of both. Select the message recipients from the left-hand list, by clicking on them. The selected recipients will then move to the right-hand ('Selected') list. You can remove recipients from the selected list by clicking on them.
If you have any squads defined, then the squad names will appear in the left-hand list, and can be selected. If you do not have any squads defined, then you should create them from the 'Edit configuration' page. Note that there is no guarantee that every member of a given squad has a contact mobile number. You can check this from the 'members' page. select Administration -> Members -> List members, and check the 'SMS' column for the squad.
Individual club members appear below the squad list in the left-hand box. If a member can be selected, then that member has a phone number which can receive text messages. If a member is greyed out and cannot be selected, then that member has no SMS-enabled phone number in their contact details.
This field will appear as the sender name or number in your message. You should enter a minimum of 3 characters, and a maximum of 13 characters; the default is your 4-character club code. If you need a reply to your message, you should enter your own mobile phone number, in international format, with no '+' (for example, 447850123456).
Enter your message here. Messages which are 160 characters or less will be sent as a single text; longer messages will be segmented, and sent as multiple 153-character texts. Each segment of a multi-segment text is charged as a single text message.
The counters at the bottom of the form show:
Use this form to change the ASA number for any club member or official. You should only do this when absolutely necessary; the number you enter must be correct, and should match the number recorded at the ASA. Any gala results which are affected by this change will also be updated; the server will display the number of results affected, if any.
After initial installation, your new SwimAdmin site must be configured for your club. This is a multi-step process, which is carried out as described below. On completion, you will be able to access your SwimAdmin site using your 4-character club code. If your club code is CLUB, for example, and your domain name is 'myswimclub.uk', then the member login page will be at 'https://myswimclub.uk/CLUB', while the administrator login page will be at 'https://myswimclub.uk/CLUB/admin'.
The installation procedure is described in SwimAdminInstallation.pdf, which briefly covers the 'Stage 1' and 'Stage 2' configuration forms. If you need more information on these forms you can find it in SwimAdminConfiguration.pdf, or in this online help.
On completion of Stage 1 and Stage 2 configuration, your site is fully functional, except that your club only has a single member (yourself), and has a generic setup. You should complete your club setup (for the names of your squads, and so on) by logging in on the administrator page, and selecting 'Club configuration' from the 'Administration' menu.
The 'Linux server' section is used to enter specific details about the server itself (in other words, your computer), rather than your swimming club. Where you need to create a password, you have two choices:
Your club identifying codes are assigned by Swim England. These codes are primarily required for identifying your club in results files. If you are simply evaluating SwimAdmin, then you will not need official codes. In this case, enter 'Club Code 1' as a sequence of 4 upper-case characters ('DEMO', for example). Enter 'Club code 2' as a more verbose description with a maximum of length of 12 characters ('Demo Club', for example). 'Full club name' is more descriptive, with no restriction on the length; it might be 'My test club', for example.
In most cases, however, you will need official codes. If you do not already know your codes, they can (currently) be found here. Assume, for example, that you need the codes for City of Cambridge. A search for 'Cambridge' at the link above brings up 'City of Cambridge SC', with a 4-character code of 'CAMT'. However, this is not sufficient, since some result files require the use of a longer (potentially 12-character) club code. To find this, you will have to download the 'Club Codes File' from the link above. The required fields can be found in this file, and are given below for some example clubs. You must make sure that you enter the names exactly as they are shown in the downloaded spreadsheet, including any spaces or other special characters:
Full club name | Club code 1 | Club code 2 |
City of Cambridge SC | CAMT | Co Cambridge |
Derventio Excel Swim Squad | DEXA | Derventio |
University of Bath SC | BAUW | Bath Univ |
You will need to take some care with these codes. If you enter them incorrectly, the software may not be able to identify your club in result files. This can only be corrected by manually editing the club configuration file (this is 'config.txt' in the club root directory; if your club is CLUB, for example, this will be at '/var/www1/CLUB/config.txt').
The SwimAdmin site will be created with a single user. This user must be a club official, who will be given a username of 'admin'. While you can set up any number of club officials who are administrators, the official with this username is special, and cannot be deleted (this ensures that the site can always be logged into). You can, if necessary, change the identity of the 'admin' user at a later time by changing their details in the normal way (from the Administration > Change admin page).
You should enter this official's details in the Site Administrator section. If this official has an ASA number, it should be entered here; if not, the ASA number field can be left empty, and a new temporary number will be created. If this official later becomes an ASA member you can can change this temporary number in the normal way.
The new admin password is re-used a number of times and, for this reason, it cannot be as complex as the 'Linux server' passwords discussed above. Specifically, if you choose a 'Form 1' password, it must contain no special characters other than '.'.
The details in this section are also used for the initial configuration of a number of other non-SwimAdmin programs:
The password entered here is therefore used 8 times. Three of the MySQL passwords are not particularly secure, in that anyone who has access to your server can see these passwords if they know where to look (see the online help on the Others > MySQL passwords page for details). You should therefore not re-use one of your own important passwords during configuration; if you do, you should change the MySQL passwords as soon as you can.
Stage 2 automates the process of obtaining a 'security certificate' for your server. This certificate allows your website to be accessed with the encrypted 'https' protocol, which should always be used when accessing secure parts of a website (those parts which require you to enter sensitive information such as banking details, for example). However, it is best practice to access the entire website securely, and SwimAdmin follows this practice, redirecting all 'http' accesses to their 'https' equivalents.
The certificate is provided by Let's Encrypt, and is valid for 3 months. The certificate is automatically renewed every 3 months.
The process of obtaining a certificate is complex, and can take several minutes to complete. The software has to write a coded file to a location on the server (as proof of ownership of the server), and then contact the certificate provider. The provider confirms the existence of this file, and generates a new certificate, which is saved on the server. This process can fail, and may have to be repeated. The process will be automatically repeated if necessary.
In the event of a failure, a log file will be left at 'data/acme.log' on the server, to aid debugging (for 'myswimclub.uk', for example, this will be at 'http://www.myswimclub.uk/data/acme.log'). You may wish to save this file for future reference.
Your site will be unavailable while the certificate is being installed. You will be sent a number of emails during installation; the final one will tell you that the server has rebooted, and that you can log in. Your browser will then show a padlock icon to tell you that you are connected to a secure website. There are a number of SSL testers that can be used to confirm that your site is correctly operating as an SSL web server. The Qualys tester, for example, can be found here, and should show an 'A+' rating for your SwimAdmin site.
Use this form to set up any external email addresses which are to be handled by your club. Internal email addresses are handled automatically, and don't require any setup.
When creating a new address, or modifying an existing one, you can choose to deliver mails 'locally', or to redirect incoming mails to another address (or both).
If you select local delivery, you will first need to create a 'mailbox' that the incoming mails will be delivered to. You must do this before creating any new addresses that will be delivered to the mailbox. See the Mailboxes menu for instructions.
If you select redirection, incoming mails to your new address will simply be forwarded on to any additional addresses that you supply. You may prefer to do this if your mail user already has an account somewhere else (their work mail account, for example, or a webmail provider such as gmail), and doesn't want the additional complexity of having a second club-specific mail account.
The procedure for creating addresses is covered in more detail in 'How do I get my emails?' below.
You can delete a mail address by selecting Delete address. Any mails sent to this address will then be rejected by the server, and returned to the sender as undeliverable ('bounced'), unless you have opted to receive 'catch all' addresses (see below).
Note that deleting a mail address which has local delivery does not delete any messages that were previously received by that address. These messages are stored in a mailbox, and the mailbox itself must be deleted to delete any messages.
When creating a new address, you should enter only the prefix of the required club email address in the Address field. The prefix is everything before the '@' character. Similarly, if you want to modify an existing address, the names which appear in the pull-down will be the prefixes. In principle, the prefix of an email address can be almost arbitrarily complex. In practice, complex names generally have limited support in the wider email system, so you should keep your names simple. Make all letters lower-case, and start the name with a letter. The remaining characters should be chosen from a-z, 0-9, and _.- (underscore, dot, dash). You use additional characters at your own risk. Do not use +; this has a special meaning in email prefixes, which is described below.
In normal usage, you will want mails to your club to be delivered only if the mail is to a recognised address prefix. However, in some cases you may wish to receive mails to any address at your club. To do this, create a new address, and enter the address as *. Incoming mails to your regular addresses will be processed normally; the catch-all entry will be then used for unmatched address prefixes.
When you create a new address, you are actually creating a family of 'plussed addresses', rather than a single simple address. These additional addresses have a suffix which must start with a '+' character. The suffix can be arbitrarily complex, but you should use only the characters listed above to ensure deliverability. If you create address 'harry', for example, then emails to 'harry+a98' will also be delivered as expected.
Let's assume that your domain name is 'myswimclub.uk', and your Swim England club code is 'DDST'. Mail addresses which look like 'someone@ddst.myswimclub.uk' are 'internal', or private, and are automatically created and maintained by SwimAdmin.
Mail addresses which look like 'someone@myswimclub.uk', on the other hand, are normal public email addresses, and a club administrator must create them using this form. So, if the mail address contains your 4-character club code it is internal and private; if it does not contain your club code, it is just an ordinary email address.
Only the domain name is case-sensitive. If your domain name is 'myswimclub.uk', and you have a club member named Matilda Wormwood, and you have set up an external address for 'Fixtures', then these are all valid addresses:
But these are not valid addresses:
Internal addresses are private to your club. Emails which use these addresses cannot cross the boundary between your club and the outside world. In other words, someone who is not a club member cannot send an email to an internal address, and you cannot send an email from one of these addresses to anyone who is not a club member. SwimAdmin uses the Official and Member databases to determine who is in the club, and to enforce these rules.
So, why do you need internal addresses? There are a number of reasons:
Internal addresses can't be reached from the outside world. If your fixtures secretary is Jo Smith, for example, then there's no point adding the address 'jo.smith@ddst.myswimclub.uk' to your Gala Entry packs, because no other club will be able to reach Jo Smith using this address. This is what external addresses are for. In most cases, these will simply be 'vanity addresses', but you should consider creating addresses for 'membership', 'welfare', 'fixtures', and the club secretary, at least.
The system doesn't record why, or when, you created a particular address. This might create problems in the future when somebody else is trying to find out who 'jim@myswimclub.uk' actually is, and whether this address can now be deleted. You should probably consider using more descriptive names; perhaps using both the first and second names, for example.
You can either redirect your external mails to another email address that you already own, or you can pick up your emails directly from the server. These are the two options under Delivery: you can select Redirect to another address, or Local delivery, or both. These are described below.
Redirection is the easy option. If you already have an address at gmail, for example, and that address is 'me1000@gmail.com', and you want to receive emails to 'membership@myswimclub.uk', then:
You can redirect to more than one address if necessary.
Any emails sent to 'membership@myswimclub.uk' will now end up in your gmail account, and you should reply to them from that account. There is a complication, however. You will probably want your replies to these messages to appear to come from 'membership@myswimclub.uk', rather than 'me1000@gmail.com'. The webmail providers generally have some way to set up an alternate identity for sending emails. For gmail, for example, you can find instructions here (if the link doesn't work, Google for 'Send emails from a different address or alias').
If you select Local delivery you will be asked to select an existing mailbox to deliver messages to. User mailboxes can be accessed using a browser or any email client which supports the IMAP protocol.
To use a browser to send or read emails navigate to https://myswimclub.uk/mail, which is your club's Roundcube interface. Roundcube includes online help; the help pages can also be found here. Your users must log into Roundcube using their mailbox name and password. Note that this is their base mailbox name, and not the full 'at' name (membership, for example, rather than membership@myswimclub.uk).
Roundcube's Settings menu allows mail users to carry out a number of additional actions:
The mail system can also be accessed directly from a mail client (such as Thunderbird). The IMAP settings for incoming mails should be set to:
The SMTP settings for outgoing mails should be set to:
A 'mailbox' is a storage area on your server which contains a record of your incoming email messages. You can read these messages with any IMAP-compatible client, or with the Roundcube webmail client, which is already installed on your system.
Mailboxes must be named, since your users will need their mailbox name in order to log into the server and read their messages. In practice, a given user's mailbox name will probably be the same as their email address, which can be confusing. You might have a mailbox named fixtures, for example, which records the incoming mails for the user with email address fixtures@myswimclub.uk. However, you should bear in mind that the two names are not related, and that the messages for several different email addresses could potentially be recorded in a single mailbox.
You can create, modify, or delete a user mailbox using this form. You should set the form fields as described below.
This should be something simple, such as 'fixtures', or 'membership'. This name has the same restrictions as a member username (see 'Change my username' under your login for the specific requirements). Remember that the person who currently uses this mailbox may change in the future; if this is going to be the case, the name should be 'fixtures', for example, rather than 'tim.bisley'.
This is an optional field which describes the mailbox. You could use it to enter a name, for example, such as 'Tim Bisley'.
This is the password which will be used to log into the mailbox. This has the same restrictions as a normal user password (see 'Change my password' under your login for the specific requirements). When the mailbox has been created, the password can be changed in one of two ways:
Set this to the maximum allowed size of the mailbox. When the mailbox has exceeded this size on disk, incoming emails will be bounced back to the sender with an "exceeded quota" message. The default size of 500 megabytes should be more than adequate in most cases.
If you do not want to enforce a quota for this mailbox, set this field to '0'.
If a mailbox is no longer required, it should be deleted to save disk space. You can do this by selecting Delete mailbox. You will be asked to confirm your selection, since mailbox deletion is permanent.
There are circumstances in which you may want to find the club member or official who has a given email address. A bounce message, for example, will contain the final recipient's mail address, but may not contain their real name. This form should be used to find the real name associated with an email address. A given email address may be used by more than one user (an official, for example, with children); all the relevant names are returned.
Note that this is relevant only to internal club emails, while the 'Mailboxes' and 'Mail users' menu items are relevant only to external club emails.
If you have just installed SwimAdmin, you should run Update customers immediately after creating your member database.
SwimAdmin registers your club members as your 'Customers'. This isn't required in order to use Stripe, but it does make life a lot easier at the Stripe dashboard. You can check your members by name, get a payment history, and create a subscription, among other things. The only information recorded at Stripe is the member's name, squad, and ASA number. An email address is also recorded, but this is the internal club mail address, rather than the member's real address.
SwimAdmin won't take a payment from a member unless they are a known customer (an error message is returned to the member, asking them to contact the club treasurer). To register your members, you must run Update customers.
When you first run Update customers for a new club the process can take some time (generally, about a second for each member). You should re-run the update whenever:
SwimAdmin won't initiate a payment if it can't find an existing customer with a matching name and ASA number (cases 1 and 2 above). However, payments will be taken if a recognised member has a squad change, but you will then have incorrect squad information on your Stripe dashboard. In other words, you should re-run the update even for case 3. Customer updates will be much faster when you are simply recording changes; these should complete in a few seconds.
When you run an update, SwimAdmin checks your entire member database. New members will be added as customers, changed members will be updated, and old members (those who are no longer on the database, or who are no longer active) will be deleted.
A gala payment run refers to the process of collecting deferred payments for a gala. This is only relevant if deferred payments have been enabled (see the 'Stripe 2' and 'Stripe 3' payment methods in Administration > Edit configuration). A payment run is initiated automatically when a gala entry window closes; this happens just after midnight (entry windows always close at midnight). However, in some cases, you may prefer to manually initiate the payment capture process. To do this, select Stripe > Run gala payments.
Run gala payments will do nothing until an entry window has closed. If you need to capture payments early, you must first adjust the closing date of the relevant gala to some point in the past. You can do this from the Administration > Set online entry dates page.
A manual run may be necessary if the automatic process has failed, or you need to submit the entries early. Your own manual payment runs will not interfere with the automatic process; payments can only be taken once. You can initiate a manual run at any time; you will be informed if there are no payments to be taken. Note that you can create electronic entry files at any time, whether or not the entry window has closed; this is unrelated to payment capture.
If you have selected 'Stripe 2' payments you should remember that time is of the essence when capturing deferred payments, because customer funds are generally held for only 7 days after a payment request. If an online entry window is longer than 7 days, or the automatic capture mechanism fails and you do not check your Stripe dashboard for any uncaptured payments, then payment requests which are older than 7 days will simply be cancelled. You will then need to arrange an alternative mechanism to collect these cancelled payments.
You must check your Stripe dashboard as soon as you can after an entry window closes. You should confirm that payments have been taken if you have selected 'Stripe 2' payments, or that invoices have been raised for 'Stripe 3'.
Your server includes a WordPress installation, in addition to SwimAdmin. Your initial club configuration created a WordPress administrator, with the same name and password as your SwimAdmin 'admin' user. However, both WordPress and phpMyAdmin were disabled during configuration; you should use this form to enable them, or to change the administrator details.
You can alternatively change the administrator details from WordPress itself, if you know the current password. However, you should not do this. SwimAdmin maintains the WordPress and phpMyAdmin state in a configuration file, and in the MySQL database, and directly modifying the administrator from WordPress itself may lead to inconsistency. However, you can always recover from this situation by filling in and submitting this form.
The IP address and password fields are optional. The current password is not displayed; if you do not enter a new password, the current password will be unchanged.
The WordPress site is optional. If it is enabled then it will be visible at the root of your site. In other words, if you have domain name 'myswimclub.uk', then your WordPress site will be visible at 'https://www.myswimclub.uk'. If WordPress is not enabled, then your site root will instead show an 'invalid address' message, with instructions. In both cases, your SwimAdmin site will be at 'https://www.myswimclub.uk/ABCD', where 'ABCD' is your club code.
The WordPress site can be enabled or disabled by setting the 'Enable' radio to 'Y' or 'N'. During development of the site it should be disabled, so that it is not visible to the public. However, even when disabled, the site will still be visible to the (single) address which is entered in the 'IP address' field. This can be helpful during site development. An IP address is the numerical address of a computer on the internet. Only IPv4 addresses are currently supported; these look something like 'ddd.ddd.ddd.ddd', where 'd' is a decimal digit.
SwimAdmin passwords have a common format. Passwords must be 8 or more characters, and must contain at least one upper-case letter, at least one lower-case letter, and at least one digit. Alternatively, you can enter three or more ordinary words which are separated by '.' characters, as long as the total number of letters is 12 or more.
Note that there is no way to retrieve your administrator password if you have lost or forgotten it; you must instead change it.
phpMyAdmin is a database administration program, and can be used to directly modify your WordPress database. It is available at https://myswimclub.uk/phpmyadmin, where 'myswimclub.uk' is your own domain name. When logging into phpMyAdmin, you can use any of your MySQL usernames and passwords; see the MySQL passwords online help if you don't know what these are.
phpMyAdmin can be directly accessed by anyone who knows, or can guess, one of your MySQL user and password combinations. It is therefore a security risk, and is disabled by default. You can enable it from this form, but you should take care to disable it again when you have finished with it.
This form can be used to change any, or all, of your MySQL passwords. If you leave a password field empty, that password will be unmodified. You should enter a password only if you intend to change it. Normally, SwimAdmin passwords have a common format, but MySQL passwords cannot contain any special characters. In other words, your passwords can be either (a) 8 or more characters, with at least one upper-case letter, at least one lower-case letter, and at least one digit, but no special characters other than '.'; or (b) three or more ordinary words which are separated by '.' characters, as long as the total number of letters is 12 or more.
MySQL is pre-configured with four users, as follows:
You should be aware that the 'wpuser', 'rcube', and 'stripe' passwords are stored in the WordPress, Roundcube, and SwimAdmin installations in plaintext (in other words, they are directly visible to anyone who knows where to look). This is unavoidable. However, this presents a low security risk, since an attacker would first have to gain access to your server in order to find them. If an attacker has this ability, then your server has already been compromised, and the passwords are irrelevant.
Enter your current password and your new password (twice).
Your new password must be 8 or more characters, and must contain at least one upper-case letter, at least one lower-case letter, and at least one digit. Alternatively, you can enter three or more ordinary words which are separated by '.' characters, as long as the total number of letters is 12 or more.
Enter your new username. Usernames must be 3 or more characters, which must be upper- or lower-case letters, or digits. The name may optionally contain a single special character, which can be an apostrophe, dash, or underscore.
Usernames are not case-sensitive. If there is already a user named 'Joe', for example, then you will not be able to change your username to 'joe'.