Browse Source

Improve readme and doc

Arnaud Vergnet 3 years ago
parent
commit
c2cdabe8fc
8 changed files with 281 additions and 192 deletions
  1. 0
    147
      INSTALL.md
  2. 40
    45
      README.md
  3. 81
    0
      doc/CONTRIBUTE.md
  4. 83
    0
      doc/INSTALL.md
  5. 38
    0
      doc/LINKS.md
  6. 0
    0
      doc/NOTES.md
  7. 12
    0
      doc/TRANSLATE.md
  8. 27
    0
      doc/WORKFLOW.md

+ 0
- 147
INSTALL.md View File

@@ -1,147 +0,0 @@
1
-# Installer l'application depuis ce dépot
2
-
3
-**Vous allez devoir installer git, node et npm sur votre machine, puis cloner ce dépôt.**
4
-
5
-Tout est expliqué dans ce guide, si vous avez un problème ou une question, merci de me contacter par mail : [app@amicale-insat.fr](mailto:app@amicale-insat.fr)
6
-
7
-Ce guide a été testé sur Linux (Ubuntu 18.04).
8
-Si vous utilisez Windows, débrouillez-vous ou installez Linux j'ai la flemme de tester.
9
-
10
-## Table des matières
11
-* [Installation de Git](#installation-de-git)
12
-* [Installation de node](#installation-de-node)
13
-* [Installation de  React Native](#installation-de-react-native)
14
-    * [Configuration de NPM](#configuration-de-npm)
15
-    * [Installation](#installation)
16
-* [Téléchargement du dépot](#téléchargement-du-dépot)
17
-* [Téléchargement des dépendances](#téléchargement-des-dépendances)
18
-* [Lancement de l'appli](#lancement-de-lappli)
19
-* [Tester sur un appareil](#tester-sur-un-appareil)
20
-* [Compiler une version release](#compiler-une-version-release)
21
-
22
-## Installation de Git
23
-
24
-Entrez la commande suivante pour l'installer :
25
-```shell script
26
-sudo apt install git
27
-```
28
-
29
-## Installation de node
30
-
31
-Vous devez avoir une version de node > 12.0.
32
-Pour cela, vérifiez avec la commande :
33
-```shell script
34
-nodejs -v
35
-```
36
-
37
-Si ce n'est pas le cas, entrez les commandes suivantes pour installer la version 12 ([plus d'informations sur ce lien](https://github.com/nodesource/distributions/blob/master/README.md#debinstall)):
38
-
39
-```shell script
40
-curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
41
-sudo apt-get install -y nodejs
42
-```
43
-
44
-## Installation de React Native
45
-
46
-Merci de cliquer sur [ce lien](https://reactnative.dev/docs/environment-setup) et de suivre la procédure d'installation officielle sous l'onglet **React Native CLI Quickstart**, en sélectionnant ensuite votre plateforme.
47
-
48
-## Téléchargement du dépôt
49
-
50
-Clonez ce dépôt à l'aide de la commande suivante :
51
-````shell script
52
-git clone https://git.etud.insa-toulouse.fr/vergnet/application-amicale.git
53
-````
54
-
55
-Toute modification doit être réalisée sur la branche de développement (pas de commit direct sur master). Dev est ensuite fusionnée avec master une fois qu'une version stable est prête.
56
-Ainsi, en prenant la branche master a n'importe quel moment, il devrait être possible de compiler une version stable.
57
-
58
-Si vous voulez utiliser la branche de développement, réalisez la commande suivante :
59
-````shell script
60
-git checkout dev
61
-````
62
-Pour revenir sur la branche principale, effectuez la commande
63
-````shell script
64
-git checkout master
65
-````
66
-
67
-## Installation du projet
68
-
69
-Une fois le dépôt sur votre machine et git sur la branche de votre choix, ouvrez le terminal dans le dossier du dépôt cloné et installez les dépendances commande suivante : 
70
-````shell script
71
-npm install
72
-````
73
-
74
-Si vous êtes sur macOS, vous devrez aussi lancez la commande suivant pour terminer l'installation :
75
-````shell script
76
-cd ios && pod install
77
-````
78
-
79
-En cas de problème d'installation (notamment lors du changement de branche), lancez la commande suivante pour réinstaller seulement les modules node :
80
-````shell script
81
-./clear-node-cache.sh 
82
-````
83
-
84
-## Lancement de l'appli
85
-
86
-Il est conseillé d'utiliser un logiciel comme **WebStorm** (logiciel pro gratuit pour les étudiants) pour éditer l'application car ce logiciel est compatible avec les technologies utilisées.
87
-
88
-Vous aurez besoin de 2 consoles :
89
-* Une pour lancer le *Bundler*, qui permet de mettre à jour l'application en temps réel (vous pouvez le laisser tout le temps ouvert).
90
-* Une autre pour installer l'application sur votre appareil/simulateur.
91
-
92
-Pour lancer le *Bundler*, assurez vous d'être dans le dossier de l'application, et lancez cette commande :
93
-````shell script
94
-npx react-native start
95
-````
96
-
97
-**Ne stoppez pas le Metro Bundler dans la console à chaque changement !** Toutes les modifications sont appliquées automatiquement, pas besoin de stopper et de redémarrer pour des petits changements ! Il est seulement nécessaire de redémarrer le Metro Bundler quand vous changez des librairies ou des fichiers.
98
-
99
-### Android
100
-
101
-Dans la deuxième console, lancez la commande suivante :
102
-````shell script
103
-npx react-native run-android
104
-````
105
-
106
-### iOS
107
-
108
-**PRÉREQUIS** : Il faut être connecté avec le compte développeur de l'amicale sur Xcode pour pouvoir compiler ! 
109
-
110
-Dans la deuxième console, lancez la commande suivante (valable que sur Mac) :
111
-````shell script
112
-npx react-native run-ios
113
-````
114
-
115
-## Tester sur un appareil
116
-
117
-Assurez vous d'avoir installé et lancé le projet comme expliqué plus haut.
118
-
119
-### Android
120
-
121
-#### Émulateur
122
-
123
-[Suivez la procédure sur ce lien pour installer un émulateur](https://docs.expo.io/versions/latest/workflow/android-studio-emulator/).
124
-
125
-Une fois l'emulateur installé et démarré, lancez l'application comme expliqué plus haut.
126
-
127
-#### Appareil Physique
128
-
129
-Branchez votre appareil, allez dans les options développeurs et activer le *USB Debugging*. Une fois qu'il est activé et branché, lancez l'appli comme expliqué plus haut. 
130
-
131
-### iOS
132
-
133
-#### Émulateur
134
-
135
-Installez le logiciel Xcode et téléchargez l'émulateur de votre choix. Ensuite, lancez la commande suivante pour lancer l'application sur votre émulateur.
136
-````shell script
137
-npx react-native run-ios --simulator="NOM DU SIMULATEUR"
138
-````
139
-En remplaçant `NOM DU SIMULATEUR` par le simulateur que vous voulez.
140
-
141
-#### Appareil Physique
142
-
143
-Aucune idée je suis pauvre je n'ai ni Mac ni iPhone.
144
-
145
-## Compiler une version release
146
-
147
-Merci de me contacter par mail pour toute information sur les release : [app@amicale-insat.fr](mailto:app@amicale-insat.fr)

+ 40
- 45
README.md View File

@@ -1,87 +1,82 @@
1
-![](https://etud.insa-toulouse.fr/~amicale_app/images/promo/Banner.png)
1
+<img src="https://etud.insa-toulouse.fr/~amicale_app/images/promo/Banner.png" alt="banner" width="500"/>
2
+
2 3
 [<img src="https://etud.insa-toulouse.fr/~amicale_app/images/promo/app-store-badge.png" alt="app-store" width="150"/>](https://apps.apple.com/us/app/id1477722148)
3 4
 [<img src="https://etud.insa-toulouse.fr/~amicale_app/images/promo/google-play-badge.png" alt="google-play" width="150"/>](https://play.google.com/store/apps/details?id=fr.amicaleinsat.application)
4 5
 
5 6
 Projet démarré pendant l'été 2019 par Arnaud Vergnet (alors en 3MIC), cette application compatible Android et iOS permet aux étudiants d'avoir un accès facile aux informations du campus :
6
- - News de l'Amicale
7 7
  - Connexion à son compte Amicale
8
- - État des machines à laver
9 8
  - Liste des événements sur le campus
10
- - Stock du Proximo
9
+ - État des machines à laver
11 10
  - Emploi du temps
12
- - Menu du RU
13
- - Disponibilité des salles libre accès
14
- - Réservation des Bib'Box
15 11
 
16 12
 ...et bien d'autres services
17 13
 
18
-L'application est **Open Source** sous licence **GPLv3**.
19
-
20 14
 Pour la source du serveur utilisé pour synchroniser les informations, merci de voir [ce dépôt](https://git.etud.insa-toulouse.fr/vergnet/application-amicale-serveur).
21 15
 
22
-## 🚀 Contribuer
16
+# 🔎 Besoin de mainteneur
17
+
18
+Ce projet a été réalisé en grande partie par **un seul étudiant**, mais cet étudiant (coucou c'est moi) ne va pas rester éternellement à l'INSA. **Il faut donc une relève !** Le projet étant stable, le minimum est de corriger les bugs rencontrés.
19
+
20
+Tout le monde peut contribuer, mais **il faut tout de même au moins une personne pour gouverner le projet** : accepter les modifications, compiler et mettre en ligne sur les magasins. Pas besoin d'énormément de connaissance, seulement de la motivation.
21
+
22
+Le tout, bien sûr, permet de valoriser une implication citoyenne 😉. 
23
+
24
+# 🚀 Contribuer
23 25
 
24 26
 **Tu veux influencer le développement ? C'est très simple !**
25 27
 
26 28
 #### 🙃 Aucune connaissance ?
27 29
 Pas de problème ! Tu peux aider simplement en proposant des améliorations ou en rapportant des bugs par mail ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)), ou sur [cette page](https://git.etud.insa-toulouse.fr/vergnet/application-amicale/issues) en te connectant avec tes login INSA.
28 30
 
31
+#### 🌍 Bilingue ou plus ?
32
+
33
+Tu peux aider à traduire l'application ! Le projet existe en français et anglais (mais il peut y avoir des fautes !), et tout autre langue est la bienvenue.
34
+
35
+Si tu es intéressé, rends-toi sur [cette page]() pour plus de détails.
36
+
29 37
 #### 🤓 Développeur dans l'âme ?
30
-Toutes les propositions de modification sont les bienvenues ! (enfin presque)
38
+Peu importe ton niveau, toutes les propositions de modification sont les bienvenues ! (enfin presque)
31 39
 
32
-Pour cela, tu peux créer un fork de ce dépôt (en haut à droite), [installer l'application](INSTALL.md) sur ta machine, réaliser ta modification et créer une _pull request_. Si tu as des problèmes ou des questions, n'hésite pas à me contacter par mail ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)).
40
+Pour cela, [suis ce guide](doc/CONTRIBUTE.md).
33 41
 
34 42
 #### 🤯 Motivé mais perdu ?
35
-Tu es quand même le bienvenu ! Tu trouveras à [la fin de ce fichier ⤵️](#🔗-liens-utiles) une liste de liens pour t'aider à comprendre les technologies utilisées dans ce projet. Si tu as plus de questions, tu peux toujours me contacter par mail  ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)). 
43
+Tu es quand même le bienvenu ! Tu trouveras [une liste de liens](doc/LINKS.md) pour t'aider à comprendre les technologies utilisées dans ce projet. Si tu as plus de questions, tu peux toujours me contacter par mail  ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)). 
36 44
 
37 45
 ## 👨‍💻 Technologies Utilisées
38 46
 Cette application est faite en JavaScript avec React Native (framework Open Source créé par Facebook).
39 47
 
40 48
 React Native permet de n'avoir qu'un seul code JavaScript à écrire pour Android et iOS. Pour compiler pour la plateforme souhaitée, il suffit d'effectuer une simple commande. Plus besoin de Mac pour développer une application iOS ! (Mais toujours besoin d'un pour compiler et publier sur l'App store...)
41 49
 
42
-Tu trouveras une liste de liens utiles à [la fin de ce fichier ⤵️](#🔗-liens-utiles) pour retrouver toutes les infos !
43
-
44
-## 💾 [Installer l'application depuis ce dépot](INSTALL.md)
45
-
46
-## 📔️ [Notes de changement](Changelog.md)
47
-
48
-## 🗒️ [Notes sur l'état actuel du projet](NOTES.md)
49
-
50
-## 🔗 Liens utiles
50
+Tu trouveras [une liste de liens utiles](doc/LINKS.md) pour retrouver toutes les infos !
51 51
 
52
-Voici une liste de liens qui pourraient t'être utile, que ce soit pour contribuer ou tout simplement pour comprendre comment l'application fonctionne sous le capot.
52
+# 💾 [Installer l'application sur votre téléphone depuis ce dépot](doc/INSTALL.md)
53 53
 
54
-#### Les bases
54
+# 📔️ [Notes de changement](Changelog.md)
55 55
 
56
-Le strict minimum pour pouvoir comprendre le code de l'application.  Il n'est pas nécessaire d'avoir de grandes connaissances en JavaScript, Flow ou Git pour lire le code, mais une compréhension du fonctionnement et de la syntaxe de React Native est nécessaire pour faire quoi que ce soit.
56
+# 🗒️ [Notes sur l'état actuel du projet](doc/NOTES.md)
57 57
 
58
-* [Tutoriel JavaScript](https://www.w3schools.com/js) : Un minimum de connaissances en JavaScript (ECMAScript 6) est nécessaire pour pouvoir comprendre le code
59
-* [Documentation React Native](https://reactnative.dev/docs/getting-started) : La techno de base, qui utilise JavaScript
60
-* [Tutoriel Git](https://www.tutorialspoint.com/git/index.htm) : Le système utilisé pour synchroniser le code entre plusieurs ordinateurs  
61
-* [Documentation Flow](https://flow.org/en/docs/react/) : Un utilitaire pour rendre JavaScript typé statique (c'est-à-dire plus robuste pour de gros projets)
58
+# 🔗 [Liens Utiles](doc/LINKS.md)
62 59
 
63
-#### Comprendre les librairies
60
+# 🤝 Contributeurs
64 61
 
65
-Si tu as compris les bases et que tu veux te plonger un peu plus en profondeur dans le code, tu peux utiliser les liens ci-dessous pour accéder aux frameworks les plus importants.
62
+| <img src="https://secure.gravatar.com/avatar/8e33a1b2cedf7168e8468a1522cc8c56?d=identicon&s=290" alt="app-store" width="150"/> | <img src="https://secure.gravatar.com/avatar/9792c3643f98cddbc2a42e05422fe66e?d=identicon&s=290" alt="app-store" width="150"/> | ❔ |
63
+|--------------------------------|--------------------------------|-------------------------------------------|
64
+| **Arnaud Vergnet**             | **Yohan Simard**               | **Vous ?**                                 |
65
+| Créateur et mainteneur actuel  | Correction de quelques bugs    | [Contribuez pour faire vivre le projet !](#contribuer)   |
66 66
 
67
-* [Documentation React Native Paper](https://callstack.github.io/react-native-paper/) : Le framework utilisé pour créer l'interface utilisateur (UI)
68
-* [Documentation React Navigation](https://reactnavigation.org/docs/getting-started) : Le framework utilisé pour faciliter la navigation classique entre différents écrans
67
+# 👏 Remerciements
69 68
 
70
-#### Les Plus
69
+* **Béranger Quintana Y Arciosana** : Étudiant en AE (2020) et Président de l'Amicale au moment de la création et du lancement du projet. L'application, c'était son idée. Il a beaucoup aidé pour trouver des bugs, de nouvelles fonctionnalités et faire de la com.
70
+* **Céline Tassin** : Étudiante en GPE (2020). Sans elle, tout serait moins mignon. Elle a aidé pour écrire le texte, faire de la com, et aussi à créer la mascotte 🦊.
71
+* **Damien Molina** : Étudiant en IR (2020) et créateur de la dernière version du [site de l'Amicale](https://amicale-insat.fr/). Grâce à son aide, intégrer les services de l'Amicale à l'application a été très simple. 
72
+* **Titouan Labourdette** : Étudiant en IR (2020). Il a beaucoup aidé pour trouver des bugs et proposer des nouvelles fonctionnalités.
73
+* **Théo Tami** : Étudiant en AE (2020). Si l'application marche sur iOS, c'est grâce à son aide lors de ses nombreux tests. 
71 74
 
72
-Si t'es vraiment à fond dans le projet et que tu veux faire des trucs trop ouf, tu peux lire ça. Même moi j'ai eu la flemme de tout lire. 
73
-
74
-* [Documentation Jest](https://jestjs.io/docs/en/getting-started) : Framework de tests unitaires pour JavaScript
75
-
76
-#### Les Logiciels
77
-
78
-Tu ne sais pas trop quel logiciel utiliser ? C'est normal y'a beaucoup de choix, mais tu trouveras ici une liste très réduite de logiciels qui marchent bien pour le développement.
79
-
80
-* [Webstorm](https://www.jetbrains.com/webstorm/buy/#discounts?billing=yearly) : Un logiciel pas mal que j'utilise et gratuit pour les étudiants/projets open-source
81
-* [VSCodium](https://vscodium.com/) : Un logiciel plus simple/léger que Webstorm mais avec un peu moins de fonctionnalités.
75
+# 📄 Licence
82 76
 
77
+L'application est **Open Source** sous licence **GPLv3**.
83 78
 
84
-# Copyright
79
+# 🔐 Copyright
85 80
 Apple and Apple Logo are trademarks of Apple Inc.
86 81
 
87 82
 Google Play et le logo Google Play sont des marques de Google LLC.

+ 81
- 0
doc/CONTRIBUTE.md View File

@@ -0,0 +1,81 @@
1
+# Contribuer
2
+
3
+Tu veux contribuer au projet ? Mais c'est magnifique ! Ce guide va te montrer comment faire pour contribuer tes modifications.
4
+
5
+Si tu as des problèmes ou des questions, n'hésite pas à me contacter par mail ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)).
6
+
7
+
8
+## ⚠️ Avant de commencer, merci de te familiariser avec [les bases !](LINKS.md)
9
+
10
+# Table des matières
11
+
12
+* [1. Prérequis](#1.)
13
+* [2. Fork du projet](#2.)
14
+* [3. Création d'une nouvelle branche](#3.)
15
+* [4. Réalisation d'une modification](#4.)
16
+* [5. Création d'une Pull Request](#6.)
17
+
18
+# 1. Prérequis
19
+
20
+Avant toute chose, tu dois installer React Native et git sur ta machine. Pour cela, suis [ce guide](INSTALL.md) jusqu'à l'étape 3.
21
+
22
+# 2. Fork du projet
23
+
24
+Si tu as bien suivi les instructions plus haut, tu devrais pouvoir lancer une application vide sur un appareil. Si ce n'est pas le cas, recommence l'installation depuis le début. Si malgré tout tu n'y arrives pas, envoie-moi un petit mail : [app@amicale-insat.fr](mailto:app@amicale-insat.fr).
25
+
26
+Il est maintenant temps de **Fork** le projet. Le dépôt officiel est protégé pour éviter le vandalisme. Un fork permet de copier le code du dépôt officiel et de le lier à ton compte. Sur cette nouvelle version, tu pourras faire les modifications que tu veux, et ensuite demander de fusionner ces modifications avec le dépôt officiel. Le mainteneur actuel du projet vérifiera alors tes modifications et décidera ou non de les accepter.
27
+
28
+Plus d'infos sur git [ici](LINKS.md).
29
+
30
+Créer un fork est très simple. Pour cela, suis ces instructions :
31
+ 
32
+ * Connecte-toi sur ce site (en haut à droite) avec tes identifiants INSA.
33
+ * Vas sur le [dépôt officiel](https://git.etud.insa-toulouse.fr/vergnet/application-amicale) et clique sur 'Fork' en haut à droite.
34
+ * Le site te demandera des informations sur ce fork, tu n'as rien besoin de changer et tu peux juste cliquer sur 'Fork Repository'.
35
+ * Tu arrives ainsi sur la page du dépôt ! Il est exactement comme le dépôt officiel, à quelques détails près. Si tu regardes en haut à gauche, à la place de vergnet/application-amicale, il y a maintenant ton nom ! Tu as donc fait une copie du dépôt officiel que tu as mis sur ton compte.
36
+ * Tu peux maintenant télécharger ce dépôt sur ta machine en utilisant la commande:
37
+ ````shell script
38
+git clone [LINK]
39
+````
40
+en remplaçant `[LINK]` par le lien que tu peux copier en haut à droite, au-dessus de la liste des fichiers.
41
+* Tu as réussi à faire un Fork, bravo !
42
+
43
+# 3. Création d'une nouvelle branche
44
+
45
+Comme indiqué sur [ce guide](WORKFLOW.md), chaque fonctionnalité doit être développée dans sa propre branche puis fusionnée avec le master du dépôt officiel.
46
+
47
+Pour créer une nouvelle branche, utilise la commande suivante :
48
+````shell script
49
+git checkout -b <branch-name>
50
+````
51
+En remplaçant `<branch-name>` par le nom souhaité (sans espaces !). Ce nom doit décrire rapidement ce que tu veux faire grâce à tes modifications.
52
+
53
+Tu es maintenant sur ta nouvelle branche et prêt à faire tes modifications.
54
+
55
+# 4. Réalisation d'une modification
56
+
57
+Tu peux maintenant modifier ce que tu veux pour corriger un bug ou ajoute une fonctionnalité.
58
+
59
+Mais avant de faire quoi que ce sois, merci de te signaler ! Cela évitera que plusieurs personnes corrigent le même bug ou de commencer à développer une fonctionnalité non voulue.
60
+
61
+Pour installer l'appli sur ton téléphone/émulateur, reviens sur le [guide d'installation](INSTALL.md), et reprends à la section 3.2.
62
+
63
+Avant de passer à l'étape suivante, merci de bien vérifier et tester tes modifications.
64
+
65
+# 5. Création d'une Pull Request
66
+
67
+Cette étape te permet d'envoyer tes modifications sur le dépôt officiel, pour être intégrées à l'application disponible dans les magasins.
68
+
69
+Tout se fait simplement sur le site en suivant ces instructions :
70
+
71
+* Connecte-toi sur ce site (en haut à droite) avec tes identifiants INSA.
72
+* Vas sur le [dépôt officiel](https://git.etud.insa-toulouse.fr/vergnet/application-amicale) et clique sur l'onglet 'Pull Requests'.
73
+* Cette page t'affiche la liste de toutes les pull requests. Pour en créer une nouvelle, clique sur le bouton 'New Pull  Request' en haut à droite.
74
+* Tu arrives maintenant sur la page de création. Choisis master comme branche de destination, et ta branche créée précédemment comme source.
75
+* Tu devrais voir en bas la liste de toutes tes modifications. Écris alors un titre présentant tes modifications (très court), et une description expliquant pourquoi elles sont nécessaires. Cela permettra d'expliquer au mainteneur pourquoi il devrait accepter tes modifications.
76
+* Quand tout est bon, clique sur 'Create Pull Request' pour l'envoyer en attente de validation.
77
+* Tu entreras ensuite en dialogue avec le mainteneur ! Il t'expliquera si certaines choses sont à modifier avant de fusionner dans master.
78
+
79
+Et voilà tu as fait ta première pull request !
80
+
81
+Si tu as des problèmes ou des questions, n'hésite pas à me contacter par mail ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)).

+ 83
- 0
doc/INSTALL.md View File

@@ -0,0 +1,83 @@
1
+# Installer l'application sur ta machine
2
+
3
+Si tu as un problème ou une question, merci de me contacter par mail : [app@amicale-insat.fr](mailto:app@amicale-insat.fr)
4
+
5
+Ce guide a été testé sur Linux (Ubuntu 18.04).
6
+Si tu utilises Windows, débrouilles-toi ou installe Linux.
7
+
8
+## ⚠️ Avant de commencer, merci de te familiariser avec [les bases !](LINKS.md)
9
+
10
+# Table des matières
11
+* [1. Installation de Git](#1.)
12
+* [2. Installation de  React Native](#2.)
13
+* [3. Installation de l'application](#3.)
14
+    * [3.1 Téléchargement du dépot](#3.1)
15
+    * [3.2 Téléchargement des dépendances](#3.2)
16
+* [4. Lancement de l'application](#4.)
17
+* [5. Compiler une version release](#5.)
18
+
19
+# 1. Installation de Git
20
+
21
+Git permet de garder un historique de modification du code et de synchroniser les fichiers entre plusieurs machines. Tu trouveras un tutoriel pour te familiariser avec les bases [ici](LINKS.md).
22
+
23
+Ouvre un terminal et entre la commande suivante pour l'installer :
24
+```shell script
25
+sudo apt install git
26
+```
27
+
28
+# 2. Installation de React Native
29
+
30
+Vas sur le [site officiel](https://reactnative.dev/docs/environment-setup) puis sur l'onglet `React Native CLI Quickstart`, et sélectionne ensuite ta plateforme de développement et celle de ta cible.
31
+
32
+Par exemple, si tu as un PC sous linux et un téléphone Android, sélectionne donc Linux et Android. 
33
+
34
+⚠️ **Ne choisis pas `Expo CLI Quickstart`, suis bien les instructions pour `React Native CLI Quickstart`**
35
+
36
+Suis ensuite les instructions pour bien installer React Native sur ta machine. **Va bien jusqu'à la fin**. Tu devrais pouvoir créer une application vide qui se lance sur ton téléphone/émulateur.
37
+
38
+# 3. Installation de l'application
39
+
40
+Si tu as bien suivi les instructions plus haut, tu devrais pouvoir lancer une application vide sur un appareil. Si ce n'est pas le cas, recommence l'installation depuis le début. Si malgré tout tu n'y arrives pas, envoie-moi un petit mail : [app@amicale-insat.fr](mailto:app@amicale-insat.fr).
41
+
42
+## 3.1 Téléchargement du dépôt
43
+
44
+⚠️ **La suite n'est valide que si tu veux compiler une version sans contribuer** (pour avoir les toutes dernières modifications par exemple).
45
+
46
+Si tu veux contribuer des modifications, rends-toi sur [ce guide](CONTRIBUTE.md) pour comprendre comment créer un **fork**. 
47
+
48
+Clone ce dépôt à l'aide de la commande suivante :
49
+````shell script
50
+git clone https://git.etud.insa-toulouse.fr/vergnet/application-amicale.git
51
+````
52
+
53
+Toute modification doit être réalisée sur une branche dédiée (pas de commit direct sur master). Cette nouvelle branche est ensuite fusionnée avec master une fois qu'elle est testée et vérifiée.
54
+Ainsi, en prenant la branche master a n'importe quel moment, il devrait être possible de compiler une version stable.
55
+
56
+Plus d'informations sur l'organisation avec git [ici](WORKFLOW.md).
57
+
58
+## 3.2 Installation des dépendances
59
+
60
+Une fois le dépôt sur ta machine et git sur la branche de ton choix, ouvre un terminal dans le dossier racine et installe les dépendances avec la commande suivante : 
61
+````shell script
62
+npm install
63
+````
64
+
65
+Si tu es sur macOS, tu devras aussi lancer la commande suivante pour installer les dépendances propres à iOS :
66
+````shell script
67
+cd ios && pod install
68
+````
69
+
70
+En cas de problème d'installation (notamment lors du changement de branche), lance la commande suivante pour réinstaller seulement les modules node utilisés :
71
+````shell script
72
+./clear-node-cache.sh 
73
+````
74
+
75
+# 4. Lancement de l'application
76
+
77
+Suis les instructions sur le [site officiel](https://reactnative.dev/docs/environment-setup) pour lancer l'application. Il n'y a aucune différence avec une application classique.
78
+
79
+Si tu utilises Webstorm, le projet contient des configurations de lancement pour lancer le projet d'un seul clic.
80
+
81
+# 5. Compiler une version release
82
+
83
+Merci de me contacter par mail pour toute information sur les release : [app@amicale-insat.fr](mailto:app@amicale-insat.fr)

+ 38
- 0
doc/LINKS.md View File

@@ -0,0 +1,38 @@
1
+# Liens utiles
2
+
3
+**Voici une liste de liens qui pourraient t'être utile, que ce soit pour contribuer ou tout simplement pour comprendre comment l'application fonctionne sous le capot.**
4
+
5
+## 👶 Les bases
6
+
7
+Le strict minimum pour pouvoir comprendre le code de l'application. Il n'est pas nécessaire d'avoir de grandes connaissances en JavaScript ou Git pour lire le code, mais une compréhension du fonctionnement et de la syntaxe de React Native est nécessaire pour pouvoir le modifier.
8
+
9
+* [**Des cours d'anglais**](https://www.wikihow.com/Be-Good-at-English) : Toutes les ressources sont en anglais, le code est en anglais, tu trouveras presque rien en français, donc profite-en pour t'améliorer !
10
+* [**Tutoriel Git**](https://learngitbranching.js.org/) : Le système utilisé pour synchroniser le code entre plusieurs ordinateurs. Tout le projet repose sur cette technologie, une compréhension minimale de son fonctionnement est nécessaire. Si tu ne sais pas ce que veut dire commit, pull, push, merge, ou branch, alors lis ce tuto !
11
+* [**Tutoriel JavaScript**](https://www.w3schools.com/js) : Un minimum de connaissances en JavaScript est nécessaire pour pouvoir comprendre le code. Pas besoin de lire tout le tutoriel. Pour les bases, tu peux t'arrêter à la partie `JS Dates` ou un peu avant. Il est utile de revenir souvent vers ce guide quand tu rencontres des difficultés. 
12
+* [**Documentation React Native**](https://reactnative.dev/docs/getting-started) : La techno de base, qui utilise JavaScript. Lire au moins les articles de la catégorie `The Basics`, tout est interactif c'est plutôt simple et rapide à comprendre.
13
+* [**List des librairies**](../package.json) : Tu trouveras dans ce fichier la liste de toutes les librairies utilisées dans ce projet (catégorie `dependencies`). Pour accéder à leur documentation, fais une simple recherche de leur nom dans un moteur de recherche.
14
+
15
+## 🤔 Comprendre les librairies
16
+
17
+Si tu as compris les bases et que tu veux te plonger un peu plus en profondeur dans le code, tu peux utiliser les liens ci-dessous pour accéder aux frameworks les plus importants.
18
+
19
+* [**Documentation Flow**](https://flow.org/en/docs/react/) : Un utilitaire pour rendre JavaScript typé statique (c'est-à-dire plus robuste pour de gros projets). Flow permet de rajouter des annotations pour donner un type aux variables.
20
+* [**Documentation React Native Paper**](https://callstack.github.io/react-native-paper/) : Le framework utilisé pour créer l'interface utilisateur (UI). Paper met à disposition de nombreux composants respectant les normes Material Design. Comparé à d'autres frameworks, paper est léger et facile à utiliser.
21
+* [**Documentation React Navigation**](https://reactnavigation.org/docs/getting-started) : Le framework utilisé pour faciliter la navigation classique entre différents écrans. Permet de créer facilement une navigation par onglets/menu déroulant.
22
+
23
+## 🤯 Les Plus
24
+
25
+Si t'es vraiment à fond dans le projet et que tu veux faire des trucs trop ouf, tu peux lire ça. Même moi j'ai eu la flemme de tout lire.
26
+
27
+* [**Tutoriel Git complet**](https://www.tutorialspoint.com/git/index.htm) : Un tutoriel expliquant de nombreux aspects de git.
28
+* [**Comment écrire un bon commit**](https://chris.beams.io/posts/git-commit/) : Des bonnes habitudes à prendre pour écrire des messages de commit utiles
29
+* [**Tutoriel JavaScript Complet**](https://www.w3schools.com/js) : Le même tuto que pour les bases, mais à lire en entier pour être un pro !
30
+* [**Documentation React Native Complete**](https://reactnative.dev/docs/getting-started) : Le même tuto que pour les bases, mais ya encore plein de choses à lire  et apprendre !
31
+* [**Documentation Jest**](https://jestjs.io/docs/en/getting-started) : Framework de tests unitaires pour JavaScript, pour faire les choses proprement.
32
+
33
+## 💻 Les Logiciels
34
+
35
+Tu ne sais pas trop quel logiciel utiliser ? C'est normal y'a beaucoup de choix, mais tu trouveras ici une liste très réduite de logiciels qui marchent bien pour le développement.
36
+
37
+* [Webstorm](https://www.jetbrains.com/webstorm/buy/#discounts?billing=yearly) : Un logiciel pas mal que j'utilise et gratuit pour les étudiants/projets open-source. C'est un IDE (environnement de développement intégré) compatible React Native, ce qui veut dire qu'il possède de très nombreuses fonctionnalités pour simplifier le développement (debugging, refactoring, auto-complétion intelligente, et autre).
38
+* [VSCodium](https://vscodium.com/) : Un logiciel plus simple/léger que Webstorm mais avec un peu moins de fonctionnalités. Ce n'est pas un IDE mais un éditeur de text avec des plugins. Il est donc moins puissant que Webstorm, mais plus léger e plus simple à prendre en main.

NOTES.md → doc/NOTES.md View File


+ 12
- 0
doc/TRANSLATE.md View File

@@ -0,0 +1,12 @@
1
+# Les Traductions
2
+
3
+Tu peux traduire l'application sans avoir de connaissance en programmation.
4
+
5
+Pour cela, suis cette procédure :
6
+ * Télécharge [ce fichier](../locales/fr.json). Tu y trouveras un ensemble de couples de la forme "clé": "valeur". Les clés servent à identifier les valeurs, il ne faut pas les modifier !
7
+ * Traduis les valeurs dans ce fichier dans la langue souhaitée.
8
+ * Envoie-moi par mail ([app@amicale-insat.fr](mailto:app@amicale-insat.fr)) ce fichier quand tu as terminé, il sera ajouté à la prochaine version de l'application.
9
+
10
+Envoie-moi un mail avant de commencer pour me prévenir que tu veux travailler sur une traduction. Cela me permettra de te mettre en relation avec d'autres personnes travaillant également sur cette traduction.
11
+
12
+Tu peux traduire dans la langue que tu veux, sachant que le français et l'anglais sont déjà fait.

+ 27
- 0
doc/WORKFLOW.md View File

@@ -0,0 +1,27 @@
1
+# Organisation du travail
2
+
3
+⚠️ **Ce projet dépend entièrement sur Git. Si tu n'es pas familier à cette technologie, rends-toi sur [cette page](LINKS.md) avant de lire la suite.**
4
+
5
+La méthode ci-dessous est très fortement recommandée, car son efficacité a été testée et prouvée par de nombreux projets Open Source.
6
+
7
+Ce qui suit a été inspiré des [règles de KDE](https://community.kde.org/Frameworks/Git_Workflow) et largement simplifié.
8
+
9
+# Principes de base
10
+
11
+## La branche Master est toujours prête
12
+ 
13
+Cette branche est le centre du projet. Elle ne doit contenir que des fonctionnalités et améliorations achevées. **Elle doit être prête pour une release à tout moment**. Le code doit donc être testé et validé.
14
+
15
+## Le développement à lieu dans les branches de 'fonctionnalités'
16
+
17
+Pour des corrections de bugs ou l'implémentation de nouvelles fonctionnalités qui demandent du travail, il est nécessaire de créer une nouvelle branche depuis master. Le développeur peut manipuler cette branche comme il le souhaite, mais elle doit être testée et vérifiée avant d'être fusionnée avec master.
18
+
19
+## Mainteneurs vs contributeur externe
20
+
21
+Les **contributeurs externes** sont des volontaires qui veulent aider ponctuellement pour corriger des bugs/ajouter des fonctionnalités. Ils doivent suivre [la procédure pour créer un fork du projet](CONTRIBUTE.md) et faire une pull request pour intégrer leurs changements.
22
+
23
+Les **mainteneurs** sont les personnes de confiance ayant un accès en écriture sur le dépôt officiel. C'est eux qui vérifient et acceptent les pull requests. Ils peuvent push et merge directement sur le dépôt officiel pour simplifier le développement.
24
+
25
+#### Tu veux devenir contributeur ? Fais un tour [par ici](CONTRIBUTE.md) pour comprendre comment faire.
26
+
27
+#### Tu es motivé et tu veux devenir mainteneur ? Contacte-moi par mail [app@amicale-insat.fr](mailto:app@amicale-insat.fr).

Loading…
Cancel
Save