# Stage INFO4 - Recaps
:::info
**Stage :** Developing A Service Platform for Electronic Therapy for Stutterers
**Etudiant** : Romain GUILLOT - romain.guillot@etu.univ-grenoble-alpes.fr
**Tuteur Polytech** : Jean François Monin
**Tuteur UTP** : Dr. Noreen Izza Arshad
**Date** : 21 mai - 9 août
**Description :**
1. To develop a mobile application for the stutterers to conduct electronic speech exercises. The mobile app should have the following features:
a. Metronome exercises & results
b. Mirroring exercises & results
c. Delayed Auditory Feedback exercises & results
d. Stutter Rate exercises & results
e. Add word games exercises & results
f. Dashboard that charts progress by exercises (by day, week, month and year)
g. Dashboard that charts overall progress
2. To conduct a black box testing of the features developed
3. To prepare a documentation for administrator
4. To prepare an electronic user manual for the developed mobile application
5. To design a video that explains about the mobile application
6. To upload the tested mobile application in Google Playstore
:::
:::info
**Documents / Links :**
- *[Job description](https://drive.google.com/file/d/16rnRiZg6AxCL7Hp_GersiWqosbxki-3U/view?usp=sharing)*
- *[Slide 1 (presentation au tuteur UTP de l'avancement)](https://docs.google.com/presentation/d/16XED884GwYg48kwKX-i9weVdTDItZgqPdCfQjjDs3fM/edit?usp=sharing)*
- [Diagramme de Gantt](https://drive.google.com/file/d/1VwZ9efksaID-S5XSs2es_TLJlFlKuitW/view?usp=sharing)
- *[SRS : Software Requirements Specification](https://hackmd.io/@d1KU1qjQTSCfs5t-Oqi7RA/SyOy3GFTE)*
- *[IHM Diagram](https://drive.google.com/file/d/1PIDY8yg60QXmntMtnLnFjHuCgpBF2hwD/view?usp=sharing)*
- *[IHM Mock-Ups](https://drive.google.com/file/d/12tYD198Xpt44vjil8im8L95AQBPDCV3l/view?usp=sharing)*
- *[Diagrammes de classes](https://drive.google.com/file/d/1QChtD3xiK0mL9utkmi_9EUDrGZ5lvICa/view?usp=sharing)*
- *[Github Repo - privé](https://github.com/develob/stuttherapy)*
:::
:::info
**Pull requests**
- *[Development week #1 - Structure - Startup - Basic Navigation](https://github.com/develob/stuttherapy/pull/1)*
:::
## Semaine 1 *(21 Mai)*
**Arrivé à UTP (université d'accueil) :**
- Papier d'immigration et examen médicale
- Mise en place du bureau dans le labo
- Visite des locaux
**Réunion d'introduction avec ma tutrice :**
> Le but de l'application est de proposer des exercices pour aider les personnes souffrant de bégaiement. Une telle application a déjà été developpée et mise en production dans le passé, cependant le labo a été contraint de la retirer des magasins d'applications à cause d'un trop grand nombre de bugs. Je dois donc repartir de zéro pour developper une nouvelle application mobile destinée à être disponible sur les appareils Android, et idéalement iOS (Apple). Ma responsable m'a fournie plusieurs documents afin de démarrer le projet (notament une description succinte des exercices à mettre en place). Je travaille donc tout seul sur ce projet.
**Organisation des prochaines semaines :**
1 réunion minimum par semaine avec ma tutrice ainsi que 2 autres étudiants de l'université UTP qui font leur projet de fin d'étude afin qu'on puisse partager nos idées, trouver de nouvelles idées, réfléchir à des solutions, etc.
## Semaine 2 *(27 Mai)*
**Lecture de papiers universitaires** concernant :
- les applications mobiles médicales
- le begaiement (causes, conséquences, généralités)
- thérapies réelles
- thérapies à distances
**Analayse de marché des applications existantes** :

**SRS : Software requirements specification** :
[https://hackmd.io/@d1KU1qjQTSCfs5t-Oqi7RA/SyOy3GFTE](https://hackmd.io/@d1KU1qjQTSCfs5t-Oqi7RA/SyOy3GFTE)
Spécifications générales de l'application
Use-case diagram
Spécifications des cas d'utilisations

**Meeting avec ma tutrice (31 mai)** :
Présentation du travail effectué : [https://docs.google.com/presentation/d/16XED884GwYg48kwKX-i9weVdTDItZgqPdCfQjjDs3fM/edit?usp=sharing](https://docs.google.com/presentation/d/16XED884GwYg48kwKX-i9weVdTDItZgqPdCfQjjDs3fM/edit?usp=sharing)
TODO :
- Gantt diagram
- Définir le système de recherche de patients par les thérapeutes
- Modèle économique de l'application
- Recherches sur la reconnaissance automatique de la parole pour voir si c'est possible de l'inclure dans l'app relativement rapidement
## Semaine 3 *(3 Juin)*
*Lundi, mardi et mercredi feriés : Hari Raya.*
J'ai continué le document de spécification (SRS) et j'ai commencé à réfléchir comment implémenter techniquement la solution.
**SRS - Exercises specifications** :

Synchronisation dans le cloud / Espaces de stockage / Progression / etc
**Brouillons pour la modélisation du système (diagrammes de classes).**
**Mock-Ups des exercices.**
**Lectures sur la reconnaissance automatique du langage.**
## Semaine 4 *(11 Juin)*
### Objectifs
- [x] Finir les mock-ups
- [x] Finir les diagrammes de classes
- [ ] Compléter le SRS avec le système de recherche de patients
- [ ] Lectures sur les modèles économiques des applications mobiles
- [x] Mise en place du répo Github
- [x] Initialisation du project (base de code minimale)
- [x] Vendredi : Meeting avec ma tutrice
### Travail effectué
[Lien vers le diagramme de Gantt](https://drive.google.com/file/d/1VwZ9efksaID-S5XSs2es_TLJlFlKuitW/view?usp=sharing)
[Lien vers les mocks-ups](https://drive.google.com/file/d/12tYD198Xpt44vjil8im8L95AQBPDCV3l/view?usp=sharing) (Homeages / exercise pages / account pages)
[Lien vers le diagramme de classes](https://drive.google.com/file/d/1QChtD3xiK0mL9utkmi_9EUDrGZ5lvICa/view?usp=sharing)
[Lien vers le repo Github](https://github.com/develob/stuttherapy) (Repo privé...)
[Lien vers la pull request #1 -Structure - Startup - Basic Navigation](https://github.com/develob/stuttherapy/pull/1) (Repo privé...)
> **pull request #1**
> - Startup page => first laiunch user has to decide if he want to use the app as a stutter or as a therapist
> - Basic class implementation (declaration, and some fields)
> - Stutter Home page layout => Bottom navigation / Exercise list
> - Basic navigation from the user homepage (Login, Feed, Exercise homepage)
Résumé du meeting :
> Conception OK
> Presentation d'une petite demo dans 2 semaines
## Semaine 5 *(17 juin)*
### Objectifs
- [x] Compléter le SRS avec le système de recherche de patients
- [x] Lectures sur les modèles économiques des applications mobiles
- [x] Document pour définir le modèle économique de l'application
- [x] Development week #2
> **Development week #2**
> Exercise library (complete structure)
> Exercise implementation (DAF, Mirroring, Reading, Metronome)
> Exercise Widgets (Exercise homepage, content)
> Exercise progression (local storage)
> Exercise Widgets (Exercise Progression / Exercise progression instance)
### Travail effectué
Tous les objectifs initialement prévus (Development week #2 non finie), developpement effectué :
- Exercise library (complete structure)
- Exercise implementation (DAF, Mirroring, Reading, Metronome)
- Exercise Widgets (Exercise homepage, content)
## Semaine 6 *(24 juin)*
### Objectifs
Finir la phase de developpement #2
### Travail effectué
- Exercise Widgets (Exercise Progression / Exercise progression instance)
- Code documentation
==> Ready to merge (à faire lundi de la semaine prochaine)
## Semaine 7 *(1er juiller)*
### Objectifs
- [x] pull request #2
- [x] début de la phase de developpement #3
> **Phase de developpement #3**
> - Recording widget for exercise (audio recording and video recording)
> - Local storage progression
### Travail effectué
[pull request 2](https://github.com/develob/stuttherapy/pull/11)
> **pull request 2**
> ## Business logic
> - Exercise library (ExerciseTheme, Exercise, ExerciseSettings, etc)
> - Exercise implementation (Metronome / DAF / etc) : only Metronome exercise is almost complete (note that recording feature - audio or video > - is NOT yet available)
>
> ##UI
> - HomePage (for stutter) with pages related to exercises :
> - Exercise homepage,
> - training,
> - progression,
> - progression Item)
> - Saved words list
**Début da le phase de developpement #3 :**
- Recording widget for exercise (audio recording and video recording)
## Semaine 8 *(8er juiller)*
### Objectifs
- [ ] Mise à jours des documents de conception
- [ ] Résoudre les derniers bugs du recording
- [ ] Sauvegarde de la progression des exercices en local