Skip to content

GitHarpon/git-harpon

Repository files navigation

License Build Build on develop

Watchers Stargazers Forks

Introduction

Cette application a été réalisée par des étudiants de Master 1 Génie de l'Informatique Logicielle. Il s'agit d'une réponse à un appel d'offre de Guillaume Leroy et Hugo Mochet. L'application doit correspondre à GitKraken, une interface graphique de git, mais de façon libre et open-source (licence MIT).

Pour cela, nous avons utilisé :

  • Angular v7.1.4
  • Electron v4.0.0
  • Electron Builder v20.36.1
  • Bootstrap 4
  • le kit de démarrage de maximegris

Prérequis

Pour assurer le fonctionnement de cette application depuis n'importe quel OS, il est nécessaire d'avoir installé Node.js.

Nous utiliserons aussi yarn.

Installation de Node.js

Windows et macOS

Il suffit de se rendre sur le site de Node.js.

Linux

sudo apt install nodejs

sudo apt install npm

⚠️ Ne faites jamais de sudo npm sous Linux et macOS ⚠️

Installation de yarn

Windows

Lancer simplement la commande npm install -g yarn

Linux et macOS

Il existe un problème de permissions sur Linux et macOS. Pour résoudre ce dernier, il existe deux solutions :

  • Changer les permissions du répertoire /usr/local/
  • Changer le préfixe de npm

La procédure à suivre est disponible ici.

Une fois cela fait, lancer npm install -g yarn

Getting Started

Cloner le répertoire

git clone https://gitlab.com/Nemtecl/open-terminal.git

Installer les dépendances

yarn install

Structure du projet

Fichier / Dossier Description
package.json Fichier contenant les dépendances, les scripts et diverses informations sur le projet.
angular.json Fichier de configuration pour Angular.
.travis.yml Fichier de configuration pour travis.
main.ts Fichier d'entré pour Electron.
electron-builder.json Fichier contenant toutes les informations pour la création d'une release.
node_modules/ Dossier contenant les modules natifs et installés.
release/ Dossier contenant la release après génération.
coverage/ Dossier contenant le résultat de la couverture de code.
units/units.html Fichier de rapport des tests unitaires.
src/styles.scss Feuille de style globale.
src/variables.scss Feuille des variables de style.
src/assets/ Dossier contenant les fichiers de traduction.
src/app/components/ Dossier contenant les composants.
src/app/screens/ Dossier contenant les écrans.
src/app/app.module.ts Le fichier app.module.ts. Il faut y indiquer l'ensemble des modules/services à ajouter. Contient de base plusieurs services et modules utiles (TranslateModule, TranslateLoader, HttpClientModule, ElectronService, etc.)
src/app/app-routing.module.ts Fichier pour le routing.
src/app/providers Dossier contenant les services.

Commandes disponibles

Comme expliqué plus haut, nous avons utilisé le kit de démarrage. Le fichier package.json contenait des commandes très utiles, que nous avons donc utilisées.

Commande Description
yarn start Exécution de l'application en mode développement avec hot reload.
yarn ng:serve:web Exécution de l'application dans un navigateur.
yarn build Build l'application. Les fichiers de build se trouvent dans le dossier /dist.
yarn build:prod Build l'application avec Angular aot. Les fichiers de build se trouvent dans le dossier /dist.
yarn electron:linux Sous Linux, build l'application et crée un .AppImage.
yarn electron:windows Sous Windows, build l'application et crée un .exe, exécutable pour les systèmes en 32 et 64 bits.
yarn electron:mac Sous macOS, build l'application et crée un .dmg contenant le .app.
yarn test:unit Lance les tests unitaires
yarn test:unit:coverage Lance les tests unitaires et le couvrage de code

⚠️ Il faut supprimer le dossier release avant d'en regénérer un autre ⚠️

Lancer les tests unitaires

Il est nécessaire d'avoir installé chrome auparavant sur son ordinateur pour lancer les tests unitaires. Une fois cette condition réalisée, il suffit de lancé yarn test:unit. Le rapport est alors disponible dans units/units.html.

Ajouter un package

yarn add [package]

Supprimer un package

yarn remove [package]

Ajouter un module natif à Node.js

L'application étant lancée avec Electron, il est possible d'ajouter des modules natifs à Node.js. Pour cela, il suffit de les ajouter au service ElectronService. Plusieurs modules sont déjà disponibles (Child Process, File System, OS, etc.).

Contributeurs