Présentation
But du projet
Cahier des charges
L'application OpenBar, est
Installation en local
Installation d'une borne
Pour le moment l'installation est sensiblement la même. Nous n'avons pour le moment pas cherché à sécuriser les bornes comme elles avaient pu l'être auparavant. Nous sommes parti du principe que si un ordinateur se retrouvait inutilisable par la faute d'un élève malintentionné, celà se répercuterait sur les autres élèves et non sur le bar. "Leur problème pas le notre", s'il faut réinstaller un pc, un jour on fera un script d'installation et ça ne nous prendra pas plus de 5 minutes d'attention.
Installation du comptoir
Pour installer le comptoir, il vous faudra:
- le package firefox
- une version locale du dépôt nfc voir ici
- un éditeur de texte
- les droits d'administrateur sur le pc
Dans un premier temps, installez les dépendances à l'aide de la commande suivante:
sudo apt install pcsc-tools pcscd libpcsclite-dev libpcsclite1 libusb-dev libnfc-bin libnfc-dev libnfc5
Une fois ces dépenances installées, ajoutez un fichier /etc/modprobe.d/blacklist.conf
contenant les lignes suivantes
blacklist pn533
blacklist pn533_usb
blacklist nfc
À quoi servent ces étapes ?
Le lecteur nfc fonctionne à l'aide d'un service qui entre en conflit avec certains drivers que nous avons blacklistés. Il dépend des packages précédemment installés.
Installation du service nfc
Afin que le service (executable en tache de fond pour vulgariser) soit lancé au démarrage, il faut télécharger le tar.gz nfc qui se trouve ici ici.
À l'intérieur, vous trouverez un fichier .service
que vous devrez placer dans /etc/systemd/system/nfc.service
Le second est un executable auquel il faut ajouter les droits avec
chmod +x nfc
Pour vérifier l'installation, redémarrez le pc et lancez la commande:
systemctl status nfc
Une fois installé une première fois, l'executable se mettra à jour automatiquement si une nouvelle version est disponible.
Installation du pc admin
Frontend
borne
borne commande
borne index
comptoir
/comptoir/c
/comptoir/c/transactions
/comptoir/c/refils
Backend
Database
Procédures
Rechargement de carte
Création de menu
Réapprovisionnement
Bugs
Evidemment l'application contiendra des bugs, je vais essayer de lister ici les plus connus et donner une ou plusieurs méthodes pour les régler
NFC
Symptomes:
- Le code pin ne se déclenche plus lorsque l'on badge sa carte
Causes potentielles:
- Le service nfc d'une manière ou d'une autre, cause exacte inconnue à ce jour
Informations techniques
Le nfc fonctionne à l'aide d'un executable qui fournit à la page l'identifiant de la carte. Il est lancé au démarrage à l'aide d'un service, qui définit sous quelles conditions et comment lancer un executable. le statut d'un service est accessible par la commande systemctl restart [nom du service (ici nfc)]
.
Fix:
Il suffit de redémarrer le service nfc:
systemctl restart nfc # redémarre le service
systemctl status nfc # permet d'accéder au statut et de vérifier qu'il a été redémarré
Outils
Logs
Les logs sont accessible sur Portainer. Les logins sont présents sur le Vaulwarden
Vaultwarden
Vaultwarden est l'un des services hébergés par TN.NET, il sert au bar pour stocker tous les mdp utile à l'administration du bar. Le master pass au vaulwarden doit être transmis entre bureau de bar lors de passation
En cas de perte de ce mot de passe, adressez-vous aux administrateurs tn.net qui ont l'adresse de récupération de ce mail
MongoDB
La base de donnée est accessible via MongoDB-Compass. Lisez la documentation pour l'installation.
Pour le reste, ajoutez une connextion, déroulez les paramètres avancés (et ne touchez qu'à ces paramètres).
Le mot de passe se trouve dans le vaulwarden du bar pour y accéder voir ici
Le certificat se trouve sur le drive du bar, et devra être copié dans le répertoire info d'année en année afin de ne pas se perdre
Developper
Avis aux développers, le projet n'est pas facile à setup (du tout (du tout du tout (du tout du tout du tout (genre vraiment pas)))) Cette page est une version plus explicite que le readme du repo git.
- Commencez par cloner le repo et rendez vous dans le dossier cloné.
- Pour mettre en place le frontend:
- copiez le fichier
frontend/static/config.dev.json
dansfrontend/static/config.json
- copiez le fichier
- Pour le backend
- Copiez le fichier
backend/.env.example
dansbackend/.env
- Il faut maintenant mettre en place l'authentification google:
- Rendez-vous ici
- Créez un nouveau projet
- Allez sur ce projet dans l'écran de consentement OAuth
- Une fois les cases remplies, enregistrez, et passez à l'étape suivante, qui est d'ajouter des champs d'application
- Ajoutez
/auth/userinfo.email
,/auth/userinfo.profile
et/auth/admin.directory.user.readonly
- Il vous faut pour le dernier champ d'application avoir installé dans la bibliothèque l'api Admin SDK API
- Rendez vous ensuite dans Identifiants
- Créez un identifiant de type
ID client OAuth
- Autorisez l'url de redirection de votre backend, par défaut `http://localhost:8080/auth/google/callback
- Vous pouvez désormais remplir les champs du
.env
- Maintenant, comme dans tout projet, il faut installer les dépendances
- Dans le répertoire du projet executez
docker compose up -d
- Dans le répertoire
backend
executeztask setup
- Dans le répertoire
frontend
executeztask setup
- Dans le répertoire du projet executez
- Copiez le fichier
- Vous pouvez désormais lancer les serveurs de frontend et backend
- Dans le dossier
backend
:go run cmd/bar/main.go
- Dans le dossier
frontend
:nmp run dev
- Dans le dossier