In 3rd year of computer science, for the Software Engeneering course, our project was to make an app in teams of 10, to teach us teammwork in big teams, Xtreme programming, peer programming and such. All of that with the teacher acting as a client, simulating client meeting every week to debate about cost and priority of feature implementations.

Code available on my friend’s account : https://github.com/EstAK/f307-project-2022_2023

I’m gonna shamelessly copy paste his description.

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,

  1. A secure login system.
  2. A fully implemented card package management.
  3. Diversity of card types such as multiple choice, open response and blank text to complete.
  4. A system to import and export a card package in your computer.
  5. A store where you can download other players custom card packages and upload yours as well.
  6. Storage and data management in a database.
  7. 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).
  8. Implementation of a server using sockets to enable communication among users.
  9. Progress Tracking: The application keeps track of users' progress and performance.
  10. Personal score and a ranking system.
  11. A Text to speech system.
  12. 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.