Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flash Anzan

A desktop application for Flash Anzan mental arithmetic training, built with Java and JavaFX.

Flash Anzan provides a focused training environment where users configure a session and practice sequential mental arithmetic by following numbers displayed one at a time.

Flash Anzan Main Menu

Overview

Flash Anzan is an open-source desktop training application designed for Flash Anzan mental arithmetic practice.

The application does not use lessons, user profiles, accounts, statistics, or predefined exercise sets. Instead, each training session is configured directly by the user and exercises are generated dynamically.

The project focuses on a simple training workflow:

  1. Configure the training session.
  2. Start the exercise sequence.
  3. Follow the displayed values.
  4. Enter the final answer.
  5. Review the session results.

The application is intended as a Java and JavaFX project focused on desktop application development, exercise generation, validation, session lifecycle management, and a clean user interface.

Features

  • Configurable Flash Anzan training sessions
  • Dynamic exercise generation
  • Support for 1 to 5 digit values
  • Configurable number of displayed values per exercise
  • Configurable exercise count
  • Adjustable display speed
  • Addition and subtraction sequences
  • Running-total range validation
  • Sequential number display
  • Answer validation
  • Detailed session results
  • Correct and incorrect answer indicators
  • Sound effects with persistent sound settings
  • Persistent training configuration
  • Full-screen desktop interface
  • Custom application title bar
  • English user interface
  • Offline operation
  • No accounts or user profiles
  • No database
  • No analytics
  • No advertisements

Training Configuration

Before starting a session, the user can configure the following options:

Setting Supported Values Description
Digits 1 to 5 Controls the digit length of generated values
Operations 3 to 10 Number of values displayed during each exercise
Exercises 1, 5, 10, or 20 Number of exercises in the training session
Display Speed 100 ms to 2000 ms Delay between displayed values
Sound Enabled or disabled Controls application sound effects

The most recently selected training settings are stored locally and restored when the application is started again.

Training Settings

How Training Works

When a training session starts, Flash Anzan generates the requested exercises in the background.

The application displays READY and GO before presenting the generated values one at a time.

Training Session

The user follows the sequence mentally and enters the final result after the last value has been displayed.

Each exercise is validated against its generated result. At the end of the session, the application presents a result table containing:

  • Exercise number
  • Displayed operation sequence
  • User answer
  • Correct answer
  • Exercise status

Session Results

The user can repeat the training with the same configuration or return to the training settings.

Exercise Generation

Exercises are generated dynamically by the Flash Anzan generation engine.

For a selected digit length, generated values use the configured number of digits and the running total is constrained to the supported range for that digit configuration.

For example:

  • 1 digit: running total remains between 0 and 9
  • 2 digits: running total remains between 0 and 99
  • 3 digits: running total remains between 0 and 999

The generation and validation layers are separated so generated exercises can be checked independently against the active generator configuration.

The generator supports both positive and negative displayed values while preventing invalid intermediate running totals.

Architecture

The project separates application responsibilities into focused packages:

src/
├── application/
├── controllers/
├── engine/
│   ├── generator/
│   ├── session/
│   └── validation/
├── exceptions/
├── i18n/
├── images/
├── models/
│   └── enums/
├── services/
│   ├── audio/
│   ├── resources/
│   ├── settings/
│   └── translation/
├── sounds/
├── styles/
└── utils/

Main Components

Application

Contains the JavaFX application entry point and application lifecycle handling.

Controllers

Manage the main menu, training settings, active training session, results, and about screens.

Generator Engine

Generates exercise sequences according to the selected training configuration.

Validation

Validates generated exercises and submitted answers.

Session Management

Manages exercise generation, active training sessions, background execution, cancellation, and session lifecycle.

Services

Provide audio playback, resource loading, persistent settings, and user-interface text resources.

Models

Represent exercises, exercise sequences, settings, validation results, and session results.

Technology Stack

  • Java 17
  • JavaFX 17
  • Maven
  • Java Preferences API
  • JavaFX CSS

The application does not require a database or network connection.

Requirements

To build and run the project from source, the following tools are required:

  • JDK 17 or later
  • Maven
  • Git

Getting Started

Clone the repository:

git clone https://github.com/moyy9/Flash-Anzan.git

Move into the project directory:

cd Flash-Anzan

Run the application with Maven:

mvn clean javafx:run

Running from Eclipse

The project can also be imported into Eclipse.

  1. Open Eclipse.
  2. Select FileImport.
  3. Select MavenExisting Maven Projects.
  4. Select the Flash Anzan project directory.
  5. Complete the Maven import.
  6. Run application.FlashAnzanApp.

JavaFX dependencies are declared in pom.xml.

Project Configuration

Flash Anzan uses a custom Maven source layout.

The Java source files and application resources are stored under src/, and the Maven configuration explicitly defines this source directory and the required resource paths.

The project configuration is declared in pom.xml.

Settings Persistence

Training settings are stored locally using the Java Preferences API.

The application persists:

  • Digit configuration
  • Number of displayed values
  • Exercise count
  • Display speed
  • Sound state

Training results are not stored.

No user account, database, or cloud service is used.

Screenshots

Main Menu

Main Menu

Training Settings

Training Settings

Training Session

Training Session

Results

Results

Project Status

Flash Anzan is currently at version 1.0.0.

The initial application scope is complete and focuses exclusively on configurable Flash Anzan mental arithmetic training.

License

This project is open-source software licensed under the MIT License.

You are free to use, modify, and distribute the software under the terms of the license.

See the LICENSE file for the complete license text.

Author

Moustafa Ayyoub ALLAL

GitHub · LinkedIn

About

A desktop application for Flash Anzan mental arithmetic training, built with Java and JavaFX.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages