Bottin de la masse étudiante, en Go
Find a file
2023-05-26 00:45:48 -05:00
bottin Squashed into initial commit 2023-03-06 14:01:18 -05:00
cmd Squashed into initial commit 2023-03-06 14:01:18 -05:00
data Squashed into initial commit 2023-03-06 14:01:18 -05:00
embed Squashed into initial commit 2023-03-06 14:01:18 -05:00
examples Squashed into initial commit 2023-03-06 14:01:18 -05:00
v4 Fix client web démarre sans API server accessible 2023-05-26 01:43:58 -04:00
.dockerignore Squashed into initial commit 2023-03-06 14:01:18 -05:00
.gitignore [WIP] Add web client 2023-05-25 19:22:46 -04:00
docker-compose.yml Squashed into initial commit 2023-03-06 14:01:18 -05:00
Dockerfile Squashed into initial commit 2023-03-06 14:01:18 -05:00
go.mod Squashed into initial commit 2023-03-06 14:01:18 -05:00
go.sum Squashed into initial commit 2023-03-06 14:01:18 -05:00
LICENSE Squashed into initial commit 2023-03-06 14:01:18 -05:00
main.go Squashed into initial commit 2023-03-06 14:01:18 -05:00
Makefile Squashed into initial commit 2023-03-06 14:01:18 -05:00
README.md Squashed into initial commit 2023-03-06 14:01:18 -05:00

agecem/bottin

Bottin de la masse étudiante, codé en Go. (Migration d'une application legacy en php)

Permet d'utiliser et de (rudimentairement) mettre à jour une base de donnée (présentement uniquement sqlite3) de noms et de numéros étudiants.

Sert principalement à vérifier le statut de membre d'une personne en comparant avec son numéro étudiant du cégep.

Base pour les futures applications utilisant des bases de données similaires:

  • Scan de présence pour Assemblée Générale (agecem/bottin-ag)

  • Distribution d'Agendas en début de session (`agecem/bottin-agendas)

Inclue un Dockerfile pour déployer en tant que container.

Inclue un Makefile pour l'exécution de tâches communes.

Repo

agecem/bottin

Utilisation

# Voir les options de make
make help

# Bâtir localement une container image sur docker
make build

Flags

L'application utilise un module pour afficher de l'information sur les différents flags existants.

# Pour voir l'aide de l'application
bottin -h

Exemple de résultat:

Run the bottin server

Usage:
  bottin server [flags]

Flags:
      --db-sqlite-path string     Path to sqlite database (config: 'db.sqlite.path')
      --db-type string            Database type (config: 'db.type')
  -h, --help                      help for server
      --insert-batch-size int     The amount of inserts to do per batch (config: 'import.insert_batch_size') (default 500)
      --json-insert-path string   The location of a json file containing Membres to insert.
      --login-password string     The password to login to the web ui. (config: 'login.password') (default "bottin")
      --login-username string     The username to login to the web ui. (config: 'login.username') (default "bottin")
      --server-port int           The port on which the web application will server content (config: 'server.port') (default 1312)

Global Flags:
      --config string   config file (default is $HOME/.bottin.yaml)

Procédure avec docker-compose

Voir documentation de docker-compose

docker-compose -h

Démarrer container en mode detached

docker-compose up -d

Éteindre le container, sans toucher aux volumes

docker-compose down

Sur un container qui roule, utiliser docker-compose run pour mettre à jour la db (avec --json-insert-path ou éventuellement bottin import).

docker-compose run bottin bottin server --json-insert-path examples/membres-test.json --config /etc/bottin/bottin.yaml

Exemples

Sans viper

# Servir l'application sur le port 8080, en spécifiant les credentials à utiliser pour y accéder ainsi que le type et chemin d'accès d'une database.
bottin server --db-type 'sqlite' --db-sqlite-path '/chemin/vers/bottin-database.db' --login-username 'exemple' --login-password 'un_autre_mot_de_passe' --server-port 8080`

# Servir l'application en spécifiant le chemin d'accès d'une database (sqlite3 ici) ainsi qu'une liste de Membres à insérer lors à la base de donnée lors du démarrage.
#
# Important: l'importation ne fait qu'un unmarshal du fichier json et aucune vérification supplémentaire, ni même une vérification d'insertion de doublons dans la db. Fonctionalité à utiliser calmement.
bottin server --db-type 'sqlite' --db-sqlite-path '/chemin/vers/bottin-database.db' --json-insert-path '/chemin/vers/liste_de_membre.json'`

Avec viper

  1. Ajouter config en suivant documentation dans help, -h, --help

  2. Appeler config avec flag global --config /chemin/vers/config.

Note: L'endroit par défaut de la config est $HOME/.bottin.yaml, mais un autre emplacement peut être utilisé si désiré. Dockerfile utilise /etc/bottin/bottin.yaml comme défaut.

La seule option qui n'est présentement pas disponible par config file est --json-insert-path afin de prévenir des doublons. Explication complète dans la définition de flag.