Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Barcode Scanner
| Nom | Prénom |
|---------|--------|
| Doe | Jane |
| Doe | John |
Le TP est à réaliser par groupe de 2.
## Compétences évaluées
| Compétence | Aptitude | Description | Acquis | Remarque |
|------------|----------|----------------------------------------------------------------------------------------------------|--------|----------|
| D1 | C2 | Maîtriser la gestion des variables d’environnement d’une application | | |
| D2 | C1 | Maîtriser la création d’interfaces graphiques à l’aide de React Native | | |
| | C1 | Maîtriser l’API Stripe Javascript | | |
| | C3 | Maîtriser l’architecture logicielle d’un projet (services, composants, types, interfaces, classes) | | |
| | C3 | Maîtriser l’écriture de code asynchrone | | |
| | C3 | Savoir rédiger une documentaion | | |
| D4 | C1 | Maîtriser git | | |
| | C4 | Savoir respecter l’énoncé et l’échéance | | |
## Technologies requises
Vous allez avoir besoin des technologies suivantes :
- [Android Studio](https://developer.android.com/studio "Android Studio")
- [Docker](https://www.docker.com "Docker") Desktop ou CLI
- [NodeJS LTS](https://nodejs.org/fr "NodeJS")
- Un compte [Stripe](https://stripe.com/fr "Stripe")
## Travail à réaliser
Vous devez réaliser une application d'achat d'objets en tout genre à l'aide de Stripe.
Elle doit comprendre les pages/fonctionnalités suivantes :
- Scan de codes-barres :
- Accès au panier ;
- Si l'appareil photo n'est pas disponible, il faut pouvoir ajouter les articles manuellement ;
- Une vérification via l'API est nécessaire afin de savoir si l'article existe.
- Un panier :
- Contient l'ensemble des articles scannés ;
- Accessible depuis la page de scan des articles ;
- Possibilité de retirer du panier un article scanné ;
- Lorsque qu'un article est ajouté plusieurs fois, afficher un indicateur précisant le nombre du même article ;
- Possibilité d'augmenter la quantité d'un article déjà scanné ;
- Possibilité de payer les articles sélectionnés à l'aide de Stripe ;
- Sauvergarde du panier pour de futurs achats.
- Un historique des articles payés.
- Un [thème jour/nuit](https://m2.material.io/design/color/dark-theme.html#ui-application).
Le projet est composé des choses suivantes :
- [Server](./server/README.md) : Une API développée avec FastAPI afin d'utiliser Stripe. Vous pouvez implémenter la votre.
- [Client](./client/README.md) : Une application React Native de départ, c'est ici que vous allez développer l'application.
Il est imposé d'utiliser `Expo.SQLite` pour la persistence des données au niveau du client.
***Il est important de configurer le serveur avant le client.***
## Informations
Le projet a été créé l'aide de la commande suivante :
```shell
npx create-expo-app -t expo-template-blank-typescript
```
Il est possible de lancer l'application dans un émulateur Android et/ou iOS :
```shell
npx expo run:android # npx expo run:ios
```