Bug Tracking page

YODX-HF 2024 Software
DEV / OPS TEAM

Look mom, there is a bug in YODX log WebApp!

YO8RXP

Developer

PHP, HTML, JS, MariaDB SQL pentru Front/Backend.

Linux Bash + Python3 pentru Ajax Live Uploaded Logs processor si fetchMail.

YO7EY

Debug & Browser intensive testing

Foarte mult timp dedicat <br>pentru Debug si teste in diferite browsere web.​

YO7FWS

Developer

Functii de validare scrise de el: Date/time, Freq in Band si Contest date interval.

TODO 2025 !
  • Pentru statiile DX, validatorul trebuie sa verifice daca numarul de ordine trimis coincide cu QSO number.
  • Parserul de email via API, sa trimita logul direct in Uploader pentru validare. In caz de erori, sa trimita via email notificare catre operator.
  • Tagul QSO: trebuie sa fie inlocuit cu QSO:+space, pentru a evita o eroare produsa de softul UR5EQF log v.3.31-61 unde frecventa din 5 cifre vine legata de acest TAG, fara nici o spatiere. "QSO:14000 PH 2024-08-24 1201 * * * *"
  • Default, anul afisat la intrarea  pe pagina este ultimul an cu rezultate, ca sa nu dureze mult afisarea valorilor.
  • Insa se poate selecta din filtre anul dorit sau toti anii din 2021 onward
  • Am adaugat un field de search indicativ ca sa fie mai simplu de cautat, insa cautarea se face in anul selectat in filtru.
  • Am renuntat la Club: tag din pagina principala si l-am lasat default din header-ul original daca exista.
  • Pentru premiul special oferit de mine, am adaugat check Box si varsta cu javascript pentru YN SOAB MIXED LOW, varsta este in range 6-18 ani.
  • In confirmarea trimisa pe email, am renuntat la logul original insa am adaugat printscreen image cu selectiile facute de participant + MD5 sum.
  • Lista cu logurile primite este in format tabelar cu scroll vertical in interiorul elementului html, iar tabela are headerul sticky.
  • Am adaugat o functie de cautare indicativ, cautare care lucreaza automat odata cu inceperea tastarii, cautare care face scroll automat in tabela.
  • In loc sa generez un json care sufera de concurenta, testez un fetch() remote API care din SQL returneaza json. In acest fel, fiecare log nou primit este scris in MariaDB care stie sa gestioneze Insert sau Update concurential fara ca threadurile Apache sa se bata pe acelasi fisier. 
  • FIXED cu  SQL database unde  indicativul este ca cheie UNIQUE pentru afisare realtime. Threadul Apache nu mai este blocat pentru cei care fac upload simultan, iar lista este extrasa si afisata cu javascript Async .

Categoria CHEKLOG necesita completarea tuturor campurilor
<li>Checklog + SWL nu mai necesita completarea urmatoarelor campuri, ele apar ca disabled in momentul selectiei.

  • Pentru fisierul original si reconstruit, generez MD5 checksum atasat in email body in caz ca operatorul reclama jurizare gresita..
  • Pagina de logcheck are 2 butoane in caz de succes , Back pentru reeditare informatii sau Finish pentru trimiterea confirmarii plus multumirile de rigoare. Adaugat si tagul Soapbox original.
  • Fisierul original este redenumit cu data si ora trimiterii (de inlocuit cu UTC in loc de server time)

Single qoute si Double quote nu fac escape in campurile Club si Extra. si se sterge tot ce urmeaza dupa ele.

  • Am facut escape complet la acele varibile in PHP cu htmlentities().

In cazul in care userul introduce o adresa de email care contine spatiu gol la inceput, pe parcurs sau la sfarsit, patternul detecteaza format email incorect pe buna dreptate. Insa spatiile goale nu prea sunt vizibile deci userul isi va pierde rabdarea.

  • De implementat o functie in JS legata de eventul “oninput” care sa stearga automat aceste spatii goale chiar in momentul tastarii sau copy/paste
  • Am reutilizat aceeasi functie si la indicativ

In caz de log error si se face BACK, indiferent ce category operator era selectat, revine pe SIngle-Op
Acest fix + o modificare, a reparat si flip flop Overlay la apasarea butonului BACK. semnalat de YO7EY

In caz de eroare si click back , fieldul Extra sterge tot ce urmeaza dupa spatiu gol desi fiserul cabrillo regenerat contine tot stringul. De testat acelasi lucru cu field CLUB:
<li>Input value nu era incadrat intre ghilimele

Counterul de loguri primite via uploader nu sorteaza alphanumeric fisierele.

  • Valorile fiind case sensitive, am introdus pipe catre sort –ignore-case

<li>De atasat fisierul original in email.
<li>De scanat si adaugat tag-ul LOCATION, NAME, ADDRESS*, GRID-LOCATOR, SOAPBOX si CREATED-BY in rezultatul final.</li>

In Firefox, indiferent ce banda /mod / putere se selecteaza, ele se intorc pe prima optiune din lista.
<li>Firefox nu stie sa faca debounce la onmousedown event. Am facut toggle flip-flop zero sau 1 pentru functia de reset options</li>

indicativele cu /P (portabil) genereaza eroare la validare !
<li>De facut escape la caracterul ‘/’ </li>

Fisierul regenerat nu contine timestamp ci duplicat la data – De verificat daca populez cu variabila gresita

Windows 7 + Firefox – Nu se poate face resubmit; – de verificat daca session cookie inca este prezent dupa aterizarea in index.php </strong><br>
const result = cookieStore.delete(“username”); –
<strong>Uncaught ReferenceError: cookieStore is not defined</strong>
Windows 10 + FIrefox
<li> In loc de metoda cookieStore.delete(cookie name) care nu este disponibila in FF, am abordat tehnica clasica cu expiry date.</li>

Necesar validare data cu anul curent + luna August pentru a preveni upload fisier valid dar din anii precedenti. De implementat isValiddate()
in conjunctie cu date(“Y-08”);

Validarea frecventei si timestamp este doar ca integer, – De scris functie de validare timestamp plus inband freq check.

  • O conditie lipsa a generat imposibilitatea categoriei CHECKLOG sa selecteze puterea, motiv care blocheaza uploadul cu succes.
  • Utilizarea translate page genereaza formatea headurului Cabrillo in limba respectiva. Am dezactivat optiunea de translate insa doar pentru Dropdown Selector.

32 Comments

Adi · August 27, 2024 at 8:02 pm

Din partea mea, jos palaria pentru ceea ce ai facut.
73 si numai bine !

gabriel@yo8rxp.com · August 26, 2024 at 9:52 pm

Roger si gata !
Sper ca FRR sa ia notite, sa scrie cu penita si litere mari. Poate pentru anul viitor va fi nevoie de un alt prost in viata care sa le faca cate in luna si stele iar ei sa-si bage picioarele, mucles total, zero telefoane inainte, zero telefoane dupa ! “O fi totul ok Gabi ? , putem face ceva ?, te putem ajuta cu ceva ? ” Zero absolut, zero implicare ! Nu stiu de la ce vine ultimul R, dar sigur nu e de la radioamatorism !
Mie mi-a cam ajuns !
73 si cele bune !

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *