sudofeed

dev · · 21:02 · 2 min de citit

URL-ul ca Fișier de Salvare: Un Calculator de Fișe de Pontaj Fără Backend și Fără Conturi

O nouă aplicație web, HourTotal, permite utilizatorilor să calculeze și să salveze fișele de pontaj exclusiv în URL, eliminând necesitatea unui backend sau a conturilor de utilizator. Întreaga stare a fișei de pontaj, incluzând zilele lucrătoare, perechile de intrări/ieșiri, numele, perioada de plată, regulile de overtime și rata orară, este serializată într-un șir codificat base64url stocat în fragmentul URL-ului.

HourTotal este un nou calculator de fișe de pontaj bazat pe web, conceput pentru a funcționa fără nicio infrastructură backend sau conturi de utilizator, abordând limitările instrumentelor online existente. Calculatoarele tradiționale fie pierd datele la închiderea tab-ului, fie necesită înregistrare prin email pentru salvare. HourTotal rezolvă această problemă prin încorporarea datelor complete ale fișei de pontaj – cinci zile lucrătoare, până la două perechi de intrări/ieșiri pe zi, nume, perioadă de plată, reguli de overtime și rata orară – direct în identificatorul de fragment al URL-ului. Această abordare asigură persistența datelor între sesiuni și permite partajarea ușoară fără a compromite confidențialitatea utilizatorului sau a necesita stocare pe server.

Implementarea tehnică implică serializarea stării fișei de pontaj în JSON, care este apoi codificată folosind base64url pentru stocare eficientă în URL. Caracterele speciale sunt gestionate prin înlocuirea '+' cu '-' și '/' cu '_', iar padding-ul este eliminat. Pentru a acomoda caractere non-ASCII în nume, șirul JSON este mai întâi codificat UTF-8 folosind `encodeURIComponent` și `unescape` înainte de codificarea base64. Datele sunt salvate folosind `history.replaceState` pentru a evita aglomerarea istoricului browserului, cu editările puse în coadă pentru a preveni `SecurityError`-ul Safari după apeluri excesive. Calculatorul funcționează offline datorită unui service worker care cache-uiește resursele statice.

Compromisul principal este că oricine deține link-ul poate vizualiza fișa de pontaj, făcându-l nepotrivit pentru date sensibile fără criptare suplimentară pe partea clientului, care a fost omisă pentru a evita problemele de gestionare a parolelor. URL-urile lungi pot fi, de asemenea, incomode pentru partajarea prin mesaje text. În ciuda acestor limitări, abordarea bazată pe URL oferă o soluție simplă, privată și accesibilă pentru urmărirea individuală a fișelor de pontaj, cu logica principală de calcul disponibilă ca modul open-source pe GitHub.

$ sursa --originală

dev.to

Rezumat realizat de Sudofeed pe baza articolului original. Drepturile asupra conținutului aparțin sursei originale.

citește originalul ↗