Electronisch Inschrijven .
27-03-04,28-11-04
/
02-02-06
Doel .
Om Inschrijvingen van deelnemers aan een tournooi te kunnen verwerken .
Eisen
De inschrijving bestaan uit tweedelen.
De organisatie gegevens zoals naam aansluitnummer e.d.
De deelnemers gegevens zoals geslacht , geboortedatum e.d.
De inschrijving moet gekontroleerd worden op korrektheid .
De inschrijving moet verifieerbaar zijn voor de inschrijver .
De inschrijving moet een uniek (betalings) kenmerk krijgen .
De inschrijving moet kunnen worden toegevoegd aan een tournooibestand (*.del)
Inschrijf formulier .
De bewerking van het inschrijf formulier bestaat uit 3 phasen
phase 1 : de invullen van het inschrijformulier .
phase 2 : de controlle/wijzigingen .
phase 3 : de acceptatie .
Gekoppelde eigenschappen .
( Ofwel wat moet worden ingevuld.)
Voor de organisatie gegevens is het telefoonummer en de eMail verplicht .
Voor de deelnemer is de band en het aansluitnummer niet verplicht .
(Sommige tournooien kunnen dit wel verplichten)
Uitvoering voor het scherm
Nadat de inschrijving is ontvangen wordt deze gekontrolleert op bekende fouten.
Onjuiste organisatie fouten zijn door de opsteller niet te wijzigen .
De mate van korrekheid van deelnemer gegevens is door de opsteller te wijzigen .
(Zoals leeftijd grensen , min. band , verplicht lidnummer)
Indien fouten zijn gekonstateerd wordt het formulier terug gestuurd met een FOUT toelichting . Waarop men de gewenste verbeteringen kan aanbrengen .
Indien geen fouten zijn gekonstateerd wordt het formulier terug gestuurd opdat u nog deelnemers kunt toevoegen of U kunt het versturen .
Indien het formulier is verstuurd krijgt u een bericht terug met de verzend datum en tyd . Mogelijk met het verschuldigde bedrag en rekening nummer plus betalings kenmerk .
Uitvoering achter het scherm
Er kan maar 1 inschrijving in de tyd worden verzonden , dit om botsingen tevoorkomen .
Dit wordt berijkt door een file_lock , geduren deze tyd wordt een kenmerk (ID) gemaakt . Dit kernmerk is een randomgetal met als start waarde de tyd in milliseconden . Tevens wordt in deze periode de gegevens toegevoegd aan de data file (in csv formaat) . Daarna worden de gegevens verstuurt per eMail naar de tournooi organisatie . Dit in x-www-form-urlencoded formaat als bijlage(attachment) onder de naam POSTDATA.ATT . In de bijlage staan ook gegevens over waar en hoe de data moet worden verwerkt voor de ontvanger . (WORK= , PROG= ) Tevens krijgt de organisatie een copy van het csv bestand alsmede de inschrijvingen als text .
De tournooiorganisatie zal over een aantal script's (con2post.exe,icmd2csv.exe) moeten beschikken om de POSTDATA.ATT te converteren in een csv formaat .
('con2post.exe' maakt van POSTDATA.ATT een POSTDATA.CMD en start 'icmd2csv.exe bestandnaam' welke een bestandnaam.csv maakt .)
POSTDATA.CMD formaat (line_oriented version of POSTDATA.ATT)
work= /* werk folder */
prog= /* conversie programma */
date= /* datum */
time= /* tyd */
ID= /* unieke identificatie */
9 regels voor de organisatie gegevens
7 regels per deelnemer
BESTAND.CSV
organisatie = 12 velden =
naam,aansluitnummer,telefoon,fax,contactpersoon,eMail,straat,postcode,plaats,time,date,betaling
deelnemer = 7 velden =
geslacht,geboren,gewicht,voornaam,achternaam,band,pasnummer
Tevens een toevoeger (load2del.exe) moeten hebben die de gegevens toevoegd aan een tournooi bestand (.del) .
('load2del bestandnaam' voegd een bestandnaam.csv toe aan bestandnaam.del . )
Naamgeving konventie :
Bedenk een (niet te lange) tournooi naam . b.v. OPSTAP
Per konventie is de uitnodiging dan UOPSTAP
De inschrijving is dan IOPSTAP
De electronisch inschrijving is EOPSTAP
Het deelnemer bestand wordt dan OPSTAP.csv en OPSTAP.del
Wat de extentie van U--- , I--- , E--- wordt hangt van de gebruiker af .
(Ik gebruik U---.htm , I---.htm , E---.php . Ik heb hier PHP(HypertextPreProcesser) gebruikt . Je kunt ook PERL , PYTHON of C gebruiken . Als de script's maar een CGI(Common Gateway Interface) hebben .)
Valkuilen (TODO's)
Het uniek zijn van org_naam en aansluitnummer .
Als een aansluit nummer meerderemalen reeds voorkomt geeft dit geen probleem daar het programma dan vraag 'aan wie zal ik de deelnemers toevoegen' .
Dus de alle inschrijvingen die hun nummer niet weten (b.v. buitenlander's) hebben 1900 , dit gaat op grond van bovenstaande goed .
Een (nog) niet bestaand aansluit nummer geeft geen problemen , deze wordt aan het bestand toegevoegd .
Een lastig probleem is het als de inschrijver met naam aansluitnummer , deels overeenkomt met een in het bestand aanwezige kombinatie naam aansluitnummer .
Hoe groot moet de graad van gelijkheid zijn opdat gesteld kan worden dat bijden dezelfde zijn ?
Enige voorbeelden
Sportschool de Leeuw 1006 <--> jv. Veendam 1006 --> echt niet goed
Stichting Top Judo Noord 1258 <--> T.J.N 1258 --> hum ?
jv. Tori 1009 <--> bv Tori Tytjerksteradiel <--> bv. Tori 1009 --> ja
Mogelijk moet je de naam door een lexicalscanner halen en kijken of er elementen gelijk zijn . Zoniet vraag aan de gebruiker wat te doen .
Het uniek zijn van deelnemer namen .
Volgende van gelijkheids bepaling
zijn beide naamrecord's identiek
zijn voornaam en achternaam identiek + geboorte jaar
bestaat naamrecord in een andere Org , dan kopier deze .
bestaat voornaam , achternaam in een andere Org , dan kopier deze .
Backup's
De inschrijf gegevens worden op de server opgeslagen (in csv formaat) en tevens verstuurd naar de tournooi organisatie (als POSTDATA.ATT,???.csv,eMail).
Bron texten .
Een voorbeeld van een inschrijfformulier staat in
district
onder de naam
EDK-15.php
De gemeenschappenlijke routines voor het inschrijfformulier staan in
judoforms
onder de naam
EIHOTC.php
en de bijbehorende fout routine staat in
EDEFER.php
.
De eMailer staat in
judoforms
onder de naam
sendmail.php
Als je geen CGI server (b.v. Appollo) hebt dan kun je de data op een file
POST.CMD
weg schrijven (in text formaat) welke door
LOADPOST.PHP
wordt geplaatst in
$_POST
(dit is de CGI variable in PHP) .
Bekijk hier
de structuur
van de benodigde conversie's .
Nu geef de aanvullingen maar (o.t.w. schiet er maar op)
Groetjes
.