Skip to content

przemuuu/Lets_Go_Fishing_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Let's go fishing! - Interactive flashcards creator

Introduction

The purpose of the application is to support the process of learning foreign languages ​​by automatically generating flashcards based on the provided text. The user can create vocabulary flashcards with translations and then export them to the CSV format, compatible with external language learning applications.

Installation

  1. Download and install JDK version 23 or higher (e.g. OpenJDK or Oracle JDK)
  2. - Set the JAVA_HOME environment variable pointing to the downloaded JDK 23 or higher location
  3. Clone the project repository from bitbucket
  4. - git clone https://bitbucket.lab.ii.agh.edu.pl/scm/to2024/kp-wt-1500-lets-go-fishing.git
  5. Open IntelliJ IDEA, choose: File → Open… , then select the Let's go fishing! folder
  6. IntelliJ will automatically recognize your Gradle project. If not: right-click on the build.gradle file → Link Gradle Project
  7. Make sure JDK 23 or higher is selected in your project settings: File → Project Structure → SDK → select JDK 23 or higher
  8. To start the application, click the ▶ (Run) button in the upper right corner
  9. If the application started correctly, a controller window should appear on the screen
  10. - In case of any problems, check the IntelliJ or Gradle logs (e.g. missing dependencies)

GUI description

  • Left section:
    • Select language choice box - user can select language in which he will provide the translation, or enter a new language, that is not yet in the database.
    • Input text field - user can enter text from the keyboard or by pasting it inside the box.
    • Import text from file - user can select ready file with the text to import it.
    • Create flashcards button - initiate the process of generating flashcards from the input text.
  • Right section:
    • Before start:
      • Current word label - it will show currently translated word after the start.
      • The rest is blank.
    • After start:
      • Current word label - displaying the word currently translated.
      • Translated word input field - text box where user inputs the translation for the current word.
      • Part of speech choice box - choice box where user selects part of speech of the current word.
      • Basic form text field - text box where user inputs the basic form of the current word.
      • Already basic check box - user can select if current word is already basic or not, if so, text box on the left becomes disabled.
      • Transcription text field - text box, where user can provide the transcription of the current word.
      • Submit word button - submits the entered translation and moves to the next word.
      • Translation progress bar - progress bar that indicates how much of the translation has been completed.
    • When finished:
      • Interlined translation window - shows the completed translation in interline where top line is the text provided at the start, second line are translations for each of the word and third line is transcription of each word. User can also copy the result to the clipboard.
        • Save to PDF/PNG button - allows user to save the interlined translation to PDF or PNG file on the computer
        • OK button - closes the interline window
      • Filled translation progress bar - shows completion of the translation (100%) and the total number of words.
      • Current word label - shows "All done!" text, that indicates that task has been completed.
      • Save to CSV button - exports your ready and translated flashcards to the universal CSV file.

Data model class diagram

class_diagram_flashcard class_diagram_sentence class_diagram_helper

Flow diagram

Available here

Contributors

  • Dawid Mularczyk
  • Przemysław Popowski
  • Maciej Wilewski
  • Łukasz Zegar

Students at AGH University - Computer Science - Faculty of Computer Science
Project at object-oriented technologies course - 5th semester - 2024/2025

