diff --git a/README.md b/README.md index 15abae3..7fbed18 100644 --- a/README.md +++ b/README.md @@ -2,41 +2,75 @@ ## À propos -Application mobile en React Native pour le projet du module P61 Développement avancé. +Application mobile en [React Native](https://reactnative.dev/) pour le projet du module P61 Développement avancé. Un tracker d'habitudes pour performer au boulot et dans la vie de tous les jours. -- [Sujet](./SUJET.md) -- [Cahier des charges](./CAHIER-DES-CHARGES.md) +- [Sujet](./docs/SUJET.md) +- [Cahier des charges](./docs/CAHIER-DES-CHARGES.md) -## Membres du Groupe 7 +### Membres du Groupe 7 - [Théo LUDWIG](https://git.unistra.fr/t.ludwig) - [Haoxuan LI](https://git.unistra.fr/haoxuan.li) - [Maxime RUMPLER](https://git.unistra.fr/m.rumpler) - [Maxime RICHARD](https://git.unistra.fr/maximerichard) -## Prérequis +## Développement du projet en local + +### Prérequis - [Node.js](https://nodejs.org/) >= 20.0.0 - [npm](https://www.npmjs.com/) >= 10.0.0 - [Expo Go](https://expo.io/client) -## Installation +### Installation ```sh +# Cloner le projet +git clone git@git.unistra.fr:rrll/p61-project.git + +# Installer les dépendances npm clean-install ``` -## Usage +### Lancer l'application ```sh -# Run the application npm run start +``` -# Lint and Test +### Linting/Formatting/Tests + +Le code est formaté grâce à [Prettier](https://prettier.io/) et vérifié grâce à [ESLint](https://eslint.org/) et à [TypeScript](https://www.typescriptlang.org/) pour s'assurer que le code respecte les bonnes pratiques de développement, et détecter en amont les possibles erreurs. + +Nous utilisons également [Jest](https://jestjs.io/) pour les tests automatisés. + +```sh +# Lint npm run lint:prettier npm run lint:eslint npm run lint:typescript + +# Test npm run test ``` + +Une pipeline CI ([`.gitlab-ci.yml`](.gitlab-ci.yml)) est en place pour vérifier que le code respecte ces bonnes pratiques et que les tests passent. + +### GitFlow + +Le projet suit la convention [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/) reposant sur 2 branches principales: + +- `main` (ou `master`): Contient le code de la dernière version stable et déployé en production. +- `develop`: Contient le code en cours de développement. Les nouvelles fonctionnalités et les correctifs de bugs sont fusionnés ici. + +### Convention des commits + +Les commits respectent la convention [Conventional Commits](https://www.conventionalcommits.org/) et [Semantic Versioning](https://semver.org/) pour la gestion des versions et des releases en fonction des commits. + +Les commits doivent être **atomiques** c'est à dire qu'il respecte 3 règles: + +- Ne concerne qu'un seul sujet (une fonctionnalité, une correction de bug, etc.) +- Doit avoir un message clair et concis +- Ne doit pas rendre de dépôt "incohérent" (bloque la CI du projet) diff --git a/CAHIER-DES-CHARGES.md b/docs/CAHIER-DES-CHARGES.md similarity index 98% rename from CAHIER-DES-CHARGES.md rename to docs/CAHIER-DES-CHARGES.md index 45034e2..1361b3f 100644 --- a/CAHIER-DES-CHARGES.md +++ b/docs/CAHIER-DES-CHARGES.md @@ -51,4 +51,4 @@ Vous serez évalués sur les aspects suivants : ## Exemple d’interfaces -![UI Example](./assets/images/ui-example.png) +![UI Example](../assets/images/ui-example.png) diff --git a/SUJET.md b/docs/SUJET.md similarity index 92% rename from SUJET.md rename to docs/SUJET.md index fbb8c7c..f7016a6 100644 --- a/SUJET.md +++ b/docs/SUJET.md @@ -1,13 +1,13 @@ # PROJET 🚧 Pas de temps à perdre, commençons dès aujourd'hui à travailler sur l'accompagnement du projet. -Pour celà, commençons par découvrir le [cahier des charges du projet](https://docs.google.com/document/d/1P1pD_TsTa8Cn4XT-hU0YF_xMx2BGqbXxG7Ta2oNcnOk/edit). +Pour celà, commençons par découvrir le [cahier des charges du projet](./CAHIER-DES-CHARGES.md). ## 1 🚀 KICKSTART ### 1.1 Mettez vous par groupe -Renseignez ce fichier [Cahier des charges](./CAHIER-DES-CHARGES.md) avec le nom des étudiants de votre groupe +Renseignez ce fichier [Google Sheets](https://docs.google.com/spreadsheets/d/1is3MSvOM94Gs6hfzfg-jJSGIqrrNzzBqDadrCNEQCok/edit#gid=0) avec le nom des étudiants de votre groupe ### 1.2 Créez votre projet @@ -17,7 +17,7 @@ Choisissez une application `blank` ### 1.3 GitLab - Ajoutez ce projet sur le Gitlab de l'université -- Ajoutez les profs (@joeybronner et @g.baldi) en tant que "Reporter" +- Ajoutez les profs ([@joeybronner](https://git.unistra.fr/joeybronner) et [@g.baldi](https://git.unistra.fr/g.baldi)) en tant que "Reporter" - Ajoutez tous les membres de votre groupe au projet ## 2 📱 DESIGN @@ -57,7 +57,7 @@ Un Splashscreen est toujours plus élégant qu'un écran de lancement "tout moch Implémentez le type de navigation que vous préférez et qui (d'après-vous) correspond le mieux à ce projet ⤵ -Pour rappel, la librairie est [React Native Navigation](https://reactnavigation.org/docs/getting-started/) et les 3 types de navigations sont : +Pour rappel, la librairie est [React Native Navigation](https://reactnavigation.org/./docs/getting-started/) et les 3 types de navigations sont : - Stack _(à implémenter forcément)_ - Drawer @@ -97,6 +97,4 @@ Je recommande les librairies de composants suivantes : N'hésitez pas à ajouter un de ceux-là (ou un autre) à votre projet et à en utiliser les composants. ---- - N'oubliez pas de faire des commits réguliers à la fin de chaque séance pour éviter les conflits Git.