Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Changelog

## Unreleased
### Added
- Real FlatLaf UI screenshots (idle, recording, settings) embedded in `README`, `README.en`, and `docs/USAGE`.

## 1.3.0 - 2026-07-02
### Added
Expand Down
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ This repository is maintained as a portfolio-quality project. Keep changes scope
- CI remains green locally and on GitHub Actions.
- Validate docs/README references if behavior or flow changes.
- Ensure new methods with non-obvious behavior include an intent comment.
- If UI changes, refresh `assets/screenshot-ui.png` and verify `docs/QUALITY.md` references still hold.
- If UI changes, refresh the screenshots in `assets/` (`screenshot-ui.png`, `screenshot-recording.png`,
`screenshot-settings.png`) and verify `docs/QUALITY.md` references still hold.

## Branch policy
- Keep `master` releasable.
Expand Down
10 changes: 10 additions & 0 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@

JavaSoundRecorder is a Java 21 desktop project for microphone audio recording. It demonstrates clean layering, reproducible builds, multi-level tests, CI, coverage, and supply-chain quality gates.

## Screenshots

Swing UI with the modern FlatLaf light theme — recordings library, live telemetry, and keyboard shortcuts:

![JavaSoundRecorder main window in the idle state](assets/screenshot-ui.png)

| Recording in progress | Settings dialog |
| --- | --- |
| ![Main window while recording: progress and input level](assets/screenshot-recording.png) | ![Settings: folder, duration, upload, input device](assets/screenshot-settings.png) |

## What This Repository Demonstrates

- Clear layers: `config`, `audio`, `orchestration`, `storage`, `ui`.
Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@

JavaSoundRecorder — Java 21 desktop-проект для записи звука с микрофона, демонстрирующий аккуратную архитектуру, воспроизводимую сборку, многоуровневые тесты, CI, coverage и supply-chain quality gates.

## Скриншоты

Swing UI с современной темой FlatLaf (light) — библиотека записей, телеметрия и горячие клавиши:

![Главное окно JavaSoundRecorder в состоянии готовности](assets/screenshot-ui.png)

| Идёт запись | Диалог настроек |
| --- | --- |
| ![Окно во время записи: прогресс и уровень входа](assets/screenshot-recording.png) | ![Настройки: папка, длительность, загрузка, устройство входа](assets/screenshot-settings.png) |

## Что показывает репозиторий

- Чёткие слои: `config`, `audio`, `orchestration`, `storage`, `ui`.
Expand Down
Binary file added assets/screenshot-recording.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/screenshot-settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/screenshot-ui.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 13 additions & 3 deletions docs/USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ On Windows, use `mvnw.cmd` instead of `./mvnw`.
The UI exposes `Start` and `Stop` controls, status text, wrapped details, and an `Open folder`
action for the last successful recording.

![Main window in the idle state with the recordings library](../assets/screenshot-ui.png)

![Main window while recording: elapsed/remaining time, progress, and input level](../assets/screenshot-recording.png)

- `Start` begins one bounded recording cycle.
- `Pause` pauses the active capture and changes to `Resume`; paused time does not count toward the configured duration.
- `Stop` requests cancellation and shows `Stopping...` until the workflow reaches a final state.
Expand All @@ -26,6 +30,9 @@ action for the last successful recording.
- If no compatible microphone input line is available, the UI disables `Start` and shows a preflight message.
- `Settings` opens recording folder, duration, upload, and input-device settings. Saved settings are applied to the
current UI session when no recording is running.

![Settings dialog: folder, duration, upload, input device](../assets/screenshot-settings.png)

- The `Recordings` list shows WAV files from the active recording folder.
- Library actions support `Play`, `Rename`, `Metadata`, `Delete`, `Export`, `Upload`, `Reveal`, and `Refresh`.
- `Metadata` saves title, artist, and comment in a UTF-8 sidecar file next to the WAV.
Expand Down Expand Up @@ -53,10 +60,13 @@ UI settings are saved in:

Environment variables still take precedence over saved UI settings. This keeps CLI, CI, and scripted runs reproducible.

### Capturing a UI screenshot for README
### Capturing UI screenshots for the docs

- Start UI mode and capture a screenshot window as `assets/screenshot-ui.png`.
- Use a focused, uncluttered environment for repeatable visual presentation.
- Refresh all three assets together so they show the same theme and states: `assets/screenshot-ui.png` (idle with
recordings), `assets/screenshot-recording.png` (recording in progress), and `assets/screenshot-settings.png`
(settings dialog).
- Start UI mode and capture the window, or drive `RecorderPanel`/`SettingsDialog` directly with sample data under a
virtual display for repeatable, uncluttered captures.

## Containers

Expand Down
Loading