Changelog

  • Milestone 3 - version 2 :
    • 28.01.2025 - Added parallel and indent interline - Przemysław
      • Created SentenceSplit class
      • Added SentenceSplit unit tests
      • Added division of the sentences into subordinate and coordinate
      • Connected InterlineService with Sentence creating
      • Updated InterlineService to create parallel and indent interline
      • Updated InterlineService tests
    • 28.01.2025 - Updated GUI description, flowchart and class diagram - Przemysław
    • 28.01.2025 - Updated changelog - Maciej
    • 28.01.2025 - Added tests - Łukasz
      • Interline, InterlineComponent and InterlineService tests
      • WordPart unit tests
    • 28.01.2025 - Sonarqube fixes - Maciej
    • 27.01.2025 - "For" loops reduction, InterlineService refactor - Przemysław
      • Added streams
      • Divided InterlineService into more methods
      • Fixed InterlineService to properly end the sentences when ".", "!", "?" met
      • Changed InterlineService to format lines and build the proper interlined translation
    • 26.01.2025 - Comment fixes - Maciej
      • Removed unnecessary lines
      • Magic string into static final
      • Added WordPart instead of Pair
    • 26.01.2025 - Unnecessary comments removal - Dawid
  • Milestone 3 - version 1 :
    • 20.01.2025 - Part 1 of syntax analysis - Dawid
    • 20.01.2025 - Added Tests for Sentence logic - Łukasz
    • 19.01.2025 - Sonarqube quickfix - Maciej
    • 19.01.2025 - Sentence division - Maciej
      • Added many classes to operate Sentence logic
      • Added SentenceParser to parse each sentence, count words in them and divide them by "."
    • 19.01.2025 - Adjusted TEST VERSION to final version, removed hardcoded tests - Przemysław
    • 17.01.2025 - Added Part of Sentence logic - Przemysław
      • Adjusted gui for part of sentence input
      • Added part of sentence verification based on part of speech
    • 16.01.2025 - Added saving interline to PDF and PNG files - TEST VERSION - Przemysław
  • Milestone 2 - version 2 :
    • 14.01.2025 - Fixed SonarQube issues - Maciej
    • 14.01.2025 - Updated README - Przemysław
      • Fixed changelog view
      • Updated flowchart
      • Updated data model class diagram
      • Updated GUI description
    • 13.01.2025 - Updated changelog - Maciej
    • 11.01.2025 - Reformatted Interline - Przemysław
      • Added InterlineComponent and TranslationDialog
      • Fixed SRP issues with InterlineService
    • 09.01.2025 - Reformatted DatabaseService - Maciej
    • 04.01.2025 - Fixed tests and removed "wild card" imports - Łukasz
  • Milestone 2 - version 1 :
    • 17.12.2024 - Fixed SonarQube - Łukasz
    • 17.12.2024 - Adjusted frontend and error handling - Przemysław
    • 17.12.2024 - Added database unit and integrity tests - Łukasz
    • 17.12.2024 - Added database - Maciej
      • Added H2 database
      • Added DatabaseService
      • Added choosing which language to save to
      • Added saving to chosen language table
    • 16.12.2024 - Updated backend to match the new frontend - Dawid
      • Added part of speech enum
      • Updated saving flashcards method
    • 15.12.2024 - Updated tests - Łukasz
    • 14.12.2024 - Added frontend - Przemysław
      • Added part of speech, basic form and transcription fields
      • Adjusted GUI
      • Added validation
  • Milestone 1 - version 2 :
    • 10.12.2024 - Finishing touches to README.md, small bugfixes, small Sonar fixes - everyone
    • 09.12.2024 - Adjusted test to match changes in code, created tests for new classes - Łukasz
    • 08.12.2024 - Added README.md and documentation - Przemysław
    • 08.12.2024 - Fix: fixed some SRP issues, small bugfixes etc - Łukasz, Dawid, Maciej
      • Divided FlashcardsModel into smaller classes to better match SRP rules: Flashcards, FlashcardsRepository, TextParser
      • Separated FlashcardsController into smaller classes to better match SRP rules: FlashcardsService, DialogUtils, FlashcardsSaver, InputValidator, TranslationFormatter
      • Fixed parser to work wit combining diacritical marks in hebrew etc.
      • Fixed sonar issues we ignored in the first version
  • Milestone 1 - version 1 :
    • 03.12.2024 - Bugfix: fixed warnings given by SonarLint - Maciej
    • 02.12.2024 - Created unit and functional tests - Łukasz
    • 02.12.2024 - Added data validation and error handling in gui - Przemysław
      • Added pop-up windows warning the user of potential wrongdoing such as:
        • Trying to create new flashcards while having unsaved ones
        • Input text being empty
        • Input text having none valid words
    • 01.12.2024 - Saving flashcards by exporting to CSV file - Dawid
      • Added functionality for "Save your flashcards to CSV" button
      • Added functionality to save submitted words and translations to CSV in: "word, translation" format
      • Made changes to application.fxml, FlashcardsModel and FlashcardsController
    • 01.12.2024 - Added reading text from text files - Dawid
      • Added functionality for "Select file" button
      • Added functionality to import text from .txt, .docx, .pdf files
      • Made changes to application.fxml and FlashcardsModel
    • 30.11.2024 - Added word parser - Maciej
      • Created FlashcardsModel with built-in text parser based on regex
      • Added word for word iteration logic
      • Made it so that next word is shown after "Submit word" button is clicked
      • Added progress bar update
    • 30.11.2024 - Created basic user interface in JavaFX - Przemysław
      • Created JavaFX stage and connected all fxmls
      • Added all text areas for inputText and translations
      • Prepared buttons for future functionalities
      • Added progress bar
      • Added text labels
    • 26.11.2024 - Initialized Spring Boot Framework - Maciej & Przemysław
    • Spring initializr settings:
      • Project: Gradle-Groovy
      • Language: Java
      • Spring Boot: 3.4.0
      • Packaging: Jar
      • Java: 23

About

5th semester - Java - "Let's go fishing" Project - AGH University of Krakow

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages