Skip to content

Repository files navigation

ijspoort

Standalone desktop app voor toegangscontrole met Mifare Classic NFC tags ontwikkeld voor de Deurnese IJsberen vzw. Geschreven in Electronjs, met Svelte componenten. Pouchdb database synchroniseert met online Couchdb (CouchDb, Cloudant, Pouchdb). De app werkt offline-first. Dus internet verbinding is geen absolute vereiste. Doch voor de veiligheid is het nodig om altijd verbinding te maken nadat nieuwe data is toegevoegd zodat de nieuwe data niet verloren kan gaan. Leden-data wordt verkregen door leden export vanuit Assist. De aangemaakte tags worden gekoppeld aan de lidnummers.

Modi

Het programma kent twee algemene modi:

  • een registratie-modus: om nieuwe tags te initialiseren (aan leden te koppelen), om leden-data in te laden (met xls bestanden vanuit Assist), om toegang met tags te registreren, om manuele toegangs-registratie uit te voeren (zonder tags).
  • Een poort modus: enkel voor toegangs-registratie met tags waarbij eventueel een elektrische poort wordt aangestuurd.

Reguirements

  • OS Ubuntu 22.04, 24.04
  • NFC tag reader ACR122u
  • NFC tag reader MFRC522 (Kiosk modus met Raspberry Pi 4B)

Dependencies

  • ACR122u driver
sudo apt-get install libnfc-bin
sudo apt-get install pcscd pcsc-tools

Blacklist pre-installed drivers

sudo nano /etc/modprobe.d/blacklist.conf

Voeg toe aan het einde van dit bestand:

install nfc /bin/false
install pn533 /bin/false
sudo apt-get install libpcsclite1 libpcsclite-dev
sudo apt-get install build-essential
sudo apt-get install gcc
sudo apt-get install gpiod libgpiod2 libgpiod-dev libnode-dev

Voor de kiosk-modus met buzzer en MFRC522 Mifare tag lezer moet de user toegang hebben tot /dev/gpiochipX (buzzer pin) en /dev/spidevO.O (MFRC522).

sudo groupadd spi
sudo groupadd gpiochip
sudo usermod -aG gpiochip,spi $USER

Geef schrijf/lees rechten voor de spi en gpiochip groepen met udev rules.

sudo nano /etc/udev/roles.d/90-gpiochip.rules

# /etc/udev/roles.d/90-gpiochip.rules
KERNEL=="gpiochip*", SUBSYSTEM=="gpio", MODE="0660", GROUP="gpiochip"
sudo nano /etc/udev/roles.d/91-spi.rules

# /etc/udev/roles.d/91-spi.rules
SUBSYSTEM=="spidev", GROUP="spi", MODE="0660"

Herlaad udev rules en reboot

sudo udevadm control --reload-rules
sudo udevadm trigger
sudo reboot

Check na reboot de rechten.

> ls -l /dev/spidev*
crw-rw----+ 1 root spi 153, 0 Jun 21 08:30 /dev/spidev0.0
crw-rw----+ 1 root spi 153, 1 Jun 21 08:30 /dev/spidev0.1

> ls -l /dev/gpiochip*
crw-rw----+ 1 root gpiochip 254, 0 Jun 21 08:30 /dev/gpiochip0
crw-rw----  1 root gpiochip 254, 1 Jun 21 08:30 /dev/gpiochip1

Installeer node 22 en npm met nvm (Node Version Manager)

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
# reopen terminal
nvm install 22

Installeer yarn

npm install --global yarn

Installeer node-gyp

yarn global add node-gyp

Installeer Git

sudo apt-get install git

Download code

git clone https://github.com/eeemarv/ijspoort

In de nieuw gecreëerde directory ijspoort, installeer node modules

yarn install

Build

yarn build

Start app (dev mode)

yarn dev

Build Linux

yarn build:linux

Voor mogelijk probleem met node-gyp

pip install setuptools
# or
python3 -m pip install --break-system-packages setuptools

Voor ARM builds (Raspberry Pi, Orange Pi), see these workarounds

export SNAPCRAFT_BUILD_ENVIRONMENT=host
export USE_SYSTEM_FPM=true
yarn run electron-builder --arm64 --armv7l --linux

De builds worden gegenereerd in de dist directory. Voor AppImage is in Ubuntu 22.04 libfuse2 nodig

sudo add-apt-repository universe
sudo apt-get install libfuse2

Zie dot_env_info voor informatie over alle omgevingsvariabelen waarmee de applicatie opgestart wordt, te plaatsen in een .env bestand in de zelfde directory als de AppImage.

De applicatie opstarten kan waarschijnlijk enkel zonder sandbox.

cd dist
./ijspoort.AppImage --no-sandbox

MIT license

MIT license

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages