Aplicație de control acces și evidență pentru poligon de tragere

Control acces, evidența armelor și a muniției pentru un poligon de tragere. PHP 8.3 și React 18, peste 19 tabele. Proiect finanțat PNRR.
Aplicație de control acces și evidență pentru poligon de tragere

Despre proiect

Aplicație de gestiune a accesului și a activității într-un poligon de tragere, dezvoltată pentru Asociația Clubul Sportiv Exploziatorii în cadrul unui proiect finanțat prin PNRR.

Provocarea

Un poligon de tragere cu arme letale funcționează sub reguli legale stricte. Trebuie să se știe în orice moment cine este în incintă, cu ce armă, pe care linie de tragere, sub supravegherea cui, și câtă muniție a consumat.

Evidența se ținea pe hârtie și în fișiere. Funcționa, dar cu două costuri: timpul personalului la fiecare intrare și ieșire, și riscul ca o eroare de transcriere să devină o problemă la un control.

Complexitatea reală nu era în interfață. Era în regulile domeniului: o armă poate fi preluată temporar de un client, o linie de tragere admite doar anumite calibre, un instructor răspunde de muniția pe care o distribuie, iar o vizită poate avea mai mulți membri cu drepturi diferite.

Soluția CodeFlavors

Am modelat mai întâi domeniul, nu ecranele. Rezultatul e o structură de peste nouăsprezece tabele care descrie separat armele poligonului și armele clienților, liniile de tragere și calibrele admise pe fiecare, vizitele și membrii care le compun, preluările temporare de armament, stocul de muniție și fiecare mișcare a lui.

Abia după ce structura a fost corectă am construit interfața. Este o aplicație React care rulează pe tabletă la intrarea în poligon, unde operatorul înregistrează o vizită în câteva atingeri, nu completează un formular lung.

Backendul e o API în PHP 8.3 pe Slim Framework, separată complet de interfață. Asta înseamnă că interfața poate fi înlocuită sau extinsă fără să se atingă logica, iar datele pot fi exportate pentru raportare oricând.

Funcționalități principale

  • Evidența separată a armelor poligonului și a armelor aduse de clienți
  • Gestiunea liniilor de tragere și a calibrelor admise pe fiecare
  • Înregistrarea vizitelor cu mai mulți membri și drepturi diferite
  • Preluări temporare de armament, cu urmărirea responsabilului
  • Stoc de muniție și de talere, cu istoricul fiecărei mișcări
  • Evidența muniției distribuite de fiecare instructor
  • Ocuparea liniilor de tragere în timp real
  • Roluri diferite pentru operatori, instructori și organizatori

Tehnologii folosite

PHP 8.3, Slim Framework 4, React 18, Vite, MariaDB, Apache

Rezultate

Înregistrarea unei vizite se face acum în câteva atingeri pe tabletă, în locul completării manuale a registrelor.

Evidența muniției și a armamentului este completă și trasabilă: pentru orice mișcare se știe cine, când, ce cantitate și pentru cine.

Aplicația a fost livrată cu documentație de instalare și script de configurare, ceea ce înseamnă că poate fi mutată sau reinstalată de altcineva fără să depindă de noi.

De ce este un proiect reprezentativ

Pentru că arată ce înseamnă, concret, „aplicație pe măsură”. Nu există niciun produs gata făcut care să știe că o linie de tragere admite anumite calibre sau că un instructor răspunde de muniția distribuită. Astea sunt reguli care există într-un singur loc din lume.

Pentru că partea grea a fost înțelegerea domeniului, nu programarea. Am petrecut mai mult timp înțelegând cum funcționează un poligon decât scriind cod — și asta e ordinea corectă.

Și pentru că e un proiect cu finanțare publică, livrat cu documentația și structura pe care le cere o astfel de finanțare.

Fără obligații. Locuri limitate.

Cerere Ofertă Servicii