First of all, this project has been imported from the private school's GitLab server, and it currently has no commit history. For this project, we developed a flashcard application that is executable on Linux, Windows, and MacOS. To accomplish this, we employed the JAVA programming language. This project was undertaken using the XP agile methodology within a team of 10 individuals. Our main objective was to create a comprehensive flashcards application with the following features,
- A secure login system.
- A fully implemented card package management.
- Diversity of card types such as multiple choice, open response and blank text to complete.
- A system to import and export a card package in your computer.
- A store where you can download other players custom card packages and upload yours as well.
- Storage and data management in a database.
- Multiple Learning Modes: Our application supports various learning modes to cater to different learning styles and needs. These modes include: -Normal Revision: Users can review their flashcards at their own pace. -Quiz Mode: Users can test their knowledge with randomized questions. -Custom Difficulty Mode : Users can choose a difficulty mode for a certain card package from level 1(easiest) to 3(hardest).
- Implementation of a server using sockets to enable communication among users.
- Progress Tracking: The application keeps track of users' progress and performance.
- Personal score and a ranking system.
- A Text to speech system.
- Modular Card : The users can create math questions with variables that are going to be given random values. For example a card with the question: a+b will always have a random answer.
Throughout the project, we applied agile principles and collaborated effectively within the team. We successfully developed a robust, cross-platform application using JAVA. We also tackled various technical challenges and provided a complete solution for learning project management.
To setup project dependencies, see this document
Since iteration 2 and the creation of the server, the application can no longer be launched alone: you must also launch the server application for this,
- Go to
Run -> Edit Configuration
- Add an application that uses
Server.java
as its main class
It is possible to launch the server and the client in a single click by adding in a compound
If you use the pre-compiled .jar
(for Windows), enter these commands in
the terminal to launch the client and the server,
java -jar /path/to/g9-iteration-4.jar
java -cp /path/to/g9-iteration-4.jar ulb.infof307.g9.server.Server
Please note, the application will not work correctly if the server is not launched. Because, since iteration 2, many actions have taken place by the latter
You must compile the .jar
yourself. You will find it in
/target
under the name of g9-iteration-2-shaded.jar
Do not make the mistake of
.jar
because the unshaded version It won't work
Bienvenue à bord! Tout d'abord, ce projet a été importé depuis le serveur GitLab de l'école privée, et il n'a actuellement aucun historique de commit. Pour ce projet, nous avons développé une application de cartes mémoire exécutable sous Linux, Windows et MacOS. Pour ce faire, nous avons utilisé le langage de programmation JAVA. Ce projet a été réalisé en utilisant la méthodologie agile XP au sein d'une équipe de 10 personnes. Notre objectif principal était de créer une application de cartes mémoire complète avec les fonctionnalités suivantes :
- Un système de connexion sécurisé.
- Une gestion complète des paquets de cartes.
- Divers types de cartes, tels que les questions à choix multiples, les réponses ouvertes et les espaces réservés pour compléter.
- Un système d'importation et d'exportation de paquets de cartes dans votre ordinateur.
- Une boutique où vous pouvez télécharger les paquets de cartes personnalisés d'autres joueurs et télécharger les vôtres.
- Stockage et gestion des données dans une base de données.
- Modes d'apprentissage multiples : Notre application prend en charge différents modes d'apprentissage pour répondre à différents styles et besoins d'apprentissage. Ces modes comprennent : -Révision normale : les utilisateurs peuvent revoir leurs cartes à leur propre rythme. -Mode quiz : les utilisateurs peuvent tester leurs connaissances avec des questions aléatoires. -Mode de difficulté personnalisée : les utilisateurs peuvent choisir un niveau de difficulté pour un certain paquet de cartes, de 1 (le plus facile) à 3 (le plus difficile).
- Mise en place d'un serveur en utilisant des sockets pour permettre la communication entre les utilisateurs.
- Suivi de la progression : l'application suit la progression et la performance des utilisateurs.
- Score personnel et un système de classement.
- Un système de synthèse vocale (text-to-speech).
- Carte modulaire : les utilisateurs peuvent créer des questions mathématiques avec des variables qui recevront des valeurs aléatoires. Par exemple, une carte avec la question "a+b" aura toujours une réponse aléatoire. Tout au long du projet, nous avons appliqué les principes agiles et collaboré efficacement au sein de l'équipe. Nous avons réussi à développer avec succès une application robuste et multiplateforme en utilisant JAVA. Nous avons également relevé divers défis techniques et fourni une solution complète pour la gestion de projets d'apprentissage.
Pour setup les dépendances du projet, consultez ce document
Depuis l'itération 2 et la création du serveur l'application ne peut plus se lancer seule : il faut aussi lancer l'application serveur pour cela,
- Aller sur
Run -> Edit Configuration
- Ajoutez une application qui utilise
Server.java
comme classe principale
Il est possible de lancer le serveur et le client en un seul click en les ajoutant dans un compound
Si vous utilisez le .jar
pré-compilé (pour Windows), rentrez ces commandes dans
le terminal pour lancer le client et le serveur,
java -jar /path/to/g9-iteration-4.jar
java -cp /path/to/g9-iteration-4.jar ulb.infof307.g9.server.Server
Attention, l'application ne fonctionnera pas correctement si le serveur n'est pas lancé. Car, depuis l'itération 2 beaucoup d'actions passent par ce dernier
Il faudra compiler le .jar
soit même. Ce dernier se retrouvera
dans /target
sous le nom de g9-iteration-2-shaded.jar
Ne pas se tromper de
.jar
car, la version non shaded ne fonctionnera pas