[![Pipeline status][badge-pipeline]][pipeline] [![Code coverage][badge-coverage]][code-coverage] [![Project page][badge-projectpage]][project-page] [![Download][badge-download]][download] [![Gitpod][badge-gitpod]][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](../gr2141/docs/userstory/userstory.md)** ## 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. ## Usage To use the application, you can download and run the jar file found in the **[latest release][latest-release]**. You can also use the [![Download][badge-download]][download] badge to download the latest version. Note that this might be unstable. To run it, you're going to need do download **[Java][java-download]**. ### **Development requirements** The easiest solution to get the development environment up and running, is to open the project in [Gitpod][gitpod] If you want to work on it locally, you're going to need the following things: - [A working installation of Maven 3][install-maven] - [JDK 16 or higher][install-openjdk] #### **Launch with JAR** You can start the project by running either [`run.bat`](./run.bat) (windows), or [`run.sh`](./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: ```bash $ 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: ```bash $ mvn compile $ 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][module-core] | The base classes and logic used everywhere in the application | | [FXUI][module-fxui] | The desktop application | | [Report][module-report] | A special module used to generate code coverage reports | | [Packaging][module-packaging] | A special module used to package the code into a runnable JAR | | .... | (More modules are probalbly coming) | #### **API (Coming soon)** This application also has an API, which makes it easy to extend the application to other platforms, like websites or phone apps. [badge-pipeline]: https://gitlab.stud.idi.ntnu.no/it1901/groups2021/gr2141/gr2141/badges/master/pipeline.svg [badge-coverage]: https://gitlab.stud.idi.ntnu.no/it1901/groups2021/gr2141/gr2141/badges/master/coverage.svg? [badge-projectpage]: https://img.shields.io/badge/Docs-Project%20Page-blue [badge-download]: https://img.shields.io/badge/Download-JAR-purple [badge-gitpod]: https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod [pipeline]: https://gitlab.stud.idi.ntnu.no/it1901/groups2021/gr2141/gr2141/-/pipelines [code-coverage]: https://it1901.pages.stud.idi.ntnu.no/groups2021/gr2141/gr2141/jacoco-aggregate/index.html [project-page]: https://it1901.pages.stud.idi.ntnu.no/groups2021/gr2141/gr2141/index.html [download]: https://it1901.pages.stud.idi.ntnu.no/groups2021/gr2141/gr2141/flashy.jar [gitpod]: https://gitpod.stud.ntnu.no/#https://gitlab.stud.idi.ntnu.no/it1901/groups2021/gr2141/gr2141 [java-download]: https://www.java.com/en/download/ [latest-release]: https://gitlab.stud.idi.ntnu.no/it1901/groups2021/gr2141/gr2141/-/releases/latest [install-maven]: https://maven.apache.org/download.cgi [install-openjdk]: https://jdk.java.net/16/ [module-core]: ./core [module-fxui]: ./fxui [module-report]: ./report [module-report]: ./packaging