Files
IT1901/flashy

Pipeline status Code coverage Project page Download Gitpod

Flashy

Project logo

About

Flashy is an application which can help you make and memorize flashcards. It's meant to be used as a study tool, that keeps track of all your sets of flashcards.

A more in depth description of flashy's features can be found in the user story

Previews:

Main page:

Main page

Flashy in action:

Flashy in action

Note: these images are just a concepts, the application may look a little different at release.

Architecture

Structure diagram

Link to Architecture.wsd is found here: architecture

Download

To use the application, you can download and run the jar file found in the latest release.

You can also use the Download badge to download the latest version. Note that this might be unstable.

To run it, you're going to need do download Java.


Usage

To use the application, you can open the jar file directly.

If you would rather want to open the application in remote mode, see API

Development requirements

The easiest solution to get the development environment up and running, is to open the project in Gitpod

If you want to work on it locally, you're going to need the following things:

Launch with JAR

You can start the project by running either run.bat (windows), or run.sh (mac, linux, etc...). This will compile the application into a jar-file, which will end up in target, and then execute it. After running this script once, you will also be able to launch the jar-file directly in the file explorer, or by opening a terminal in the current directory and execute this command:

$ java -jar flashy/target/flashy.jar

Launch Manually

If you want to run the application manually without creating a jar file, open a terminal in the current directory, and execute the following commands:

$ mvn install -Dmaven.test.skip=true
$ cd fxui
$ mvn javafx:run

Note: Each time you update code outside of the fxui directory, you will need to move out to the current directory and run mvn clean compile before running mvn javafx:run inside fxui again.


Modules

This project is split into modules. Each module is responsible for separate parts of the application.

Module Name Description
Core The base classes and logic used everywhere in the application
FXUI The desktop application
REST The REST API server
Report A special module used to generate code coverage reports
Packaging A special module used to package the code into a runnable JAR

REST API

This application also has a REST API, which makes it easy to extend the application to other platforms, like websites or phone apps.

To start the REST server, you can run

$ java -jar flashy/target/flashy.jar --server

or start it manually by executing

$ mvn install -Dmaven.test.skip=true
$ cd rest
$ mvn exec:java

Then you can start the app in remote mode by running

$ java -jar flashy/target/flashy.jar --remote

For more options, see

$ java -jar flashy/target/flashy.jar --help