Sigma

De WikiBR

Sigma est le réseau social des élèves, développé et maintenu par le BR. Il succède à Frankiz.

Cet article traite essentiellement du développement de Sigma. Si vous n'êtes qu'un simple utilisateur, visitez plutôt l'info Sigma pour apprendre à l'utiliser.

Le code source et les fichiers de configuration (compilation, déploiement avec GitLab CI...) se trouvent sur le groupe BR du GitLab.

Structure

La stack de Sigma est écrite en ECMAScript (JavaScript moderne).

Une base de données PostgreSQL contient les informations sur les groupes (associations, binets...) et les relations des utilisateurs avec eux. Les informations sur les utilisateurs sont tirées du LDAP directement.

L'accès aux données se fait de manière centralisée en utilisant une API GraphQL située dans le backend.

Serveur

Le serveur tourne avec Node.js, avec le framework express. Les requêtes à la base de données PostgreSQL sont construites au sein du code JavaScript en utilisant Knex.js.

Il est nécessaire que la machine qui le fait tourner soit connectée sur le plâtal pour accéder au LDAP.

Le dépôt Git est sur le GitLab.

Le code source et ses dépendances sont compilées dans un package bundle.js en utilisant Webpack, dont la configuration se situe dans le fichier webpack.config.js

Client

Le client est une application ReactJS utilisant des composants SemanticUI pour React.

La communication avec le backend se fait via l'API GraphQL en utilisant un client GraphQL Apollo pour React.

Comme pour le serveur, le code source et ses dépendances sont compilées avec Webpack Webpack pour fournir un fichier JavaScript rétro-compatible avec la plupart des navigateurs. La configuration Webpack se situe dans le fichier webpack.config.js. Le plugin webpack-serve permet de faire tourner le client en local sur le port 8888 avec re-compilation automatique lorsqu'une modifcation du code source est effectuée.

Le dépôt Git se trouve également sur le GitLab, ici.

Déploiement

Une version dév du serveur est accessible sur le serveur endalcher (IP: 129.104.201.11), et est déployée automatiquement via un runner sur le GitLab à partir de la branche stable.

C'est vers cette instance que pointe les versions dév du client par défaut : cela évite aux développeurs du client d'avoir à cloner le dépôt du backend, installer ses dépendances npm et installer PostgreSQL.

Voir aussi