commit
						6f7c024d2e
					
				
							
								
								
									
										31
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								README.md
									
									
									
									
									
								
							| @ -1,19 +1,22 @@ | ||||
| [](https://classroom.github.com/online_ide?assignment_repo_id=7908914&assignment_repo_type=AssignmentRepo) | ||||
| # <img src="https://raw.githubusercontent.com/IUTInfoAix-M2105/Syllabus/master/assets/logo.png" alt="class logo" class="logo"/> Développement d'application SAE 2.01 | ||||
| **SAE 2.01, TEAM COMCOMBRE** | ||||
| 
 | ||||
| ## IUT d’Aix-Marseille – Département Informatique Aix-en-Provence | ||||
| Dans ce README, nous allons essayer de résumer rapidement tout ce que nous avons fait lors de cette SAE, afin de vous faciliter la compréhension du code | ||||
| (Nous n'aurons peut-être pas le temps de tout expliquer ici) | ||||
| 
 | ||||
| - **Ressource:** [R2.02](https://cache.media.enseignementsup-recherche.gouv.fr/file/SPE4-MESRI-17-6-2021/35/5/Annexe_17_INFO_BUT_annee_1_1411355.pdf) | ||||
| - **Responsables:** | ||||
|   - [Sébastien Nedjar](mailto:sebastien.nedjar@univ-amu.fr) | ||||
|   - [Cyril Pain-Barre](mailto:cyril.pain-barre@univ-amu.fr) | ||||
| - **Besoin d'aide ?** | ||||
|   - Consulter et/ou créer des [issues](https://github.com/IUTInfoAix-R202/cours/issues). | ||||
|   - [Email](mailto:sebastien.nedjar@univ-amu.fr) pour une question d'ordre privée, ou pour convenir d'un rendez-vous physique. | ||||
| ## Interface : | ||||
| 
 | ||||
| ## Création de votre fork | ||||
| Notre interface peut se découper en trois fenêtres (notez le mot "fenêtre, car une fenêtre séparée ouvre effectivement) | ||||
| 
 | ||||
| La première chose que vous allez faire est de créer un fork d'un dépôt. Pour ce faire, rendez-vous sur le lien suivant : | ||||
| <https://classroom.github.com/a/VC0pQrhm> | ||||
| ## DAO : | ||||
| Le DAO est l'un des points forts de notre projet. Nous disposons de 3 DAO : JPA, JPA_MEMORY, et TEST | ||||
| - JPA est le DAO utilisé officiellement par l'application lors de son exécution par un utilisateur | ||||
| Les classes de ce DAO se trouvent dans le package `dao.jpa` | ||||
| - JPA_MEMORY est un DAO très similaire à JPA (il se sert des mêmes classes), à l'exception qu'il utilise une autre PersistenceUnit (voir persistence.xml) afin de faire une base de données en mémoire, qui est utilisée lors du test backend (voir BackendTest.java) | ||||
| Les classes de ce DAO sont les mêmes que le DAO JPA | ||||
| - TEST est un DAO ne reposant sur aucune base de données, les méthodes DAO crééent et renvoient eux-mêmes les données. ce DAO est utilisé pour le test de l'interface utilisateur (afin de ne pas le coupler à une base de données) | ||||
| Les classes de ce DAO se trouvent dans le package `dao.test` | ||||
| 
 | ||||
| Vous devrez créer un fork par équipe. Une fois le fork créé, vous devrez ajouter manuellement vos collègues comme propriétaire du dépôt. | ||||
| ## Tests : | ||||
| Comme dit précédemment, les tests de l'application sont séparés en deux parties : Backend, et Application | ||||
| - Les tests Backend servent à tester le DAO de manière isolée de l'application. Nous testons la structure du DAO, mais également les requêtes SQL faites. | ||||
| - Les tests d'Application servent à tester l'application, certains sont isolés du DAO, et d'autres utilisent le DAO TEST afin d'être encore découplés de la base de données. | ||||
| @ -12,7 +12,10 @@ import fr.univ_amu.iut.model.*; | ||||
| public class DataMain { | ||||
| 	 | ||||
| 	 | ||||
| 	// A executer une seule fois, pour populate la base de données | ||||
| 	/* | ||||
| 	Code utilitaire que nous avons utilisé pendant le développement de l'application, afin de remplir la base de donnée | ||||
| 	**SUPPRIMER LES TABLES DE LA BASE DE DONNEES AVANT D'EXECUTER** | ||||
| 	 */ | ||||
| 	public static void main(String[] args) { | ||||
| 
 | ||||
| 		DAOFactory daoFactory = DAOFactoryProducer.getFactory(DAOType.JPA); | ||||
|  | ||||
| @ -1,6 +1,11 @@ | ||||
| package fr.univ_amu.iut; | ||||
| 
 | ||||
| public class Launcher { | ||||
| 
 | ||||
| 	/* | ||||
| 	Déployer l'application au travers d'un fichier .jar exécutable nous demandait | ||||
| 	une classe main sans extends (sans lien avec JavaFX) | ||||
| 	 */ | ||||
| 	public static void main(String[] args) throws Exception { | ||||
| 		AppMain.main(args); | ||||
| 	} | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| package fr.univ_amu.iut.dao.factory; | ||||
| 
 | ||||
| import fr.univ_amu.iut.dao.jpa.DAOFactoryJPA; | ||||
| import fr.univ_amu.iut.test.DAOFactoryTest; | ||||
| import fr.univ_amu.iut.dao.test.DAOFactoryTest; | ||||
| 
 | ||||
| public class DAOFactoryProducer { | ||||
|     public static DAOFactory getFactory(DAOType type) { | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| package fr.univ_amu.iut.test; | ||||
| package fr.univ_amu.iut.dao.test; | ||||
| 
 | ||||
| import fr.univ_amu.iut.dao.DAOAcademie; | ||||
| import fr.univ_amu.iut.model.Academie; | ||||
| @ -1,4 +1,4 @@ | ||||
| package fr.univ_amu.iut.test; | ||||
| package fr.univ_amu.iut.dao.test; | ||||
| 
 | ||||
| import fr.univ_amu.iut.dao.DAODiscipline; | ||||
| import fr.univ_amu.iut.model.Discipline; | ||||
| @ -1,4 +1,4 @@ | ||||
| package fr.univ_amu.iut.test; | ||||
| package fr.univ_amu.iut.dao.test; | ||||
| 
 | ||||
| import fr.univ_amu.iut.dao.*; | ||||
| import fr.univ_amu.iut.dao.factory.DAOFactory; | ||||
| @ -1,4 +1,4 @@ | ||||
| package fr.univ_amu.iut.test; | ||||
| package fr.univ_amu.iut.dao.test; | ||||
| 
 | ||||
| import fr.univ_amu.iut.dao.DAORessource; | ||||
| import fr.univ_amu.iut.model.Ressource; | ||||
| @ -1,4 +1,4 @@ | ||||
| package fr.univ_amu.iut.test; | ||||
| package fr.univ_amu.iut.dao.test; | ||||
| 
 | ||||
| import fr.univ_amu.iut.dao.DAOThematique; | ||||
| import fr.univ_amu.iut.model.Thematique; | ||||
| @ -1,4 +1,4 @@ | ||||
| package fr.univ_amu.iut.test; | ||||
| package fr.univ_amu.iut.dao.test; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| @ -1,5 +1,11 @@ | ||||
| package fr.univ_amu.iut.secret; | ||||
| 
 | ||||
| 
 | ||||
| /* | ||||
| SecretProvider : API permettant de vérifier si le mot de passe entré est le bon | ||||
| Nous avons fait une interface afin de pouvoir créer facilement d'autres implémentations dans le futur | ||||
| (comme par exemple une implémentation faisant une requête web pour vérifier le mot de passe auprès d'un serveur) | ||||
|  */ | ||||
| public interface SecretProvider { | ||||
| 
 | ||||
| 	static SecretProvider getInstance(){ | ||||
|  | ||||
| @ -17,5 +17,5 @@ open module francefx { | ||||
|     exports fr.univ_amu.iut; | ||||
|     exports fr.univ_amu.iut.dao; | ||||
|     exports fr.univ_amu.iut.dao.factory; | ||||
|     exports fr.univ_amu.iut.test; | ||||
|     exports fr.univ_amu.iut.dao.test; | ||||
| } | ||||
| @ -11,6 +11,13 @@ import org.junit.jupiter.api.Test; | ||||
| 
 | ||||
| import static org.assertj.core.api.Assertions.assertThat; | ||||
| 
 | ||||
| /* | ||||
| Tests unitaires servants à tester le backend JPA de l'application | ||||
| On utilise un JPA modifié (une persistenceUnit différente) | ||||
| afin de faire une base de données en mémoire* | ||||
| */ | ||||
| 
 | ||||
| 
 | ||||
| public class BackendTest { | ||||
| 
 | ||||
| 	private static DAOFactory daoFactory; | ||||
| @ -110,6 +117,10 @@ public class BackendTest { | ||||
| 		assertThat(list.get(0).getNom()).isEqualTo("Second usage"); | ||||
| 	} | ||||
| 
 | ||||
| 	/* | ||||
| 	On essaye d'insérer la même donnée de nouveau (2 fois pour être sûr, | ||||
| 	après tout les tests sont faits pour vérifier que l'application est robuste) | ||||
| 	 */ | ||||
| 	@Test | ||||
| 	public void should_not_insert_again(){ | ||||
| 		daoFactory.createDAOThematique().insert(Thematique.ExpressionOrale); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user