This repository has been archived on 2024-11-20. You can view files and clone it, but cannot push or open issues or pull requests.
p61-project/README.md

92 lines
3.2 KiB
Markdown
Raw Normal View History

2024-02-16 22:51:50 +01:00
# P61 - Projet
## À propos
2024-02-23 16:21:17 +01:00
Application mobile en [React Native](https://reactnative.dev/) pour le projet du module P61 Développement avancé.
2024-02-16 22:51:50 +01:00
2024-02-23 14:30:35 +01:00
Un tracker d'habitudes pour performer au boulot et dans la vie de tous les jours.
2024-02-23 16:21:17 +01:00
### Membres du Groupe 7
2024-02-16 22:51:50 +01:00
- [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)
2024-03-15 22:48:28 +01:00
### Documentation
2024-03-16 00:36:44 +01:00
- [Sujet](./docs/SUJET.md) + [Cahier des charges](./docs/CAHIER-DES-CHARGES.md)
2024-03-15 22:48:28 +01:00
- [Modèle Logique des Données (MLD)](./docs/MLD.md)
2024-03-16 00:36:44 +01:00
- [Architecture](./docs/ARCHITECTURE.md)
2024-03-15 22:48:28 +01:00
- [Conventions développement informatique](./docs/CONVENTIONS.md)
2024-03-23 01:12:58 +01:00
- [Kanban Board (Trello)](https://trello.com/b/8kYlcLA8/habits-tracker)
2024-03-15 22:48:28 +01:00
#### Principaux Outils Informatiques Utilisés
- [TypeScript](https://www.typescriptlang.org/): Langage de programmation.
2024-03-22 10:23:28 +01:00
- [React Native](https://reactnative.dev/) + [Expo](https://expo.io/): Framework pour le développement d'applications mobiles.
2024-03-15 22:48:28 +01:00
- [React Native Paper](https://callstack.github.io/react-native-paper/): Bibliothèque de composants pour React Native.
2024-03-22 10:23:28 +01:00
- [React Hook Form](https://react-hook-form.com/) + [Zod](https://zod.dev/): Gestion des formulaires et validation des données.
2024-03-15 22:48:28 +01:00
- [Supabase](https://supabase.io/): Backend, serveur d'API pour le stockage des données.
2024-03-16 00:36:44 +01:00
<!--
- [WatermelonDB](https://nozbe.github.io/WatermelonDB/): Base de données locale, pour permettre une utilisation hors-ligne de l'application.
-->
2024-03-15 22:48:28 +01:00
2024-02-23 16:21:17 +01:00
## Développement du projet en local
### Prérequis
2024-02-16 22:51:50 +01:00
- [Node.js](https://nodejs.org/) >= 20.0.0
- [npm](https://www.npmjs.com/) >= 10.0.0
- [Expo Go](https://expo.io/client)
2024-03-15 22:48:28 +01:00
- [Docker](https://www.docker.com/) (facultatif, utilisé pour lancer [Supabase](https://supabase.io/) en local)
2024-02-16 22:51:50 +01:00
2024-02-23 16:21:17 +01:00
### Installation
2024-02-16 22:51:50 +01:00
```sh
2024-02-23 16:21:17 +01:00
# Cloner le projet
git clone git@git.unistra.fr:rrll/p61-project.git
2024-03-15 22:48:28 +01:00
# Se déplacer dans le répertoire du projet
cd p61-project
# Configurer les variables d'environnement
cp .env.example .env
2024-02-23 16:21:17 +01:00
# Installer les dépendances
2024-02-16 22:51:50 +01:00
npm clean-install
```
2024-02-23 16:21:17 +01:00
### Lancer l'application
2024-02-16 22:51:50 +01:00
```sh
npm run start
2024-02-23 16:21:17 +01:00
```
2024-03-15 22:48:28 +01:00
### Lancer Supabase (facultatif)
2024-02-23 16:21:17 +01:00
2024-03-23 01:04:20 +01:00
Ce n'est pas strictement nécessaire pour le développement de l'application (même si recommandé), de lancer [Supabase](https://supabase.io/) en local, car l'application est déjà déployée sur un serveur [Supabase](https://supabase.io/) en production (`.env.example` est pré-configuré avec cet environnement).
2024-02-23 16:21:17 +01:00
```sh
2024-03-15 22:48:28 +01:00
npm run supabase
2024-02-16 22:51:50 +01:00
```
2024-03-22 10:23:28 +01:00
#### Principales Commandes Supabase
```sh
# Pour réinitialiser la base de données avec les données de test (seed.sql)
npm run supabase db reset
2024-03-23 01:04:20 +01:00
# Pour synchroniser le modèle (local) avec la base de données (remote)
2024-03-22 10:23:28 +01:00
npm run supabase db pull
2024-03-23 01:04:20 +01:00
# Pour synchroniser la base de données (remote) avec le modèle (local)
2024-03-22 10:23:28 +01:00
npm run supabase db push
# Pour générer les types TypeScript
2024-03-25 12:27:18 +01:00
npm run supabase gen types typescript -- --local > ./infrastructure/supabase/supabase-types.ts
2024-03-22 10:23:28 +01:00
# Crée un nouveau script de migration à partir des modifications déjà appliquées à votre base de données locale (remplacer `<name-of-migration>` avec le nom de la migration)
npm run supabase db diff -- -f <name-of-migration>
```