Skip to content

A program for reading smart-card documents issued by the government of Serbia

License

Notifications You must be signed in to change notification settings

ubavic/bas-celik

Repository files navigation

Baš Čelik

Go Reference Go Report Card

Baš Čelik je čitač elektronskih ličnih karata, zdravstvenih knjižica i saobraćajnih dozvola. Program je osmišljen kao zamena za zvanične aplikacije poput Čelika. Nažalost, zvanične aplikacije mogu se pokrenuti samo na Windows operativnom sistemu, dok Baš Čelik funkcioniše na tri operativna sistema (Windows/Linux/OSX).

Baš Čelik je besplatan program, sa potpuno otvorenim kodom dostupnim na adresi github.com/ubavic/bas-celik.

Dodatna dokumentacija se može naći u wikiju projekta

Note

Baš Čelik is software for reading smart-card documents issued by the government of Serbia. Supported cards include ID cards, vehicle registration cards, and medical insurance cards. The application is written completely from scratch in Go and supports Linux, macOS, and Windows. The rest of this document is in Serbian, but the entire codebase is in English, and the interface includes English support. Additional information can be found in the project wiki.

Interfejs

Upotreba

Povežite čitač za računar i pokrenite Baš Čelik. Ubacite karticu u čitač. Program će pročitati informacije sa kartice i prikazati ih. Tada možete sačuvati PDF pritiskom na donje desno dugme.

Kreirani PDF dokument izgleda maksimalno približno dokumentu koji se dobija sa zvaničnim aplikacijama.

Podaci o overi zdravstvene knjižice

Podatak o trajanju zdravstvenog osiguranja (overena do), ne zapisuje se na knjižicu prilikom overe. Zvanična RFZO aplikacija preuzima ovaj podatak sa web servisa, i zbog toga je ista funkcionalnost implementirana i u Baš Čeliku. Pritiskom na dugme Ažuriraj, preuzima se podatak o trajanju osiguranja. Pri ovom preuzimanju šalje se LBO broj i broj zdravstvene kartice.

Pokretanje na Linuksu

Baš Čelik zahteva instalirane ccid i opensc/pcscd pakete. Nakon instalacije ovih paketa, neophodno je i pokrenuti pcscd servis:

sudo systemctl start pcscd
sudo systemctl enable pcscd

Pokretanje u komandnoj liniji

Baš Čelik prihvata sledeće opcije:

  • -atr: ATR kôd kartice biće prikazan u konzoli.
  • -excel PATH: grafički interfejs neće biti pokrenut, a sadržaj dokumenta biće direktno sačuvan u Excel datoteku (xlsx) na PATH lokaciji. U Excel datoteku će biti sačuvana samo tekstualna polja, ne i slike.
  • -help: informacija o opcijama biće prikazana u konzoli.
  • -json PATH: grafički interfejs neće biti pokrenut, a sadržaj dokumenta biće direktno sačuvan u JSON datoteku na PATH lokaciji.
  • -list: lista raspoloživih čitača biće prikazana u konzoli.
  • -pdf PATH: grafički interfejs neće biti pokrenut, a sadržaj dokumenta biće direktno sačuvan u PDF datoteku na PATH lokaciji.
  • -reader INDEX: postavlja odabrani čitač za čitanje podataka. Parametar INDEX označava prirodan broj koji je naveden u ispisu list komande. Izbor utiče samo na čitanje sa atr, excel, pdf i json opcijama.
  • -rfzoValidUntil: informacija o trajanju zdravstvenog osiguranja biće preuzeta sa RFZO portala. Ne odnosi se na grafički interfejs niti na ostala dokumenta.
  • -verbose: tokom rada aplikacije detalji o greškama biće prikazani u konzoli.
  • -version: informacija o verziji programa biće prikazana u konzoli.

U slučaju excel, json i pdf opcija, program ne dodaje ekstenziju na kraj lokacije koju je korisnik naveo.

Pri pokretanju sa atr, excel, json ili pdf opcijom, program očekuje da je kartica smeštena u čitač i neće čekati na ubacivanje kartice kao što je to slučaj sa grafičkim okruženjem.

Pri pokretanju sa atr, help, list ili version opcijama podaci sa kartice neće biti očitani (osim ATR koda u slučaju atr komande). Program će prestati izvršavanje nakon ispisa odgovarajuće informacije.

Čitači i drajveri

Baš Čelik bi trebalo da funkcioniše sa svim čitačima pametnih kartica koji su trenutno dostupni u prodaji (Gemalto, Hama, Samtec...). Korisnici Windows (7, 8, 10, 11) i macOS operativnih sistema ne moraju da instaliraju nijedan dodatni program (drajver).

Preuzimanje

Izvršne datoteke poslednje verzije programa možete preuzeti sa Releases stranice.

Za Linux operativni sistem su dostupne verzije sa i bez grafičkog interfejsa. Verzija sa grafičkim interfejsom je dostupna u okviru datoteke bas-celik.linux.amd64.tar.xz. Verzija bez grafičkog interfejsa je dostupna kao izvršna datoteka bas-celik-cli.linux.amd64. Obe verzije prihvataju gore navedene opcije komandne linije.

Kompilacija

Potrebno je posedovati go kompajler. Na Linuksu je potrebno instalirati i libpcsclite-dev i pakete za Fyne (možda i pkg-config).

Nakon preuzimanja repozitorijuma, dovoljno je pokrenuti

go mod download
go build -v

Prva kompilacija može potrajati nekoliko minuta (i do deset), jer je neophodno da se preuzmu i kompajliraju sve Golang biblioteke. Sve naredne kompilacije se izvršavaju u nekoliko sekundi.

Arhitektura aplikacije

Aplikacija je podeljena na sledeće pakete:

  • document - paket definiše tri tipa IdDocument, MedicalDocument i VehicleDocument koji zadovoljavaju Document interfejs. Ovi tipovi se koriste kroz celu aplikaciju. Uz definicije tipova, implementirane su i metode za eksport struktura u PDF i JSON.
  • card - paket definiše funkcije za komunikaciju sa pametnim karticama i funkcije za parsiranje Document struktura iz TLV i BER datoteka.
  • internal - paket sa funkcijama za pokretanje programa, parsiranje argumenata komandne linije, itd... Uključuje i paket gui sa definicijom grafičkog interfejsa.
  • localization - skup pomoćnih funkcije da za formatiranje datuma, podršku za različita pisma, itd..

Ostali direktorijumi u okviru projekta:

  • embed i assets - dodatne datoteke. Datoteke iz embed se linkuju u izvršnu verziju prilikom kompilacije.
  • docs - interna i eksterna dokumentacija

Doprinos

Pre kreiranja issue-a i pull request-ova, pročitati CONTRIBUTING.md.

Licenca

Program i izvorni kôd su objavljeni pod MIT licencom.

Font Liberation je objavljen pod SIL Open Font licencom.